如何实现复杂fpga设计的时序收敛

如何实现复杂fpga设计的时序收敛

ID:11551422

大小:125.19 KB

页数:5页

时间:2018-07-12

如何实现复杂fpga设计的时序收敛_第1页
如何实现复杂fpga设计的时序收敛_第2页
如何实现复杂fpga设计的时序收敛_第3页
如何实现复杂fpga设计的时序收敛_第4页
如何实现复杂fpga设计的时序收敛_第5页
资源描述:

《如何实现复杂fpga设计的时序收敛》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、如何实现复杂FPGA设计的时序收敛2007-10-0509:27:30“打鼹鼠”是一个古老(电子时代之前)的休闲游戏。在桌面上有许多洞,每个洞里都藏着鼹鼠。当有鼹鼠从洞里钻出来时,你就用锤子打它,让鼹鼠退回洞里,你因此而得分。当鼹鼠返回洞里时,又有一只鼹鼠会随机地从另外一个洞里钻出来,你需要近乎疯狂地击打鼹鼠头部直到得了高分,这样心情也很舒畅。需要说明的是,游戏中并不是真的鼹鼠。世界有些地方把这种游戏叫“打老鼠”,我也不明白为什么啮齿动物在外面总是人人喊打。要实现复杂FPGA芯片设计的时序收敛,就非常类似于这一古老的游戏,但趣味自然少了许多。

2、 为什么FPGA设计类似“打鼹鼠”? 在FPGA设计中(除验证外),最主要的时间陷阱(TimeSink)是时序收敛。时序收敛常常是一个不断反复的过程,以确保设计中的每个路径都满足时序要求。在相对较小、速度较慢的设计中,时序收敛比较容易,而且是自动收敛的,因此对FPGA器件或实现工具的要求不高。然而,实际中的大多数设计并非如此轻松,它们要求对每个关键路径进行调整,以满足时序要求,而期间又会不断有新的关键路径被发现或出现。 图1是迭代的时序收敛示意图。在第一阶段,只有路径C的时间裕量是负数。为改善路径C,对设计进行修改。随着对路径C实现约束,路经

3、B和E又成为关键路径(见第二阶段),然后又对路径B和E进行改善。以此类推,直到所有路径都满足时序要求。 图1:迭代的时序收敛示意图。 很显然,这种过程非常类似于打鼹鼠游戏;只不过并不像游戏那样轻松,而是让我们紧张。 全新的FPGA产品系列真能解决这一问题吗? 实际上,FPGA厂商已开发出优异的新一代FPGA以满足用户对更高性能和更高容量的需求。然而,FPGA用户更善于发掘推动FPGA突破容量限制的新方法,从而将FPGA引入更多新的应用领域。 FPGA已不再是一系列均匀分布的查找表(LUT)和由各种不同长度和速度的布线资源连接起来的触发器。目前

4、,业界领先的FPGA设计包含多个时钟域,并使用嵌入式累积乘法(MAC)功能块,包括嵌入式处理器和各种存储器资源。FPGA的应用也随着器件内各种特定资源的增多而得以扩展,并准备着在FPGA内部实现这些特定的功能块。这是个好现象,但从某种程度上说,这种嵌入式资源的分布将导致时序收敛的问题更加突出。正如下文的RAM示例所指出的,嵌入式功能本身就是导致布线差异的根源。 这里假设设计需要做一些修改,以根据最新功能要求增加RAM的容量。在FPGA器件中可能有丰富的RAM资源,但需要使用不同的RAM资源,比如使用一个大的块RAM,而不是一组分布式RAM。综

5、合工具能够轻松映射到所需的RAM,但新的块RAM可能只存在于FPGA器件上的特定列中,因此这时的设计布局将不同于原始布局。关键路径的连线从含有新RAM的列开始或向其延伸,或者重新布局以使关键路径靠近新的RAM,但其它收敛或发散的路径却会延长。使用传统的综合工具很难避免这种问题。因此需要密切注意这些时序收敛问题。 为什么布线预测如此重要? 布线延迟本质上是不可预测的,因为FPGA内各个驱动与负载之间存在许多不同的布线路径。每个路径的延迟不同,在工具流程开始的时候,逻辑综合无法预测流程结束时布局布线算法将要选择哪条路径。最快的布线资源通常是最缺乏

6、的,布线阻塞常导致非最优的布线延时。仅靠开发具有更多、更快布线资源的FPGA器件并非解决方法,因为此时FPGA的面积使用效率更低、成本更高、功耗也更大。 随着采用更先进的CMOS工艺的新一代FPGA的推出,布线延迟将不可避免地成为关键路径总延迟中最关键的部分,因此综合和布局布线流程中的时序可预测性也变得一代不如一代。最终,导致时序收敛的原因可以归结为综合预测的路径时序与布局/布线实际实现的时序之间的差异。解决方法是在整个流程中较早引入布局(并最好也同时引入布线)并融入综合过程。这种全新的综合/布局布线工具将大幅减少时序收敛所需的迭代数,这也正

7、是FPGA物理综合实际能达到的效果。 如何在“打鼹鼠”游戏中获胜? 下面以带多个复杂模块的大型设计(图2)为例来讨论。很多情况下,一个时序问题的解决将改变RTL,并且一些改进时序的做法也会增加资源的使用。 图2:RTL变化如何使路径发生变化。 在图2中,模块A紧邻模块B和模块B,当为解决某个时序问题而修改模块A的RTL时,模块A会扩展到模块B和C使用的区域。这将迫使B和C中的器件发生移动,路径延长,从而产生新的关键路径。请注意,模块B或C中的逻辑没有变化,正常的逻辑综合流程不会由于模块A的尺寸变化而改变它对B或C中的互连延时的估计,因为模块A

8、的RTL变化和B或C中新的关键路径之间的因果关系是物理上的。一般情况下,导致设计迭代具有不可预测性的本质原因是物理特性,因此真正的物理综合当仁不让成为首选解决方案。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。