首页 > 解决方案 > 实例数组,如何知道数组中特定实例的索引是什么

问题描述

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

标签: system-verilog

解决方案


对于具有实例数组的可合成代码,没有自动的方法来执行此操作。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

  

推荐阅读