我有一些看起来像这样的Verilog代码
module top_tb
genUnit genUnit1;
spyUnit spyUnit1;
endmodule
module unitX(...)
logic some_signal;
endmodule
module genUnit
unitX unit1(….);
**generate
if(myparam==2) begin : generate_block_2
unitX unit2(….);
end
endgenerate**
endmodule
module spyUnit
output logic spy1;
output logic spy2;
assign spy1 = genUnit1.unit1.some_signal;
**generate
if(myparam==2) begin : assign_spy_2
assign spy2 = genUnit1.unit2.some_signal;
end
endgenerate**
endmodule
VCS错误 - [XMRE]跨代模块参考分辨率错误,此代码分配给spy2(spy1分配正常)。仅当mypram为2时才需要分配spy2,但是当尚未定义解析参数值时,无论最终参数值如何,都会解析assign语句。由于层次结构的存在依赖于参数值,因此我遇到了这个问题。
那么我该如何进行这种类型的参数依赖分配?
答案 0 :(得分:1)
生成语句向层次结构名称添加图层。因此,
top_tb.genUnit1.generate_block_2.unit2.some_signal
应该是路径。