【问题标题】:Array of Instances, how to know what's the index of a particular instance in the array实例数组,如何知道数组中特定实例的索引是什么
【发布时间】:2021-09-18 14:48:46
【问题描述】:

我正在使用系统 verilog 进行综合。我有一组接口实例。在接口定义中,我想要一个参数,它可以告诉这个实例在数组中的索引是什么。我认为我们不能将不同的参数值传递给数组中的每个不同实例。有没有办法做到这一点?

【问题讨论】:

  • 您究竟是如何创建实例数组的?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: system-verilog


【解决方案1】:

对于具有实例数组的可合成代码,没有自动的方法来执行此操作。如果您的综合工具支持,您可以使用defparam 手动完成。

module dut#(int I=0);
  initial $display("%m",,I);
endmodule

module top;
  dut u[1:2] ();
  defparam u[1].I=1;
  defparam u[2].I=2;
endmodule

更好的方法是使用 generate-for 循环。

module dut#(int I);
  initial $display("%m",,I);
endmodule

module top;
  for(genvar i=1;i<=2;i++) begin : A
    dut #(.I(i)) u();
  end : A
endmodule : top

  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 2020-01-13
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    相关资源
    最近更新 更多