首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

在高速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收敛很有用)





标签:   fpga  
返回列表