第四章行为描述优秀PPT.ppt
《第四章行为描述优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第四章行为描述优秀PPT.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章行为描述第一页,本课件共有63页4.1 verilog 行为描述概要4.1.1 过程块4.1.2 过程语句 initial 与 always第二页,本课件共有63页4.1.1 过程块 HDL由五个部分组成,主要部分是描述体部分。描述体部分由多个并行运行的过程块组成,而每个过程块又由过程块语句和块语句所组成,块语句则进一步由过程赋值语句和高级程序语句构成。第三页,本课件共有63页Verilog HDL 行为描述的模块第四页,本课件共有63页描述体部分:第五页,本课件共有63页过程语句 (事件控制敏感表)块语句开始标识符:块名 块内局部变量说明 一条或多条过程赋值或高级程序语句 块语句结束标
2、识符过程块的形式:第六页,本课件共有63页4.1.2过程语句过程语句initial initial 和和 alwaysalways:过程语句是:initial 或 always;事件敏感表只在always过程语句中出现,用于激活过程语句的执行;块语句标识符分begin-end(串行块)与fork-joint(并行块)两类。第七页,本课件共有63页过程语句的特点:1.两者都是从0时刻执行,initial 过程语句后面的块语句沿时间轴只执行一次,而always 则循环地重复执行其后的块语句。2.initial 过程语句不带触发条件,从0时刻开始执行它后面的块语句;always过程语句带有触发条件。
3、3.一个模块的行为描述中可以有多个initial和always语句,代表多个过程的存在,他们之间相互独立,并行运行。第八页,本课件共有63页例子:module clk_gen_demo(clock1,clock2);output clock1,clock2;/port declarationreg clock1,clock2;/data declarationinitial begin clock1=0;clock2=1;end always begin#50 clock1=clock2;end always begin#100 clock2=clock2;endendmodule第九页,本课
4、件共有63页4.2 块语句 块语句是由begin-end 或fork-joint 界定的一组行为描述语句。构成块语句的作用之一就是相当于给这组行为描述语句进行打包处理,使之在形式上与一条语句相一致。块语句只能出现在行为描述中。第十页,本课件共有63页4.2.1 串行块 begin-end 1.串行块的语句按照排列次序,逐条顺序执行。每条语句的延时是相对于前一条语句结束时的时间;2.串行块的起始时间是第一条语句开始的时间;结束时间是最后一条语句完成的时间;3.串行块的行为描述可以理解为硬件电路在时钟及控制信号作用下,数据沿数据通道的各级寄存器之间的传送过程。第十一页,本课件共有63页例4-2 一
5、个包含延时的串行块描述的例子 begin#10 reg_a=reg_b;#10 reg_c=reg_a;end 当流程控制进入串行块后,经10 单位时间,reg_b的值赋给reg_a;再过10单位,又将reg_a的值赋给reg_c;到标识符end,流程转出块外。运行结果:reg_a 和 reg_c 先后变成reg_b 的值。从上述过程可以看到,每条语句的延时是相对于前一条语句而言的,串行块是沿时间轴顺序执行。第十二页,本课件共有63页4.2.2 并行块fork_join 1并行块中的每条语句是同时并行执行,各条语句的执行过程与语句在块中的顺序无关。块中的每条语句给出的延时都是相对于该块开始的绝
6、对时间。2并行块的起始时间是流程转入该块的时间,每条语句都是相对于这个时间同时开始的。块的结束时间就是该块中按时间排序最后执行的一条语句结束的时间。3并行块的行为描述可以理解为硬件电路上电后,各电路模块同时开始工作的过程。第十三页,本课件共有63页例44 一个包括延时地并行块描述的例子 fork#10 reg_a=reg_b;#10 reg_c=reg_a;join 将这个并行描述与例42中的串行描述对照,差别是块标识符从原来的串行标识符begin_end改为这里的并行标识符fork_join。正是这一改变导致块语句的执行过程与执行结果都发生了变化。第十四页,本课件共有63页module wa
7、ve_gen_seri(wav);output wav;reg wav;event end_wave;parameter delay=50;initialbegin wav=0;#delay wav=1;#delay wav=0;#delay wav=1;#delay wav=0;#delay -end_wave;end例4-5.用串行块行为描述产生一段周期为100时间单位。占空比为1:1的信号波形。第十五页,本课件共有63页例4-6 用并行块描述一段周期为100时间单位、占 空比为1:1的信号module wave_gen_para(wav);output wav;reg wav;event
8、 end_wave;initialfork wav=0;#50 wav=1;#100 wav=0;#150 wav=1;#200 wav=0;#250 -end_wave;join第十六页,本课件共有63页例4-7 用于验证并行块描述中语句的排序不影响语句的执行过程的例子。module wave_gen_para_verify(wav);output wav;reg wav;event end_wave;initial fork#250 -end_wave;#200 wav=0;#150 wav=1;#100 wav=0;#50 wav=1;wav=0;joinendmodule第十七页,本课
9、件共有63页423 有名块 Named-block 有名块取名方法是在块语句开始标识符(串行块的begin或并行块的fork)后面加上一个冒号,之后给出一个名字即可。去了名字的块称之为有名块。第十八页,本课件共有63页一、便于实现对块语句执行过程的有效控制 对于多条语句构成的块语句,各条语句顺序或并行运行。如果需要根据过程的状态,控制过程的是否继续执行下去。给块命名后,可以通过后面要介绍的disable语句,在必要时终止(或提前结束)该有名块语句的执行过程。有名块的作用之一:第十九页,本课件共有63页二、允许在块语句内部引入局部变量 局部变量的含义类似于c语言中的相应含义。只在该块内部起作用。
10、Verilog HDL中,变量都是静态变量(同样请参考c语言的静态变量)。给块命名后,就可以在模拟时给属于这一有名块的局部变量分配内存地址单元。即使局部变量与块外的其他变量同名,由于块名的标识,模拟系统很容易据此加以区别。显然,局部变量只可能是寄存器类的变量。有名块的作用之二:第二十页,本课件共有63页4.3赋值语句4.3.1 什么是过程赋值语句4.3.2 过程赋值语句的两种延时模式4.3.3 阻塞型与非阻塞型过程赋值4.3.4 连续赋值语句assign4.3.5 过程连续赋值语句(assign/deassign,force/release)第二十一页,本课件共有63页 Verilog HDL
11、对模块的行为描述由一个或多个并行运行的过程块构成,而位于过程块中的赋值语句称之为过程赋值语句。过程赋值语句只能对寄存器类的量进行赋值。过程语句的左边必须是寄存器类的变量(reg.integer.real.Time).对于多位宽的寄存器变量(矢量)可以只对其中某一位或某几位赋值。对与存储器只能通过选定的地址单元,对某个字赋值;还可以将前述各类变量用连续符拼接起来,构成一个整体作为过程赋值的左端。4.3.1 什么是过程赋值语句(continuous assignment statement)第二十二页,本课件共有63页reg_a=8b1011_1100;/对一个8位寄存器的赋值reg_a3=1b0
12、;/对寄存器的某一位赋值reg_a7:4=4b1010;/对寄存器的几位赋值mem_aaddress=8h5d;/*对由address地址指定的寄存器单元赋值*/carry,sum=reg_a+reg_b;/*通过连接算符构成一个整体进行赋值*/例48 对各种形式的寄存器变量进行过程赋值的例子第二十三页,本课件共有63页4.3.2 过程赋值语句的两种延时模式 过程赋值语句的基本形式:寄存器变量表达式 考虑赋值过程的定时控制(Timing-control)时,根据定时控制在过程赋值语句中的不同位置,存在两类定时模式:一.外部定时模式 二.内部定时模式第二十四页,本课件共有63页一、外部模式:表达
13、式:该延时的模式:经“定时控制”所确定的延时后,计算出右端表达式的值,把结果赋值给左端的“寄存器变量”。其中的“定时控制”分为两种类型:1.延时控制延时控制 2.2.事件控制事件控制第二十五页,本课件共有63页1.延时控制延时控制 延时控制就是直接给出所需延时的时间,如:delay a=b;这条语句表明,经delay确定的延时时间后,过程赋值语句右端表达式才被求值并被赋给左端的寄存器变量。第二十六页,本课件共有63页2.事件控制 事件控制以符号“”开头,后面紧跟的是事件控制控制敏感表,有以下几种形式:(1)(信号名);(2)(clock)reg_a=reg_b;(3)(negedge cloc
14、k)reg_a=reg_b;(4)(事件1 or事件2 or事件3)。第二十七页,本课件共有63页(1)(信号名)信号名所指定的信号通常是一位标量,也可以是多位的矢量。该形式的含义:只要被检验的信号发生变化(一般是指上升沿或下降沿)时,后面的赋值语句就被执行。如:(clock)reg_a=reg_b;当clock发生跳变(上升沿或下降沿),reg_b的值就赋给reg_a。第二十八页,本课件共有63页(2)(posedge信号名)信号发生上升沿跳变(positive edge)如:(posedge clock)reg_a=reg_b;只要检测到clock信号出现上升沿,reg_b的值就赋给reg
15、_a。第二十九页,本课件共有63页(3)(negedge信号名)信号发生下降沿跳变的情况如:(negedge clock)reg_a=reg_b;只要当检测到clock信号的下降沿,reg_b的值就赋给reg_a。第三十页,本课件共有63页(4)(事件1 or 事件2 or 事件3)表达式中的事件是指上面(1)、(2)、(3)三类事件中的任何一种事件,or表示逻辑或的意思,即只要所列举的任何一种情况出现,都将激活这里的事件控制。注意,Verilog HDL只提供“或”方式来处理多重触发情况,没有再定义诸如“与”等其他方式。第三十一页,本课件共有63页例子:(posedge reset or p
16、osedge clear)reg_out=0;上例表示,只有 reset 或 clear 中的任一个出现下跳变,reg_out被复位。第三十二页,本课件共有63页二、内部模式:=;在内部模式中,有关“定时控制”的表现形式与上面对外部模式中的说明完全一致。两者之间的差别在于,在外部模式中,定时控制位于过程赋值语句之前,直接体现为对过程赋值语句执行事件的延期(postpone)上,只有当延时时间被满足,或其他类型的激发条件被满足后,过程赋值语句才能被计算和赋值。第三十三页,本课件共有63页内部模式说明:在内部模式中,定时控制位于赋值语句内部,与外部模式相同的是,两者都是在延时时间到期后再执行过程赋
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 行为 描述 优秀 PPT
限制150内