fpga如何约束走线_FPGA Timing笔记

本文深入探讨了影响FPGA时序的因素,包括器件差异、工具设置和设计编码。针对时序优化,提出了更改代码、调整工具策略和改善约束文件等实用技巧。此外,还分享了改善时序的具体方法,如减少大扇出、分析时序约束合理性及优化时钟不确定性等。最后,讨论了设计中遇到的时序问题及其解决策略。
摘要由CSDN通过智能技术生成

FPGA的Timing Part 2

FPGA中影响时序的因素

我们知道FPGA和ASIC的区别之一是FPGA能够多次编程,而多次版本的结果是每次布线的结果都不尽相同,每次布线结果可以在FPGA editor 中查看。

随着FPGA器件规模和代码功能复杂度的提高,FPGA工程师在完成代码编写后,很可能相当大一部分精力是在完成bit file ,可测试的合格的加载文件首先需要满足Timing。影响时序的因素可以分为器件、工具和策略、设计和coding。

器件:

本身的走线延时差异。FPGA根据器件的不同,速率等级的不同都会有响应的时序模型差异,图1是寄存器CLK to Q的在Kintex7 器件不同速率等级的差异,

红色框代表-3器件,也是最快的。这些参数在每款器件的datasheet都有详细的数值。图1只是一个举例,LUT的查表延时更为关键。

图1.器件手册延时信息

另外器件不同,FPGA本身的布线资源多少也不同;如果需要完成FPGA的P &R和同时满足时序,有足够的布线资源当然最好。然而布线资源并不像逻辑规模一样能够以LE or LC数目体现。我们知道Spartan6 的布线资源就比较紧张,一定程度上就限制了版本的资源占用率(Timing 要求高时)。

B.工具和策略:

我们知道FPGA的工具都有很多选项和设置,最容易理解的是area/speed/Balance ; 这些不同的设置能够影响到综合、布局、布线的效果。从而在不更改FPGA代码的前提下有效地影响timing;当然,工程师需要理解设置含义,否则不合理的设置会适得其反哦!

图2.ISE的综合设置

C. 设计和coding

组合逻辑的深度极大的影响FPGA的时序,这个比较容易理解;LUT or Slice的级数决定了关键路径。工程师coding的技巧和能力决定了整个代码timing的结果,如果写代码时能够联想到综合结果将RTL转化到电路的结构,Slice的占用情况;Timing 一定很好了,^_^ 请大家平时积累设计技巧和方法!

改善FPGA时序的Tips

我们知道很多方法可以改变时序,比如优化代码,改变综合策略等。下面一起讨论比较通用的改善时序的Tips:

一般情况下对时序影响最大的有 “更改RTL代码 – 改变综合策略(选项) – 改变布局布线策略 – 更改约束文件”;

工具选择:

FPGA工具:xilinx目前有ISE和Vivado,对于大的设计和28nm器件工具本身的效率和算法改善会极大的影响布线结果。图3是很早的布线结果对比,对比很直观明显。

图3. ISE VS vivado 布线结果对比

第三方综合工具:

在V5-V6的时代,第三方综合工具synplify等综合结果对时序的改善还是很明显的。这里可能是因为synplify等在综合时有时序约束信息的导入。目前vivado同样在综合时同样有时序概念,个别设计第三方工具改善效果不明显了。

3. 改善关键信号的扇出;

A. 对于信号的大扇出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值