电子工程专辑
UBM China

利用增量设计缩短可编程逻辑设计的编译时间

上网日期: 2003年12月14日 ?? 作者: Lee Hansen ?? 我来评论 字号:放大 | 缩小 分享到:sina weibo tencent weibo tencent weibo


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友

关键字:ISE 5.1i? incremental design? 增量设计? programmable device?

过去可编程逻辑器件中即使仅有小部分区域发生变动也要对整个器件重新规划设计,使得设计周期延长。现在通过使用增量设计可保持原有设计中未变化部分的布局布线,而只对改变部分进行重新设计,从而大大节省重编译时间。本文讲述ISE 5.1i增量设计的流程以及与其它综合工具的接口,并说明如何用它改善可编程逻辑的设计流程

选用FPGA作为逻辑器件有许多潜在的好处,其中关键的一点是它的可重编程特性能够提高调试和验证的速度和效率。只需花上数分钟或数小时,你便可以修改设计,重新进行综合、实现、布局布线并对整个设计重新编程。然而,当今的系统级芯片给设计带来的压力使编译时间越来越长,设计中逻辑复杂程度不断上升、需要与不同HDL和IP源连接、更高的性能要求、由时序引起的设计约束以及更重要的器件密度增大等等各种影响,都使得编译时间不断延长。如果对设计进行多次修改,这些时间还会翻倍,使得整体设计时间上升到数天、数周甚至数月。

集成软件环境ISE 5.1i中的增量设计可减少重编译时间,从而将设计变化所产生的影响降至最小。增量设计可将设计中无需修改的部分锁定并保持其性能,仅对设计中的变化部分重新处理。使用增量设计,工程师可在验证过程中加速设计变化的调试,将更多时间用于调整设计中的关键元件,甚至在后期设计规范发生改变时也不会影响整个设计的主要进度。对于设计中未改变的部分,由于它们布局与布线都保持不变,性能也不会变化,因此无需进行重验证,从而可节省大量的设计时间。

增量设计流程

使用增量设计时,我们需要对传统的可编程设计流程进行简单的调整,可将其分为两个阶段,即初始化设置及后期重设计。

初始化设置从综合阶段开始,用户必须建立起分层的边界以便进行综合,而不是对整个设计采用扁平化结构。随后便对设计作平面布局。工程师可使用ISE的Floorplanner或新型ISE 5.1i PACE工具来定义逻辑区,两种工具都可进行平面布局,然后再将这些逻辑区与逻辑组结合起来。PACE还具有另一项功能,即沿着HDL分层边界自动定义逻辑区,从而迅速简单地实现逻辑区定义。定义好逻辑区后,便可像原来一样完成布局布线,初始化设置也就此结束。

良好的平面布局可充分发挥增量设计的优势。与某个I/O通信的逻辑区应该靠近这一I/O,同时相关的I/O也应尽可能集中在一起。平面布局区不应交迭,通信频繁的逻辑区必须相互靠近。每个逻辑区中的使用情况也应大致平衡,在使用增量设计时,使用率为75%的两个逻辑区比使用率为90%和10%的两个逻辑区更好。带有内部三态缓冲器、RAM模块或双工器的逻辑组也需要更大的平面布局区。将越多的关键设计路径隔离在同一个区内,增量设计的效果便越好。

经过初始化设置后,我们就可以在随后的重实施阶段中使用增量设计了。如果需要改变,工程师便重新进行综合,然后在MAP和布局布线阶段使用“-增量”选项重新实施。这时只对经过改变的逻辑组进行处理,其余未变化部分则保持不变。

与其它工具配合

ISE 5.1i设计软件中的增量设计可与三家主要综合工具提供商的工具及赛灵思的XST综合工具连接,增量设计具有交互式平面布局和通用综合选项,易于设置和使用。此外如有必要,工程师还可继续使用他们依赖已久的GUIDE技术。

为了在Synplicity 7.1版或早期综合工具Synplify和SynplifyPro中使用增量设计,我们首先要创建一个带有用事例说明模块的顶级EDIF网表,然后为每个逻辑组创建低级EDIF网表,通常这些工作要通过不同的项目文件来完成。SynplifyPro 7.2版中包含了新技术MultiPoint,通过使用“编译点”执行一种基于差异化的综合设计方法,这种新技术使得增量综合更为灵活易用,从而获得更佳的综合效果。

