1. Vivado生成比特流时opt_design跑了很久
在Win10下跑Vivado生成比特流的时候可能会出现一种情况:跑到opt_design这一步的时候跑了几个小时甚至半天都没跑完,打开任务管理器发现Vivado进程的CPU占用率却只有几个百分点。笔者发现了一种方法似乎可行: 菜单Flow -> Implementation Settings,将Opt Design下的第一项is_enabled右边的勾去掉,点击OK后重新生成比特流就好了。笔者亲身试验有效,特此分享。若有错误,欢迎读者在评论指出。
2. Vivado Implementation缺少一些逻辑的实现;一些逻辑被优化
现象:我运行综合,打开综合设计并快速查看似乎没问题的网表。之后我运行了实现,一些逻辑没有任何错误。我从 ZC706 (Zynq Z7C045) 迁移了我的设计,并在其中实时测试了在硬件中运行的设计。合成后利用率约为。 FF:33%,LUT:27%,而实施后是 FF:12%,LUT:14%,这只是另一个表明出现问题的迹象。
从实现日志来看,似乎在扫描阶段有逻辑被修剪。见下文
Phase 4 Sweep
INFO: [Opt 31-12] Eliminated 75896 unconnected nets.
INFO: [Opt 31-11] Eliminated 32829 unconnected cells.
解决办法 :
opt_design -sweep 意味着删除未连接的叶级实例。opt_design 命令默认执行以下优化:
• Retarget • 重新定位
• Constant Propagation • 不断传播
• Sweep • 扫频
• Block RAM Power optimizations
• Block RAM 功耗优化
可以通过覆盖 opt_design -retarget 来禁用该选项