我的问题是关于如何在 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_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
- 没有
my_modules[i].a
。字符串类型怎么可能有子字段a
? - 我将
[0]
附加到my_modules[i]
,因为my_modules[i]
是字符串类型。
关于arrays - Verilog:在分层路径中使用数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481663/