与Mentor Graphics的LeonardoSpectrum配合使用时,我们需要用自上而下的设计流程,以便保持原有的分层。在最初的综合过程中,我们必须使用属性来防止跨逻辑区的优化,然后在重新实施修改后的设计时,读取整个设计和可以写出增量改变修改的设计文件。

通过BLIS功能它还支持Synopsys公司的综合工具。为了使用BLIS功能,用户可通过FPGA Express/FPGA Compiler II Constraint Editor图形用户接口或脚本语言在设计中指定逻辑功能块。

此外,在XST约束文件中设定属性后赛灵思的SXT综合工具也可支持增量综合。设定这一增量综合属性后,可让XST产生所需的相关独立设计文件。

全面利用增量设计

在某些情况下,使用增量设计可获得较好的结果。当只有一个逻辑区改变时可最大程度节省编译时间。即使多个逻辑区设计发生改变也可以使用增量设计,不过需要重新处理的逻辑区越多,所花的编译时间也越多。此外还应遵循良好的分层设计,例如保持设计完全同步,并在所有输出中使用寄存器,这样做有个额外好处,即可让综合工具“看见”并优化整个时序路径,从而实现最佳性能。输入/输出模块(IOB)应该在最高层定义,I/O缓存和I/O三态寄存器也应如此,不过逻辑区内用具体事例说明的I/O需要与增量设计同时工作。使用增量设计时,总编译时间大于1小时且逻辑组在6~10个之间时节省的编译时间最多,当然总编译时间更短或逻辑组更多的设计也能从中获益。

最近一位用户在约有250万个系统门的Virtex XCV2000E器件设计中使用了增量设计。经过初始化设置后,该器件的利用率达71%。只有三个逻辑区组进行了初始化定义,随后客户要求调整到用一个逻辑区实现。首次完全实施的总编译时间为77分钟,而增量设计的编译时间只需31分钟,快了近2.5倍。

某些设计改变仍需要对整个路径进行处理。例如逻辑区大小发生变化时就必须返回初始化设置阶段然后处理整个路径,此外,改变了某个逻辑区的I/O也要这样做,改变逻辑区时序约束时也建议重新运行初始化设置并对整个路径重新处理。

锁定性能保证时序

增量设计的最大好处是保留了设计中未变化部分的布局布线信息,只对经过变化的逻辑区进行重新处理,ISE 5.1i增量设计是一种可以同时锁定未变化部分布局布线的可编程设计工具。可加快编译时间但却无法同时保持布局布线不变的工具将不能保证设计满足性能要求,此时仍然必须将整个过程重新处理一遍。

增量设计

增量设计(Incremental Design)通过减轻设计后期的设计变化所带来的影响,提供无风险的设计修改能力。布局布线一旦完成。ISE5.1i的这一特性可锁定布局和布线关系,从而保持设计中未修改部分的性能。由于只有设计中被影响到的地方才进行重新实施,并保持设计其它部分的布局不变,因此这种功能可加快编译时间,总体的时序收敛可更快速地完成,花费在设计流程的时间也更少。

作者:Lee Hansen


产品市场经理


Xilinx Inc.


Email: lee.hansen@xilinx.com






我来评论 - 利用增量设计缩短可编程逻辑设计的编译时间
评论:
*? 您还能输入[0]字
分享到: 新浪微博 qq空间
验证码:
????????????????
?

关注电子工程专辑微信
扫描以下二维码或添加微信号“eet-china”

访问电子工程专辑手机网站
随时把握电子产业动态,请扫描以下二维码

?

5G网络在提供1Gbps至10Gbps吞吐量方面具有很好的前途, 并且功耗要求比今天的网络和手机都要低,同时还能为关键应用提供严格的延时性能。本期封面故事将会与您分享5G的关键技术发展,以及在4G网络上有怎样的进步。

?
?
有问题请反馈
推荐到论坛,赢取4积分X