Compiler errors 扩展定义时出现Verilog[跨模块解析错误]
当编译器按如下方式扩展定义时,我得到了一个跨模块解析错误: 在文件中,假设路径_defines.vh,其中定义位于:Compiler errors 扩展定义时出现Verilog[跨模块解析错误],compiler-errors,verilog,system-verilog,hdl,asic,Compiler Errors,Verilog,System Verilog,Hdl,Asic,当编译器按如下方式扩展定义时,我得到了一个跨模块解析错误: 在文件中,假设路径_defines.vh,其中定义位于: `define apple aaaa.bbbb.cccc.\pie[0] .dddd.eeee 我使用\字符和尾随空格来转义2012年verilog手册中定义的字符[和] 因此,当编译器使用定义的术语解析filesay时,例如:design.vs,如下所示: `apple.ffff.gggg 为了扩展定义,编译器给了我一个: 跨模块参考分辨率错误 尝试解析跨模块引用时发现错误
`define apple aaaa.bbbb.cccc.\pie[0] .dddd.eeee
我使用\字符和尾随空格来转义2012年verilog手册中定义的字符[和]
因此,当编译器使用定义的术语解析filesay时,例如:design.vs,如下所示:
`apple.ffff.gggg
为了扩展定义,编译器给了我一个:
跨模块参考分辨率错误
尝试解析跨模块引用时发现错误。如果您的示例与下面类似,则不需要任何转义名称。编译器将饼图[0]理解为名称的一部分。[]你在那里没问题
module top;
aaa aaa();
assign aaa.bbb.pie[0].ccc.ddd = 0;
endmodule
module aaa();
bbb bbb();
endmodule
module bbb;
generate
for (i = 0; i < 2; i++) begin: pie
ccc ccc();
end
endgenerate
endmodule // bbb
module ccc;
wire ddd;
endmodule
它告诉你信号不存在。很明显,你的道路上有一个bug。此外,你为什么要使用“转义名称”?编译器不会生成这些。我认为您不需要它。因为我在定义名称中使用了[]字符,我需要使用\和尾随空格来转义[]字符。我应该澄清一下,Synopsys DC编译器在转义字符方面会有问题吗?哦,好的,很高兴知道。然而,我认为这并不能解决定义扩展错误:您需要提供您的示例。扩展与跨模块引用无关,它只是一个宏替换。也许我应该澄清一下,Synopsys DC编译器是否存在转义字符问题?它不应该,。