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 回答