1

私は Verilog の初心者です (もちろん SystemVerilog も)。その機能をテストする RTL モジュールがあります。モジュールを再利用できるように、刺激を適用してから観察するのではなく、アサーションを使用してそれを実行しようとしていました..

とにかく、私の主張は次のようになります。

always @(posedge start_test)
  if (read == 1'b1 && test_type == 3'b001 && read_enable_pulse == 1'b0)
    assert property(read_test)
        $display("@%0dn read fail injection passed",$time)
      else ("@%0dn read fail injection passed",$time);

property read_test;
  @(posedge tckg) start_test |-> ##8 ((test_done == 1'b1) && (test_pass == 1'b0));
endproperty

この場合、read_enable_pulseモジュール内部の信号があり、

バインドせずにテストベンチレベルから見たいと思います(方法も正確にはわかりません)。

testbenchmodule.mymodule.read_enable_pulse階層をくぐる場所に入れてみましread_enable_pulseたがうまくいかないようです..

誰でもこれを行う方法を知ることができますか?

4

1 に答える 1

1

すでに入っているのでtestbenchmodule(アサーションを書いているのはここだと思います)、単に を参照してみてくださいmymodule.read_enable_pulse。Verilog では階層パスが許可されているため、これは機能するはずです。

これが機能しない場合 (シミュレーターの制限により)、ほぼすべてのシミュレーターが内部信号の監視に使用できるシステム関数を提供します。たとえば、Cadence には が$nc_mirrorあり、Mentor には があり$init_signal_spyます。詳細については、シミュレーターのマニュアルを参照してください。

于 2014-07-26T09:46:42.330 に答える