Verilog中的延时、阻塞与非阻塞赋值仿真

Verilog中的延时、阻塞与非阻塞赋值仿真

ID:38984265

大小:130.01 KB

页数:12页

时间:2019-06-23

Verilog中的延时、阻塞与非阻塞赋值仿真_第1页
Verilog中的延时、阻塞与非阻塞赋值仿真_第2页
Verilog中的延时、阻塞与非阻塞赋值仿真_第3页
Verilog中的延时、阻塞与非阻塞赋值仿真_第4页
Verilog中的延时、阻塞与非阻塞赋值仿真_第5页
资源描述:

《Verilog中的延时、阻塞与非阻塞赋值仿真》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、从仿真语义的角度看Verilog中的延时、阻塞与非阻塞赋值12/121Verilog中的延时Verilog没有和VHDL中类似的最小延时概念,所有的延时都由符号“#”来定义,如果没有这个符号就意味着没有延时,清单1中描述了一个有关延时的简单例子。清单1简单的延时wire#5Y=A&B;清单1中使用持续赋值语句描述了一个两输入端与门逻辑,并且在表达式前插入了5ns(#5)的延时,意义为Verilog仿真器会在5ns的延时后将A和B相与赋值给Y。通过这个例子可以看出,延时的插入只需要在原本的语句中加入“#”关键字即可,但在实际的使用中却经常产生错误,实际中的延时时间是由具体的硬件电路来决定的。

2、使我们更深入的理解Verilog中的延时,更加关注描述的电路意义而不是描述语句本身,Verilog也是一种机于硬件的语言。1.1实际中的延时在实际的电路中,只存在着两种延时行为,一个是惯性延时,另一个是传输延时。1.1.1惯性延时(InertialDay)惯性延时通常在信号通过逻辑门的时候发生,图1所示是信号通过一个具有5ns延迟的非门时的行为。图1惯性延时输入信号WireIn有两个高电平脉冲,一个宽度为3ns,另一个宽度为9ns。当第一个3ns的脉冲到达非门时,因为其宽度小于非门的本身延时(5ns),输出还来不及建立低电平,输入脉冲就已经过去,所以在输出信号WireOut上没有体现出第一

3、个3ns脉冲的响应。第二个脉冲宽度为9ns,大于非门的本身延时,所以在脉冲上升沿5ns之后,WireOut输出了一个宽度为9ns的低脉冲,这个脉冲与输入脉冲等宽、反向而且延迟了5ns。这种延时称为惯性延时或惰性延时。如果输入的变化过快,小于逻辑门本身的延时,就不会被体现在输出上。1.1.2传输延时(TransportDelay)传输延时相对于惯性延时更容易理解,相当于信号通过了一条拥有固定延时的传输线。如图2所示是信号通过一条5ns的延时线地示意图与波形。12/12图2传输延时容易看出来,WireOut实际上就是被延迟了5ns的WireIn。所以传输延时的意义就是将输入信号延迟一定时间后体

4、现在输出上,而且输入信号上的所有细节都不会丢失。1.2持续赋值语句中的延时在持续赋值语句只有一种合法的延时描述,如清单2所示:清单2持续赋值语句中的延时assign#5WireOut=~WireIn;这种描述用语表示电路中的惯性延时,任何小于5ns的输入变化都会被过滤而不会体现在输出上。1.3过程赋值语句中的延时过程赋值语句中的延时情况比较复杂,但是结论很简单:l在持续赋值语句中使用正规延时,可以描述惯性延时。l在非阻塞赋值语句中使用内定延时,可以描述传输延时。1.3.1正规延时和内定延时正规延时和内定延时的定义见清单3。清单3正规延时和内定延时#Nsum=a+b;//正规延时sum=#N

5、a+b;//内定延时定义于赋值语句前面的延时称为正规延时,其意义是:若赋值语句的执行条件在T时刻得到满足,该语句并不会立即执行,而是在延时N时间后,也就是在T+N时刻将T+N时刻的a+b赋值给sum。内定延时定义于赋值语句的右式之前,其意义是:若赋值语句的执行条件在T时刻得到满足,立即将T时刻的a与b相加,并不是立即赋值给sum,而是在延时N时间后,也就是在延时N时间后将a+b赋值给sum。了解了正规延时和内定延时的概念,不难想象出,对应Verilog中的持续性赋值、阻塞性赋值和非阻塞赋值这三种赋值形式,一共有六种插入延时的方法。但是在持续赋值中插入内定延时是非法的,这是因为内定延时需要将

6、T时刻的结果保持到T+N时刻进行赋值,表现出记忆特性,与持续赋值的意义相冲突。下文介绍阻塞赋值和非阻塞赋值中的延时。1.3.2阻塞赋值中的延时在阻塞赋值中可以插入正规延时和内定延时,示例如清单4所示。由QuartusII综合后得到时间戳report和RTL图形分别如图3和图4所示,由Modelsim仿真产生的仿真波形如图5所示。12/12清单4阻塞赋值语句中的延时moduleDelayDemo(A,B,C,D);outputA,B,C,D;reg[3:0]A,B,C,D;initialbeginA=4'd0;B=4'd0;#4A=4'd2;B=4'd4;#2A=4'd3;#2A=4'd4;

7、#9A=4'd3;#2A=4'd5;B=4'd5;#5B=4'd8;endalways@(AorB)beginC=#3A+B;//阻塞赋值中的内定延时endalways@(AorB)begin#3D=A+B;//阻塞赋值中的正规延时endendmodule图3清单4的message12/12图4清单4的RTL图5清单4的仿真波形在图5的仿真图中,对于不断变化的输入A和B,C为插入了3ns内定延时的A+B,D为插入了3ns

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

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

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