【发布时间】:2017-03-28 06:16:24
【问题描述】:
在 Verilog 中编写测试台时,在“任务”中我需要等待这样的事件发生,即:而 signal_a 是 1'b1, signal_b 有一个 posedge。但是,不幸的是,我尝试了但没有得到很好的解决方案:
@(tb_hready and posedge tb_hclk) ;//(1)
wait(tb_hready) @(posedge tb_hclk) ;//(2)
wait(tb_hready && posedge tb_hclk) ;//(3)
if(tb_hready) @(posedge tb_hclk) ;//(4)
(1)是语法错误;
(2) 语法不错,但是会先等tb_hready变高,再tb_hready再变低再拾取posege; -- 这不是我想要的。
(3)是语法错误;
(4) 语法很好,但没有实现我想要的,在这样的表达中,它似乎根本没有“等待” tb_hready 变高。
我认为这应该是一件相当容易的事情,但我就是无法得到我想要的东西,Google 也没有太大帮助。有人有什么建议吗?谢谢~~
【问题讨论】:
-
等待
signal_b上升沿并在发生时检查signal_a是否处于活动状态会不会更容易? -
那代码会是怎样的呢?
-
@(posedge signal_b) if (signal_a)
-
知道了,谢谢哥们~~@Prashant
标签: verilog wait test-bench