このような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 を割り当てる必要がありますが、解析パラメーター値がまだ定義されていない場合は、割り当てステートメントは最終的なパラメーター値に関係なく解析されます。階層の存在はパラメーター値に依存しているため、この問題に遭遇しました。
では、このタイプのパラメーター依存の割り当てを行うにはどうすればよいでしょうか?