9.9 Structured procedures

结构化语句
Verilog HDL中的所有过程语句都在以下四种语句之一中指定:
—initial结构
—always结构
—task
—function
initial和always结构在仿真开始时启用。initial结构只执行一次,当语句执行完成后,活动就停止了。相比之下,always结构重复执行。只有当仿真停止时,它的活动才停止。在initial结构和always结构之间不应有隐含的顺序。initial结构不需要在always结构之前调度和执行。在一个模块中,initial结构和always结构的数量没有限制。任务和函数是从其他过程中的一个或多个位置启用的过程。任务和功能将在第10条中描述。

9.9.1 Initial construct/initial结构

initial构造的语法见语法9-15。

例如:
下面的示例演示了在仿真开始时如何使用initial构造来初始化变量。

initial beginareg = 0;            // initialize a regfor (index = 0; index < size; index = index + 1)memory[index] = 0; //initialize memory wordend

initial结构的另外一个典型用法是波形描述规范,波形描述只执行一次,为仿真电路的主要部分提供激励。

initial begininputs = 'b000000; // initialize at time zero#10 inputs = 'b011001; // first pattern#10 inputs = 'b011011; // second pattern#10 inputs = 'b011000; // third pattern#10 inputs = 'b001000; // last pattern
end

9.9.2 Always construct/always结构

在整个仿真过程中,always结构不断重复执行。语法9-16展示了always结构的语法。

always结构,因为它循环的特性,只有当和一些形式的时序控制一起使用时有用。如果一个always结构对仿真时间向前无法控制,它将创建一个仿真死锁情景。
例如,下面的代码创建了一个零延迟无限循环:
always areg = ~areg;
为以上代码提供时序控制将创建一个潜在有用的描述,如下所示:
always #half_period areg = ~areg;

【Verilog-9.9】initial和always的用法相关推荐

  1. Verilog初级教程(11)Verilog中的initial块

    文章目录 前言 正文 语法格式 initial块是用来干什么的? initial块何时开始又何时结束? 一个模块中允许有多少个initial块? 参考资料 写在最后 前言 仿真中通常会依次执行一组Ve ...

  2. verilog中的initial块、always块详细解释

    一.两者的关系 一个程序块可以有多个initial和always过程块.每个initial和always说明语句在 仿真的一开始同时立即开始执行 initial语句只执行一次,而always语句则不断 ...

  3. verilog中的initial语句

    首先说说结构化过程语句,在verilog中有两种结构化的过程语句:initial语句和always语句,他们是行为级建模的两种基本语句.其他所有的行为语句只能出现在这两种语句里 与C语言不通,veri ...

  4. Verilog初级教程(12)Verilog中的generate块

    文章目录 前言 正文 generate for generate if generate case 参考资料 本系列博文 前言 verilog中的generate块可以称为生成块,所谓生成,可以理解为 ...

  5. Verilog初级教程(23)Verilog仿真中的显示任务

    文章目录 前言 正文 Display/Write Tasks Verilog Strobes Verilog Continuous Monitors Verilog Format Specifiers ...

  6. Verilog初级教程(21)Verilog中的延迟控制语句

    文章目录 前言 正文 延迟控制语句 事件控制语句 Named Events Event or operator 往期回顾 参考资料及推荐关注 前言 Verilog中的延迟控制有两种类型–延迟和事件表达 ...

  7. Verilog初级教程(20)Verilog中的`ifdef 条件编译语句

    文章目录 前言 正文 语法 示例 Testbench文件 往期回顾 参考资料及推荐关注 前言 `ifdef条件编译语句在逻辑设计中还是很常见的,但也常见一些滥用的情况,这应该避免. 应该在什么情况下使 ...

  8. Verilog初级教程(15)Verilog中的阻塞与非阻塞语句

    文章目录 前言 正文 阻塞赋值 非阻塞赋值 往期回顾 参考资料以及推荐关注 前言 本文通过仿真的方式,形象的说明阻塞赋值以及非阻塞赋值的区别,希望和其他教程相辅相成,共同辅助理解. 正文 阻塞赋值 阻 ...

  9. Verilog初级教程(14)Verilog中的赋值语句

    文章目录 前言 正文 合理的左值 过程性赋值(Procedural assignment) 连续赋值 过程连续性赋值 往期回顾 前言 何为赋值语句?即将值放到线网或者变量上,这种操作称为赋值,英文:a ...

最新文章

  1. Redis集群配置和常见异常解决
  2. mysql 非自然月统计_技本功|统计信息对SQL执行效率的影响
  3. android USB
  4. 信贷风控必知必会:逾期相关的知识点总结
  5. 《深入理解java虚拟机》 - 需要一本书来融汇贯通你的经验(下)
  6. pandas实现分类汇总,查找不重复的一 一对应数据
  7. Jmeter之web压力测试
  8. dnSpy反编译EXE或DLL
  9. 实战演习(九)——用python分析科比生涯数据
  10. 【干货】Chrome插件(扩展)开发全攻略
  11. 大创笔记——硬切法实现基于单片机的人机交互系统
  12. 【弄nèng - Activiti6】Activiti6入门篇(十七)—— 消息中间事件
  13. Windows 7装机必备 - 主流品牌驱动大集合
  14. 12306网站专家:拟采取办法应对抢票软件
  15. 如何保存卡住的wps_wps卡住了怎么强制退出
  16. 模态框中弹模态框的问题
  17. Qt 自定义标题栏,最小化、最大化、关闭窗口,双击最大化,鼠标拖动等效果实现
  18. Havok和Physx对比
  19. python的win32gui, pyautogui, pywinauto,pynput对比
  20. InterruptedException

热门文章

  1. 0.爬虫介绍及requests库的使用
  2. SyGate4.0实现局域网共享上网
  3. ABP VNext学习日记2
  4. java8 access_Java语言8 连接Access数据库UCanAccess的操作介绍
  5. Business Unit---业务单元
  6. c语言中整形变量,C语言基本数据类型:整型(int)用法详解
  7. MapStruct系列(6)-映射集合、映射Stream流、映射枚举
  8. 【OpenCV】学习笔记(一):OpenCV4.5.5文件介绍
  9. 博客相关 | 如何获取图片主题色并修改字体颜色
  10. 通过DataEase行列权限设置实现数据权限管控