Arrays Verilog:在分层路径中使用数组元素

Arrays Verilog:在分层路径中使用数组元素,arrays,verilog,system-verilog,Arrays,Verilog,System Verilog,我的问题是关于如何在Verilog(SystemVerilog)的分层路径中使用预定义的数组元素 例如,我定义了以下字符串数组: string my_modules [0:1] = {"my_module_0","my_module_1"}; 之后,在我的代码中,我尝试在一些层次结构中使用它们: generate for (genvar i = 0; i < 2; i++) begin: BLOCK wire a = top_module.my_modules[i].a; end

我的问题是关于如何在Verilog(SystemVerilog)的分层路径中使用预定义的数组元素

例如,我定义了以下字符串数组:

string my_modules [0:1] = {"my_module_0","my_module_1"};
之后,在我的代码中,我尝试在一些层次结构中使用它们:

generate
for (genvar i = 0; i < 2; i++) begin: BLOCK
    wire a = top_module.my_modules[i].a;
end
endgenerate
生成
对于(genvar i=0;i<2;i++)开始:块
导线a=顶部模块。我的模块[i]。a;
结束
最终生成
但是我得到了模拟错误,因为它找不到层次结构,因为它正在寻找
my_modules
module,而不是它的定义值(即
my_module_0
my_module_1

有人能对此提出建议吗


谢谢。

我试过使用NCVerilog,只需稍加修改,结果就可以了

generate
for (genvar i = 0; i < 2; i++) begin: BLOCK
    wire a = top_module.my_modules[i][0];
end
endgenerate
生成
对于(genvar i=0;i<2;i++)开始:块
导线a=顶部_模块。我的_模块[i][0];
结束
最终生成
  • 没有
    my_模块[i].a
    。字符串类型怎么可能有子字段
    a
  • 我将
    [0]
    附加到
    我的\u模块[I]
    ,因为
    我的\u模块[I]
    是字符串类型

  • 不能使用字符串在SystemVerilog中形成变量路径名。如果你能展示更多你想要完成的事情,我们可能会建议一个替代方案。这至少在cadence xcelium中也是如此。。。感谢在精化过程中,这段代码出现了分层查找失败,很不幸。。。