跨模块引用解析错误 - Verilog 检查未定义的跨模块引用



我正在研究一个具有不同编译原语

的环境,例如
  1. COMP_ALL_MODULES- 用于编译所有模块
  2. COMP_SELECT_MODULES- 用于编译一组选定的模块

因此,我面临以下错误COMP_SELECT_MODULES而不是COMP_ALL_MODULES

尝试解析跨模块引用时发现错误。 "BLK_B">

对于以下源代码

assign clock = top.dut.BLK_B.clk;

碰巧COMP_SELECT_MODULES没有编译BLK_B从而导致错误。

与在 C 编程中一样,我尝试了如下所示的 ifdef 检查。但这甚至为COMP_ALL_MODULES编制了时钟分配。

`ifdef top.dut.BLK_B
assign clock = top.dut.BLK_B.clk;
`else
assign clock = 1'b0;
`endif

你们能否建议如何检查未定义的跨模块引用,如上所示?

你当然想要

`ifndef COMP_SELECT_MODULES 
assign clock = top.dut.BLK_B.clk;
`else
assign clock = 1'b0;
`endif

'ifdef 语句测试是否已定义特定符号(例如 'COMP_ALL_MODULES 或 'COMP_SELECT_MODULES(,而不是层次结构中的特定位置是否存在。

最新更新