Verilog HDL语言的描述语句.docx
《Verilog HDL语言的描述语句.docx》由会员分享,可在线阅读,更多相关《Verilog HDL语言的描述语句.docx(15页珍藏版)》请在三一办公上搜索。
1、Verilog HDL语言的描述语句第4节 Verilog HDL语言的描述语句 Verilog HDL 描述语句 2.4.1 结构描述形式 通过实例进行描述的方法,将Verilog HDL预先定义的基本单元实例嵌入到代码中,监控实例的输入。Verilog HDL中定义了26个有关门级的关键字,比较常用的有8个。在实际工程中,简单的逻辑电路由逻辑门和开关组成,通过门元语可以直观地描述其结构。 基本的门类型关键字如下所述: and nand nor or xor xnor buf not Verilog HDL支持的基本逻辑部件是由该基本逻辑器件的原语提供的。其调用格式为: 门类型 (输出,输入
2、1,输入2,,输入N) 例如,nand na01(na_out, a, b, c ); 表示一个名字为na01的与非门,输出为na_out,输入为a, b, c。 例2-5 一个简单的全加器例子: module ADD(A, B, Cin, Sum, Cout); input A, B, Cin; output Sum, Cout; / 声明变量 wire S1, T1, T2, T3; xor X1 (S1, A, B), X2 (Sum, S1, Cin); and A1 (T3, A, B), A2 (T2, B, Cin), A3 (T1, A, Cin); or O1 (Cout,
3、T1, T2, T3); endmodule 在这一实例中,模块包含门的实例语句,也就是包含内置门xor、and和or的实例语句。门实例由线网型变量S1、T1、T2和T3互连。由于未指定顺序,门实例语句可以以任何顺序出现。 门级描述本质上也是一种结构网表。在实际中的使用方式为:先使用门逻辑构成常用的触发器、选择器、加法器等模块,再利用已经设计的模块构成更高一层的模块,依次重复几次,便可以构成一些结构复杂的电路。其缺点是:不易管理,难度较大且需要一定的资源积累。 2.4.2 数据流描述形式 数据流型描述一般都采用assign连续赋值语句来实现,主要用于实现组合功能。连续赋值语句右边所有的变量受持
4、续监控,只要这些变量有一个发生变化,整个表达式被重新赋值给左端。这种方法只能用于实现组合逻辑电路。其格式如下: assign L_s = R_s; 例2-6 一个利用数据流描述的移位器 module mlshift2(a, b); input a; output b; assign b = a end_wave; /语句5,触发事件end_wave end 串行块的执行特点如下: 串行块内的各条语句是按它们在块内的语句逐次逐条顺序执行的,当前一条执行完之后,才能执行下一条。如上例中语句1至语句5是顺序执行的。 块内每一条语句中的延时控制都是相对于前一条语句结束时刻的延时控制。如上例中语句2的时
5、延为2d。 在进行仿真时,整个语句块总的执行时间等于所有语句执行时间之和。如上例中语句块中总的执行时间为5d。 forkjoin,用来组合需要并行执行的语句,被称为并行块。例如: parameter d = 50; reg7:0 r; fork /由一系列延迟产生的波形 # d r = h35 ; /语句1 # 2d r = hE2 ; /语句2 # 3d r = h00 ; /语句3 # 4d r = hF7 ; /语句4 # 5d end_wave; /语句5,触发事件end_wave join 并行块的执行特点为: 并行语句块内各条语句是各自独立地同时开始执行的,各条语句的起始执行时间都
6、等于程序流程进入该语句块的时间。如上例中语句2并不需要等语句1执行完才开始执行,它与语句1是同时开始的。 块内每一条语句中的延时控制都是相对于程序流程进入该语句块的时间而言的。如上例中语句2的延时为2d。 在进行仿真时,整个语句块总的执行时间等于执行时间最长的那条语句所需要的执行时间,如上例中整个语句块的执行时间为5d。 混合使用 在分别对串行块和并行块进行了介绍之后,还需要讨论一下二者的混合使用。混合使用可以分为下面两种情况。 串行块和并行块分别属于不同的过程块时,串行块和并行块是并行执行的。例如一个串行块和并行块分别存在于两个initial过程块中,由于这两个过程块是并行执行的,所以其中所
7、包含的串行语句和并行语句也是同时并行执行的。在串行块内部,其语句是串行执行的;在并行块内部,其语句是并行执行的。 当串行块和并行块嵌套在同一过程块中时,内层语句可以看作是外层语句块中的一条普通语句,内层语句块什么时候得到执行是由外层语句块的规则决定的;而在内层语句块开始执行时,其内部语句怎么执行就要遵守内层语句块的规则。 3时序控制 Verilog HDL提供了两种类型的显示时序控制,一种是延迟控制,在这种类型的时序控制中通过表达式定义开始遇到这一语句和真正执行这一语句之间的延迟时间。另外一种是事件控制,这种时序控制是通过表达式来完成的,只有当某一事件发生时才允许语句继续向下执行。 延时控制
8、延时控制的语法如下: # 延时数 表达式; 延时控制表示在语句执行前的“等待时延”,下面给出一个例子: initial begin #5 clk = clk; end 延时控制只能在仿真中使用,是不可综合的。在综合时,所有的延时控制都会被忽略。 事件控制 事件控制分为两种:边沿触发事件控制和电平触发事件控制。 边沿触发事件是指指定信号的边沿信号跳变时发生指定的行为,分为信号的上升沿和下降沿控制。上升沿用posedge关键字来描述,下降沿用negedge关键字描述。边沿触发事件控制的语法格式为: 第一种:() 行为语句; 第二种:( or or or ) 行为语句; 例2-10 边沿触发事件计数
9、器 reg 4:0 cnt; always (posedge clk) begin if (reset) cnt = 0; else cnt = cnt +1; end 上面这个例子表明:只要clk信号有上升沿,那么cnt信号就会加1,完成计数的功能。这种边沿计数器在同步分频电路中有着广泛的应用。 电平敏感事件是指指定信号的电平发生变化时发生指定的行为。下面是电平触发事件控制的语法和实例: 第一种:() 行为语句; 第二种:( or or or ) 行为语句; 例2-11 电平沿触发计数器 reg 4:0 cnt; always (a or b or c) begin if (reset) c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog HDL语言的描述语句 HDL 语言 描述 语句
链接地址:https://www.31ppt.com/p-3062857.html