Design Complexity、congestion、Timing,congestion 2023-10-21 19:26:38 0 0 随着FPGA规模越来越大,设计本身的复杂度也同样增加。Xilinx UFDM中也经常提到了Design Complexity这样一个概念。Timing/Complexity/congestion是每一个大的设计都需要考虑和均衡的三要素。 什么样的设计会产生Design Complexity引起congestion问题?设计本身具有多次迭代则很容易产生,例如通信中复杂度很高的纠错码LDPC等,如果加上多次软判决和多通道,则复杂度会急剧提升。 这里需要明确,资源占用率和congestion 并不是必然联系。当出现congestion时,替换成更大的器件并不一定有效,这一点已经在客户有验证结论。 FPGA中如何衡量Complexity ?FPGA内部逻辑互联度,vivado中有rent 这个参数代表。 Vivado中的Complexity通常工具遇到Complexity引起的congestion问题都会运行非常长的布线时间,最终报错 ERROR: [Route-3] Design is not routable as itscongestion level is 7. 7目前是最高的级别了,因为工具中level N代表2的N次方范围内都存在阻塞问题。 如果出现了阻塞问题,可以通过report_design_analysis –congestion 查看工具给出的东南西北CLB坐标,方便工程师定位。 所以当工程出现运行时间明显拉长,工程师可以提前考虑是否由于复杂度提升引起的阻塞问题。 出现阻塞时的建议解决办法1. 建议首先找出设计中的大扇出信号,想办法减少fanout;2. 尝试vivado中不同的针对阻塞优化策略;3. 优化代码的系统设计,减少复位信号,优化coding style;4. 模块之间多级pipeline ,relax关键路径。5. 尝试使用大器件看是否能够解决;6.尝试relax timing 看是否能够解决;7.综合时关闭LUT combining; 收藏(0)