always语句总是循环执行,或者说此语句重复执行。
      只有寄存器类型数据能够在这种语句中被赋值。寄存器类型数据在被赋新值前保持原有值不变。所有的初始化语句和always语句在0时刻并发执行。
      

下例为always语句对1位全加器电路建模的示例,如图2-4。

  1. module FA_Seq(A,B,Cin,Sum,Cout);
  2. input A,B,Cin;
  3. output Sum,Cout;
  4. reg Sum,Cout;
  5. reg T1,T2,T3;
  6. always @(A or B or Cin) begin
  7. Sum = (A^B)^Cin;
  8. T1 = A & Cin;
  9. T2 = B & Cin;
  10. T3 = A & B;
  11. Cout=(T1 | T2) | T3;
  12. end
  13. endmodule

模块FA_Seq有三个输入和两个输出。由于Sum、Cout、T1、T2和T3在always语句中被赋值,它们被说明为reg类型(reg是寄存器数据类型的一种)。
      always语句中有一个与事件控制(紧跟在字符@后面的表达式)。相关联的顺序过程(begin-end对)。这意味着只要A、B或Cin上发生事件,即A、B或Cin之一的值发生变化,顺序过程就执行。在顺序过程中的语句顺序执行,并且在顺序过程执行结束后被挂起。顺序过程执行完成后,always语句再次等待A、B或Cin上发生的事件。
      在顺序过程中出现的语句是过程赋值模块化的实例。模块化过程赋值在下一条语句执行前完成执行。过程赋值可以有一个可选的时延。

时延可以细分为两种类型:
      1)语句间时延:这是时延语句执行的时延。
    2)语句内时延:这是右边表达式数值计算与左边表达式赋值间的时延。
      下面是语句间时延的示例:

  1. Sum=(A^B)^Cin;
  2. #4T1=A&Cin;

在第二条语句中的时延规定赋值延迟4个时间单位执行。就是说,在第一条语句执行后等待4个时间单位,然后执行第二条语句。下面是语句内时延的示例。

  1. Sum=#3(A^B)^Cin;

这个赋值中的时延意味着首先计算右边表达式的值,等待3个时间单位,然后赋值给Sum。

Verilog-always语句相关推荐

  1. FPGA之道(74)Verilog生成语句

    文章目录 前言 Verilog生成语句 循环生成 条件生成 generate-if语句 generate-case语句 前言 为什么要把这一节单独拎出来,因为个人原因,平时觉得用的Verilog生成语 ...

  2. (111)FPGA面试题-介绍Verilog 块语句fork-join执行过程

    1.1 FPGA面试题-介绍Verilog 块语句fork-join执行过程 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-介绍Verilog 块语句f ...

  3. (110)FPGA面试题-介绍Verilog块语句begin-end执行过程

    1.1 FPGA面试题-介绍Verilog块语句begin-end执行过程 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-介绍Verilog块语句beg ...

  4. Verilog inout语句使用方法及技巧

    1.1 Verilog inout语句使用方法及技巧 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Verilog inout语句使用方法及技巧: 5)结束语. 1.1 ...

  5. Verilog语言语句介绍

    Verilog语言语句介绍 结构语句 initial语句 always语句 赋值语句 阻塞赋值 非阻塞赋值 使用方法 条件语句 if_else语句 case语句 结构语句 共有两个重要的结构语句 in ...

  6. Verilog disable语句

    如何中止任务或代码块的执行? Verilog disable语句能够中止任务或代码块. 通常在以下场景中会使用disable语句: 1.在循环中执行"break"命令,跳过循环迭代 ...

  7. verilog case语句_浅谈Design Compiler -- Verilog语言结构到门级的映射

    昨天的文章中,我们了解到Design Compiler(DC)作为Synopsys公司开发的一款用于电路综合的EDA工具,在全球数字电路市场去得了巨大的成功,它的设计初衷是将用Verilog HDL语 ...

  8. FPGA学习笔记---Verilog延迟语句分析比较

    在Verilog语言中经常要用到延时语句,延时语句添加的位置不同,输出的结果就会不同.今天就来分析比较一下延时语句在不同位置时,对赋值语句的影响. 一.阻塞式左延时赋值 文件代码: `timescal ...

  9. 编程语言——Verilog基本语句

    基本语法 过程语句 赋值语句 条件语句 循环语句 任务与函数 过程语句 在一个模块内部可以有任意多个initial语句和always语句,两者都是从仿真的起始时 刻开始执行的, 但是initial语句 ...

  10. 7.Verilog 条件语句的应用

    FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...

最新文章

  1. JavaScript 读书笔记(二)— Date类型
  2. Algorithms_基础数据结构(01)_线性表之数组数组的应用案例分析
  3. [Silverlight]奇技银巧系列-3
  4. 如何像Uber一样给工程师派单,解放外包生产力?
  5. .NET Core 跨平台执行命令、脚本
  6. 设置Proxy Server和SQL Server实现数据库安全
  7. 基因结构显示服务器,服务器固定结构 Server fixed structure
  8. 安川机器人焊枪切换设定方法_【分享】焊接机器人的性能要求与系统构成
  9. python身份证验证系统_用python制作全国身份证号验证及查询系统
  10. php网页顶部菜单代码,5款个性的网页回到顶部特效代码
  11. python两种方法实现从1000万个随机数中找出top n元素(附c语言版)
  12. 《东周列国志》第五十六回 萧夫人登台笑客 逢丑父易服免君
  13. Eclipse在桌面上创建的快捷方式打不开
  14. 外贸员需要知道的那些事儿
  15. Floyd-Warshall算法过程中矩阵计算方法—十字交叉法(转)
  16. 订单管理_04删除订单信息流程
  17. 模糊控制(二)模糊控制——模糊推理
  18. (79)FPGA减法器设计(半减法器)
  19. 收入翻倍的企业,如何靠“游戏化”激活销售团队? | Superuser系列
  20. 纪念品分组 java实现_纪念品分组 (C语言代码)

热门文章

  1. FPGA学习之毛刺问题
  2. MySQL懒查询_MySQL 5.7查询sys.schema_redundant_indexes居然慢如蜗牛...
  3. 【Excel2019(十七):数学函数】【Round函数+Roundup函数+Rounddown函数+Int函数+Mod函数】
  4. python 马赛克拼图_使用 python 做到马赛克拼图
  5. java 泛型参数具体类型获取、泛型返回具体类型获取
  6. JCA Overview
  7. 积分分汇界面将判断放到D层后,D层的写法
  8. 学设计的考PMP证书有用吗?
  9. 教你用OpenCV 和 Python给证件照换底色(蓝底 -红底-白底)
  10. Golang编码规范