2017-03-28 9 views
0

、私が発生するようなイベントを待つ必要がある「タスク」で、それは次のようになります。signal_a1'b1のありながら、signal_bposedgeを持っています。しかし残念ながら、私は試しましたが、良い解決策はありませんでした。Verilogでは、レベルセンシティブイベントとエッジセンシティブイベントを同時に待つ方法はありますか? Verilogでテストベンチを書くとき

@(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が再び低くてもposedgeをピックアップして tb_hready を待ちます。 - これは私が望むものではありません。

(3)は文法エラーです。

(4)文法は良いですが、私が欲しいものを実装していない、そういう表現のように思われます。tb_hreadyが全く高くなるのを待っていません。

これは簡単なことだと思っていましたが、私が望むものを手に入れることはできませんし、Googleはそれほど役に立ちません。誰でも何か提案がありますか? thx ~~

+0

'signal_b'の立ち上がりを待つのが簡単ではなく、' signal_a'がアクティブであるかどうかを確認するのが簡単でしょうか? – Qiu

+0

それでは、コードはどのようになりますか? – katyusza

+0

@(posedge signal_b)if(signal_a) – Prashant

答えて

1
@(posedge tb_hclk iff tb_hready) 
関連する問題