FPGA实战开发技巧(6)

FPGA实战开发技巧(6),第1张

5.3.3.2 提高时序性能的手段

时序性能是FPGA 设计最重要的指标之一。造成时序性能差的根本原因有很多,但其直接原因可分为三类:布局较差、逻辑级数过多以及信号扇出过高。下面通过时序分析实例来定位原因并给出相应的解决方案。

1.布局太差及解决方案

图5-13 所示时序报告,其中附加的周围约束为3ns,实际周期为3.027ns,逻辑时间只有0.869ns,而布线延迟竟达到2.203ns,很明显失败的原因就是布局太差。

 

FPGA实战开发技巧(6),布局太差的时序报告示意图,第2张

图5-13 布局太差的时序报告示意图

相应的解决方案有:

1) 在ISE 布局工具中调整布局的努力程度(effort level) ;
2) 利用布局布线工具的特别努力程度(extra effort) 或MPPR 选项;
3) 如果用户熟悉区域约束,则利用Floorplanner 相对区域约束(RLOC),重新对设计进行布局规划。

2.逻辑级数过多及解决方案

FPGA 设计中,逻辑级数越高,意味着资源的利用率就越高,但对设计工作频率的影响也越大。在图5-5所示的例子中,附加的周围约束为3ns,实际周期为3.205ns,逻辑时间为1.307ns,已经对设计的实际性能造成了一定的影响。对于这种情况,ISE 实现工具是没有任何改善的,必须通过修改代码来提高性能,相应的解决方案有:

1) 使用流水线技术,在组合逻辑中插入寄存器,简化原有的逻辑结构;
2) 检查该路径是否是多周期路径,如果是,添加相应的多周期约束;
3) 具备良好的编码习惯,不要嵌套if 语句或if、case 语句,并且尽量用case 语句代替if 语句。

 

FPGA实战开发技巧(6),逻辑级数太多的时序报告示意图,第3张

图5-14 逻辑级数太多的时序报告示意图

3.信号扇出过高及解决方案

高扇出会造成信号传输路径过长,从而降低时序性能。如图5-15 所示,附加的周期约束为3ns,而实际周期为3.927ns,其中网线的扇出已经高达187,从而导致布线时延达到3.003ns,占实际时延的77.64%。这种情况是任何设计所不能容忍的。

FPGA实战开发技巧(6),扇出太高的时序报告示意图,第4张

图5-15 扇出太高的时序报告示意图

相应的解决方案有:

1) 通过逻辑复制的方法来降低信号的高扇出,可在HDL 代码中手动复制或通过在综合工具中设置达到目的;
2) 可利用区域约束,将相关逻辑放置在一起,当然本方法仅限于高级用户。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2590065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存