【问题标题】:Is there a way to get the name a Verilog module was instantiated with?有没有办法获得 Verilog 模块实例化的名称?
【发布时间】:2020-06-08 00:09:00
【问题描述】:

我想在 Verilog 中做一些模拟调试,并想在一些模块中添加$display。但是,我希望能够跟踪单个模块提供的输出。我希望能够获得当前模块被实例化的名称以添加到$display

例如:

module adder (...)
    ...
    $display($magic_instance_name, " ", in0, " + ", in1);
    ...

adder memory_address (...);
adder fifo_nvals (...);

然后输出将如下所示:

memory_address 100 + 8
fifo_nvals 3 + 1
...

我可以做到这一点的一种方法是为每个模块添加一个instance_name 参数。有没有更简单的方法?

【问题讨论】:

    标签: verilog


    【解决方案1】:

    您可以使用%m 获取包含唯一实例名称的完整路径:

    module tb;
        adder memory_address ();
        adder fifo_nvals ();
        initial #5 $finish;
    endmodule
    
    module adder;
        initial $display("   hello from ... %m");
    endmodule
    

    打印:

       hello from ... tb.memory_address
       hello from ... tb.fifo_nvals
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 2013-09-27
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      相关资源
      最近更新 更多