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

时间:2014-08-25 08:14:18

标签: 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
endgenerate

但我收到模拟错误,因为它找不到层次结构,因为它正在查找my_modules模块而不是其定义的值(即my_module_0my_module_1)。

有人可以就此提出建议吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我试过NCVerilog,结果很好,只需要很小的修改。

generate
for (genvar i = 0; i < 2; i++) begin: BLOCK
    wire a = top_module.my_modules[i][0];
end
endgenerate
  1. 没有my_modules[i].a。字符串类型如何具有子字段a
  2. 我将[0]附加到my_modules[i],因为my_modules[i]是字符串类型。