Vivado综合 - 警告:[Synth 8-1824]在订购时找到文件.vhd的循环依赖关系

描述

在某些情况下,VHDL实体和体系结构在单独的文件中定义,运行Vivado Synthesis后可以观察到以下警告:

警告:[Synth 8-1824]在订购时找到文件<name> .vhd的循环依赖关系

但是,在发现其中一些警告后,可以看到以下错误:

错误:[Synth 8-1940]实体......尚未汇编

这些都是正确的警告。

这些警告表明设计中存在循环依赖问题。

以下是循环依赖情况的示例。

假设a.vhd被编译为库a_lib。并且a.vhd具有以下使用条款。

library b_lib;
使用b_lib.all;

然后将b.vhd编译为库b_lib。并且b.vhd具有以下使用条款。

库a_lib;
使用a_lib.all;

这使得a.vhd和b.vhd相互依赖。这是循环依赖。

要解决这些警告,请不要编写 use子句来指定库的整个内容(例如使用<lib_name> .all)。

而是使用
特定包(使用 < lib_name> 。<package_name> )。另外,删除 不必要的库定义。

以下是此问题的一些可能的解决方法:
1.将VHDL实体和体系结构合并到一个VHDL文件中。
2. a)在Hierarchy字段或Compile Order字段中的Hierarchy Update选项卡中选择No Update,Manual Compile Order。
b)在这些文件的Entity文件之前移动Architecture文件Vivado Synthesis生成了[Synth 8-1940]错误消息。
c)运行Vivado综合;这应该允许综合成功运行。
3.如果只有警告并且设计完成但没有错误消息,则用户应该能够继续下一步。


编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 13:10:08 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它