【Verilog-9.9】initial和always的用法
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的用法相关推荐
- Verilog初级教程(11)Verilog中的initial块
文章目录 前言 正文 语法格式 initial块是用来干什么的? initial块何时开始又何时结束? 一个模块中允许有多少个initial块? 参考资料 写在最后 前言 仿真中通常会依次执行一组Ve ...
- verilog中的initial块、always块详细解释
一.两者的关系 一个程序块可以有多个initial和always过程块.每个initial和always说明语句在 仿真的一开始同时立即开始执行 initial语句只执行一次,而always语句则不断 ...
- verilog中的initial语句
首先说说结构化过程语句,在verilog中有两种结构化的过程语句:initial语句和always语句,他们是行为级建模的两种基本语句.其他所有的行为语句只能出现在这两种语句里 与C语言不通,veri ...
- Verilog初级教程(12)Verilog中的generate块
文章目录 前言 正文 generate for generate if generate case 参考资料 本系列博文 前言 verilog中的generate块可以称为生成块,所谓生成,可以理解为 ...
- Verilog初级教程(23)Verilog仿真中的显示任务
文章目录 前言 正文 Display/Write Tasks Verilog Strobes Verilog Continuous Monitors Verilog Format Specifiers ...
- Verilog初级教程(21)Verilog中的延迟控制语句
文章目录 前言 正文 延迟控制语句 事件控制语句 Named Events Event or operator 往期回顾 参考资料及推荐关注 前言 Verilog中的延迟控制有两种类型–延迟和事件表达 ...
- Verilog初级教程(20)Verilog中的`ifdef 条件编译语句
文章目录 前言 正文 语法 示例 Testbench文件 往期回顾 参考资料及推荐关注 前言 `ifdef条件编译语句在逻辑设计中还是很常见的,但也常见一些滥用的情况,这应该避免. 应该在什么情况下使 ...
- Verilog初级教程(15)Verilog中的阻塞与非阻塞语句
文章目录 前言 正文 阻塞赋值 非阻塞赋值 往期回顾 参考资料以及推荐关注 前言 本文通过仿真的方式,形象的说明阻塞赋值以及非阻塞赋值的区别,希望和其他教程相辅相成,共同辅助理解. 正文 阻塞赋值 阻 ...
- Verilog初级教程(14)Verilog中的赋值语句
文章目录 前言 正文 合理的左值 过程性赋值(Procedural assignment) 连续赋值 过程连续性赋值 往期回顾 前言 何为赋值语句?即将值放到线网或者变量上,这种操作称为赋值,英文:a ...
最新文章
- Redis集群配置和常见异常解决
- mysql 非自然月统计_技本功|统计信息对SQL执行效率的影响
- android USB
- 信贷风控必知必会:逾期相关的知识点总结
- 《深入理解java虚拟机》 - 需要一本书来融汇贯通你的经验(下)
- pandas实现分类汇总,查找不重复的一 一对应数据
- Jmeter之web压力测试
- dnSpy反编译EXE或DLL
- 实战演习(九)——用python分析科比生涯数据
- 【干货】Chrome插件(扩展)开发全攻略
- 大创笔记——硬切法实现基于单片机的人机交互系统
- 【弄nèng - Activiti6】Activiti6入门篇(十七)—— 消息中间事件
- Windows 7装机必备 - 主流品牌驱动大集合
- 12306网站专家:拟采取办法应对抢票软件
- 如何保存卡住的wps_wps卡住了怎么强制退出
- 模态框中弹模态框的问题
- Qt 自定义标题栏,最小化、最大化、关闭窗口,双击最大化,鼠标拖动等效果实现
- Havok和Physx对比
- python的win32gui, pyautogui, pywinauto,pynput对比
- InterruptedException
热门文章
- 0.爬虫介绍及requests库的使用
- SyGate4.0实现局域网共享上网
- ABP VNext学习日记2
- java8 access_Java语言8 连接Access数据库UCanAccess的操作介绍
- Business Unit---业务单元
- c语言中整形变量,C语言基本数据类型:整型(int)用法详解
- MapStruct系列(6)-映射集合、映射Stream流、映射枚举
- 【OpenCV】学习笔记(一):OpenCV4.5.5文件介绍
- 博客相关 | 如何获取图片主题色并修改字体颜色
- 通过DataEase行列权限设置实现数据权限管控