Vivado综合 –  EDIF模块的“找不到模块”错误-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Vivado综合 – EDIF模块的“找不到模块”错误

描述

我从Vivado项目导出了一个EDIF文件,以便将其用作另一个项目的子模块。

然后,我将.edf文件添加到我的新项目中并在顶层实例化它。设计层次结构看起来是正确的,但综合表示未找到子模块。

如果我为子模块导出Verilog并在同一顶级实例化它,它可以正常工作。

使用write_edif生成的edif输出时有任何限制吗?

从功能上讲,导出的EDIF和Verilog结构网表都应该在后综合设计中使用。

然而,在综合期间(仅),对于仅作为EDIF(或NGC)可用的较低级模块,需要基于RTL的综合“存根”。

如果您的顶级是VHDL,则组件声明是指定此方法的最常用方法。

但是,如果您的顶级是Verilog,则需要提供与较低级别EDIF模块(具有匹配端口)对应的Verilog空模块,以满足综合存根要求。

当您的较低级别是结构Verilog时,该模块定义直接起作用,因此不需要额外的存根文件。

对于EDIF导出,您还可以使用相同的设计导出综合存根文件,仅使用端口,如下所示:

2017.4及之前:

 write_edif module.edf 
write_verilog -mode port module_stub.v

2018.1以后:

 write_edif module.edf 
write_verilog -mode synth_stub module_stub.v

现在,如果将module.edf module_stub.v添加到项目中,事情就会起作用。

存根文件将仅在综合期间使用,模块在综合期间将保持黑盒子,但EDIF将自动用于解析后综合设计中的黑盒子。

请登录后发表评论

    没有回复内容