原创 FPGA时序不收敛的几种改进方法

2013-7-30 23:45 5201 11 16 分类: FPGA/CPLD


       在高速FPGA设计中,通过STA,往往会发现时序不满足要求的情况,可以采取修改代码、重设综合属性或添加约束等方法加以改进。由于后两种方法不会改变设计的逻辑功能,因此较为常用。


4. 1 通过设置综合属性提高工作频率
      在FPGA综合时,通过设置合适的综合属性,发挥综合工具的某些优化特性,减小时序路径上组合逻辑的门延时和线延时,可以有效地促进时序收敛。
      在Xilinx公司的FPGA 开发环境ISE中,常用的方法有:采用寄存器平衡技术(register retiming)和插入流水线(pipelining) 。寄存器平衡技术在不改变逻辑功能的前提下,通过调整使寄存器在组合逻辑间分布更均匀,如图6所示。使决定时钟工作频率的那些大延时路径的延时减小,从而提高设计速度,而寄存器级数并没有改变。插入流水线则向组合逻辑中插入寄存器,由于FPGA内部包含了大量的寄存器资源,为改善时序提供了可能。插入的寄存器级数可以由设计工具自动完成,也可以由设计者找到需要插入流水线的时序路径后添加代码实现。与寄存器平衡技术相比较,这种方法更为灵活,但是增加了寄存器级数。



图6 寄存器平衡原理示意图

 
     其次,通过寄存器复制(register duplication)、减小关键路径的扇出数、取消资源共享等办法,可减少时序路径上驱动缓冲的数目,减小路径延时,提高设计频率。此外,还可利用I/O块中的寄存器对 FPGA的输入、输出信号进行锁存,提高板级的设计速度。

4. 2 通过修改布局布线促进时序收敛
     修改布局布线虽然不能减小门延时,但由于目前的高速FPGA设计属于深亚微米范围,互连延时已非常可观,不加约束时甚至占总路径延时的60%以上。
     作为可编程ASIC (专用集成电路)器件, FPGA设计的布局布线不如ASIC设计那样灵活,但是目前的FPGA开发工具,也能让设计者通过添加约束等方式介入到布局布线过程中。而且,时序分析器通常支持和布局规划器进行时序的交互探测(cross probing) ,使得查找和改进关键路径的时序极为方便。因此,通过合理的布局布线,减小互连线上的延时,也是提高时钟工作频率的常用方法之一。

 

 

在ALTERA QuartusII软件中,通过物理综合优化(physical synthesis optimization)工具,设置寄存器平衡(register retiming)、插入流水线(pipelining)、寄存器复制(register duplication),具体目录如下:

Setting > compilation process setting 

>physical synthesis optimization Box下: 

Perform register retiming;

Perform register duplication;

Perform automatic asynchronous signal pipelining(此设置对异步recovery和removal收敛很有用)

 

文章评论5条评论)

登录后参与讨论

用户403664 2013-7-31 11:45

谢谢,还是插入图片更直观哈

用户245620 2013-7-30 23:46

图片已经上传

用户403664 2013-7-30 10:47

还是不行,图片要上传才行啊

用户245620 2013-7-29 18:40

换个浏览器 试试

用户403664 2013-7-29 08:40

图片挂了?
相关推荐阅读
用户245620 2013-07-28 18:02
接入层
        如上图所示,CISCO有自己的3层层次模型 1,接入层 2,汇聚层 3,核心层。 <?xml:namespace prefix = o ns = "urn:schemas-mi...
我要评论
5
11
关闭 站长推荐上一条 /2 下一条