verilog 课件 编程

verilog 课件 编程

ID:5572349

大小:262.00 KB

页数:47页

时间:2017-11-16

verilog 课件 编程_第1页
verilog 课件 编程_第2页
verilog 课件 编程_第3页
verilog 课件 编程_第4页
verilog 课件 编程_第5页
资源描述:

《verilog 课件 编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、复习Verilog行为描述的模块结构Assign连续赋值语句说明VerilogHDL对模块的行为描述以过程块为基本组成单位,一个行为描述模块中可以同时包含多个过程块和多个连续赋值语句,这些组成成分将以并行方式各自独立地执行;行为描述模块也可以只包含过程块或者只包含assign连续赋值语句。任务和函数的使用也需要在过程块中进行调用。过程块每个过程块是由“过程语句(initial或always)”和语句块所组成的,而块语句主要是由过程赋值语句和高级程序语句(包括“条件分支语句”和“循环控制语句”)这两种行为语句构成的过程块的形式

2、定义过程语句@(事件控制敏感表)块语句开始标识符:块名块内局部变量说明一条或多条过程赋值或高级程序语句块语句结束标识符黄色字体表示的是可缺省的部分;?过程语句是指initial或always;?事件控制敏感表只在always过程语句中出现,用于激活过程语句的执行;?块语句标识符分begin-end(顺序块)与fork-join(并行块)两类;?块名和块内局部变量说明均为可选项。过程块的特点(1)一个模块的行为描述中可以有多个initial与always语句,代表多个过程块的存在,它们之间相互独立,并行运行(2)在进行仿真时,

3、所有initial过程块和always过程块的执行都是从0时刻开始并行地进行的。但initial过程语句后面的块语句沿时间轴只执行一次,而always则循环地重复执行其后的块语句。(3)initial过程语句不带触发条件,因而必定从模拟的0时刻开始执行它后面的块语句;always过程语句则通常带有触发(激活)条件,只有当触发条件被满足时,其后的块语句才真正开始执行。如果触发条件被缺省,则认为触发条件始终被满足。(4)每一个过程块内部的多条语句的执行方式可以是顺序执行的(当块定义语句为begin-end时的情况),也可以是并行

4、执行的(块定义语句为fork-join时的情况)。(5 always过程块和initial过程块都是不能嵌套使用.1initial过程语句?在实际的描述过程中,通常用来描述测试模块的初始化、监视、波形生成等功能行为。在对硬件功能模块的行为描述中,仅在必要时对只需执行一次的进程进行描述,例如它可以用来为寄存器变量赋初值。?是一条主要面向仿真的过程语句,通常不为逻辑综合工具接受。intial过程块的格式initial过程块是由过程语句“initial”和语句块组成的,它的格式为:initial块语句而“块语句”的格式为:<块定义

5、语句1>:<块名>块内局部变量说明;时间控制1行为语句1;……时间控制n行为语句n;<块定义语句2>在如上所示的格式中:(1)过程语句关键词initial表明了该过程块是一个“initial过程块”。(2)<块定义语句1>和<块定义语句2>构成了一组块定义语句,它们可以是“begin,end”语句组或“fork,join”语句组。这两条块定义语句将它们之间的多条行为语句组合在一起,使之构成一个块语句,并使其在格式上更像一条语句。当块语句中只包含一条行为语句并且不需要定义块名和块内局部变量时,这两条块定义语句可以缺省。(3)<

6、块名>为可选项,块名可以为块语句创建一个局部作用域。定义了块名的过程块称为“有名块”,在有名块中可以定义局部变量,有名块内部语句的执行可以被disable语句中断。(4)块内局部变量说明也是可选项,只有在有名块中才能定义局部变量,并且块内局部变量只能是寄存器类数据类型。(5)时间控制用来对过程块内各条语句的执行时间进行控制。它可以是任何一种时间控制方式。关于时间控制我们将在以后的课程中进行讨论。(6)行为语句可以是如下语句中的一种:过程赋值语句(阻塞型或非阻塞型过程赋值语句)。if条件分支语句。case条件分支语句。

7、循环控制语句(forever,repeat,while,for循环控制语句)。wait等待语句。disable中断语句。事件触发语句(event_trigger)。任务调用语句(用户自定义的任务或系统任务)我们可以将上面的这些行为语句分成三类:过程性赋值语句、高级程序语句和时间控制语句。其中过程性赋值语句和高级程序语句是过程块的基本组成部分。要注意上面列出的行为语句只能对寄存器类数据变量进行赋值;在进行仿真时,一个initial过程块从仿真0时刻开始执行,它在仿真过程中只执行一次,在执行完一次后该initial过程块

8、就被挂起,不再执行。如果一个模块中存在多个initial过程块,则每个initial过程块都是同时从0时刻开始并行执行的。initial过程块内的多条行为语句可以是顺序执行(块语句是begin-end串行块时)的,也可以是并行执行(块语句是fork-join并行块时)的。2always过程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。