UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 54074

Vivado - Synthesis 针对 EDIF 子模块报错:“找不到模块”

Description

我已将 EDIF 文件从 Vivado 项目中导出,以便将其用作其它项目的子模块。随后,我将 .edf 文件添加到了新工程中,并且在顶层对其进行了实例化。设计层次看上去正确无误,但是,Synthesis 告知找不到该子模块。

如果我导出结构化的 Verilog网表例化在顶层中,则该子模块可以正常工作。

使用从 write_edif 生成的 edif 网表有何限制吗?

解决方案

从功能上讲,导出的 EDIF 和 Verilog 结构化网表在综合后设计中都应正常工作。

但是,在综合时,需要提供一个基于RTLstub给作为EDIF(或 NGC)网表存在的子模块。如果顶层是 VHDL,则组件声明是指定此项的最常用方法。尽管您的顶层是 Verilog,但您仍需要提供与较底层 EDIF 模块(具有匹配的端口)对应的 Verilog 空模块,以满足综合存根要求。

当子模块是结构化 Verilog网表时,则模块定义直接适用,因此不需要额外的stub文件。

导出EDIF后,您还可以从同一设计中导出值包含端口声明和定义的综合stub文件,命令如下:

write_edif module.edf
write_verilog -mode port module_stub.v

将 module.edf module_stub.v 都添加到项目中后,该问题就解决了。stub文件将只在综合期间使用。这样的模块在综合期间将以黑盒子存在,而 EDIF 网表在综合后将自动用于替代黑盒子。

AR# 54074
创建日期 01/31/2013
Last Updated 06/19/2013
状态 Active
Type 已知问题
Tools
  • Vivado Design Suite