vivado在implementation时出现错误[Place 30-494] The design is empty的一个可能原因和解决方法

在查询类似帖子时我发现这一问题是由于在设计实现时vivado认为没有输出端口所以报错。

于是在.v文件中我添加了一个随意的端口,并且在.xdc文件中为它分配了管脚
在这里插入图片描述
在这里插入图片描述
这样做的确可以让设计实现的过程顺利进行,但是会发现在summary中,设计实现的资源量与分析综合的资源量有较大差距,在设计实现的资源量表格中几乎无资源占用(我的工程中甚至只占用了一个IO口),并且时序报告中显示NA,这显然是不正确的。

经过我的排查,这一报错在我的工程中出现的原因是我的顶层文件中有多个内部输出没有分配输出端口,所以在设计实现时vivado才会报错告诉我需要有输出端口,用上述做法固然能解决报错,但设计实现时却会因为内部输出没有输出端口而被优化掉,这解释了为什么设计实现后出现结果异常。

针对这种问题,有两种解决方法,一种是老老实实把每个内部输出分配一个输出端口(这里的内部输出指的是从一个例化模块输出而不再输入到其他模块的输出),另一种,在我们不知道分配到哪个管脚合适,只是想看设计报告时,可以通过对内部输出信号添加“keep true”的方式,阻止它被视为多余输出导致整个模块被优化掉的情况,如下所示:
在这里插入图片描述
这样就能正常进行设计实现,这是我在出现[Place 30-494]错误时我的工程存在的问题与我的解决办法,遇到这一报错可以检查一下代码中是否有被vivado视为多余的输出端口并为它添加一些处理。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-18 02:20:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-18 02:20:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-18 02:20:01       82 阅读
  4. Python语言-面向对象

    2024-06-18 02:20:01       91 阅读

热门阅读

  1. C++中的桥接模式

    2024-06-18 02:20:01       24 阅读
  2. 刷题——链表中倒数最后k个结点

    2024-06-18 02:20:01       34 阅读
  3. Vue函数式组件

    2024-06-18 02:20:01       30 阅读
  4. Vue 与服务器通信

    2024-06-18 02:20:01       27 阅读
  5. git配置2-不同的代码托管平台配置不同的ssh key

    2024-06-18 02:20:01       25 阅读
  6. web前端何去何从:探索未来之路

    2024-06-18 02:20:01       31 阅读
  7. web前端换行命令:深入解析与实用技巧

    2024-06-18 02:20:01       29 阅读