-
例题问,上述代码,当显示a=1时,b应该显示多少?
最终综合后,a会被综合为四个1位的寄存器,代码中运用了阻塞赋值,每一拍打印的值a和b都是相等的,意味着b不会和a有一拍的delay。b如果想要实现为寄存器,和a有一拍的delay,那么应该使用非阻塞赋值。
答案:b=1
-
时钟块可以在interface和module中添加
-
第二行代码为模拟建立和保持时间,input是在clock1上升沿来的前10ns开始进行输入采样,在上升沿的后2ns对输出进行驱动
-
下一行则是声明了三个输入的信号,他们都是在clock1上升沿来之前的10ns进行采样,不能对他们作驱动。
-
再下一行默认不指定为clock1时钟上升沿,但是它指定了为式中下降沿的2ns后。
-
#1step一个时间片
-
例题
答案:C
-
例子1——对vld进行采样
@ck表示等待clocking的变化事件,即为式中clk时钟的上升沿。
ck.vld为使用时钟块ck对vld进行采样,由于input #3ns,将会在时钟上升沿的前3ns进行采样,即根据波形可知,采样的到的为0、1、1。
-
例子2——对grt进行驱动
在5、15、25之后过了3ns,才真正被驱动
@grt表示grt发生变化时输出信号,由输出结果表示,输出驱动在延迟3ns后生效。
-
结论