verilog 时延相关的语法结构(Verilog HDL版本)
发布时间
阅读量:
阅读量
《Verilog HDL与数字系统设计简明教程》吴戈 人民邮电出版社 p34~35
1、时延的概念
连续赋值语句中经常出现时延,时延就是给出一个值,程序执行到此处就会暂停下来,等待这个值规定的若干个单位时间(单位时间的大小是默认值或由预处理指令timescale定义),然后再继续执行后面的语句。定义时延的形式是使用符号“#”,如#3就表示在此等待3个单位时间。
时延可以单独作为一句,如“#3;”就是程序中的一条语句。时延也可以内嵌在连续赋值语句中,跟在关键词assign之后。如果在连续赋值语句中没有定义时延,则默认时延值为0,右端表达式的值会立刻赋值给左端线网。如果在连续赋值语句中定义了时延值,例如:
assign #6 Ask = Quiet || Late;
那么右边表达式的计算结果需在经过6个单位时间的延迟后才能被赋值给等式左侧的网络目标。如图1所示, 于时刻5时,Late的值发生变化, 则计算等式右侧的表达式, 并于时刻11(从时刻5开始延迟6个单位时间)将结果赋值给Ask节点。在整个延迟过程中, 如果等式右侧表达式的值再次发生变化, 那么当延迟结束时, 应将最新的值赋给等式左侧的网络节点。
assign #4 Cab = Drm;
如图2所示,在某一时间点,Drm由0升至1,由此可知,根据连续赋值语句
全部评论 (0)
还没有任何评论哟~
