FPGA Debug:Vivado程序综合卡在了Run Synthesis

问题现象

程序综合一直卡在了Run Synth Design.........等了好久好久,还是没有结果

问题分析:

出现这种情况,一般考虑是资源超了的原因,回顾程序,可能出问题的地方在于,程序中有一个很大的数组,在做大规模存储,如下。

那是FF超了?BRAM超了?还是什么其它的原因呢?根据资源评估的计算来说,RAM资源应该是足够的,鉴于此,我们开始问题定位。

问题定位:

第一步,将PKG_LEN修改为256,综合大于1.5min,LUT资源23%,FF占用7%

第二步,将PKG_LEN修改为512,综合大约4min,LUT资源占用45%,FF占用14%

第三步,将PKG_LEN修改为700,综合大约7min,LUT资源占用62%,FF占用18%

第四步,将PKG_LEN修改为1024,我们发现综合卡在了第2分25秒的时候,无法再进行下去了。

鉴于上述的规律,我考虑是LUT资源超了,而最可能的原因是reg数组实现大规模存储,vivado可能将其默认成触发器堆栈,严重浪费了LUT/FF资源,按照这个思路我们开始优化:

强制指示综合器用Block RAM,写法如下,使用PKG_LEN为512进行编译,发现跟之前一样,说明没有生效,

查看没有生效的原因大约如下:

考虑到程序内部设置有复杂的寻址逻辑,所以可能是不符合块RAM的推断规则的 ,既如此,可以尝试这个数组直接改成一个RAM(例化双口RAM,修改实现逻辑),这样就可以综合为一个Block RAM了。

但是因为我这边资源差的太大了,所以跟领导对接,不在FPGA中做组包的工作了,所以这个问题就到此结束了。

相关推荐
扫地的小何尚1 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI2 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好3 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少6 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈7 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好7 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔8 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云12 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件12 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节
一颗青果14 天前
单例模式 | 死锁
linux·服务器·单例模式·1024程序员节