新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 面向ASIC和FPGA设计的多点综合技术

面向ASIC和FPGA设计的多点综合技术

作者:时间:2011-01-13来源:网络收藏

随着复杂性增加,传统的方法面临越来越大的挑战。为此,Synplicity公司开发了同时适用于的多点,它集成了“自上而下”与“自下而上”方法的优势,能提供高结果质量和高生产率,同时削减存储器需求和运行时间。

本文引用地址:http://www.eepw.com.cn/article/151084.htm

尽管半导体在其发展过程中曾遭遇种种难以克服的障碍,但正如高登·摩尔多年前所预言的那样,的密度继续每隔18个月翻一番。

硅潜力的疾速释放是一件喜忧掺半的事。一方面,硅提供的功能与性能可以满足最具挑战性应用的需要;另一方面,当今工具的局限性令人沮丧,因为这使我们无法充分利用硅技术的全部潜力。随着设计规模和器件复杂性不断攀升,设计工作成为阻碍我们实现各类IC的制约因素。尽管电子设计自动化(EDA)行业近10年来一直致力于解决这个问题,但所谓的“生产力落差”仍在持续扩大。

设计综合面临的挑战图1: 通过比较实际的RTL代码、约束条件和属性,增量综合可以将设计变化和运行时间降低至最小的水平。

这种生产力落差在综合领域表现得最为明显。传统综合方法的处理能力有限,因而要求将设计分割成不超过20万门的子模块。对于容量达2千万门的芯片,设计者可能需要管理100个以上的不同子模块,以完成一个设计的综合。此外,大多数设计者更习惯基于功能或时序分割设计,相对而言,基于门数进行分割显得不够直观。当前综合流程的另一个缺陷是它们不能很好地优化分立的功能。这正是今天需要独立数据路径综合的原因之一。嵌入式将既需要专门的综合映射器,又需要在全芯片的背景下进行优化。

自十年前出现综合技术以来,设计复杂性取得了惊人的增长。因此,传统解决方案的效力正在衰退,这的确不足为奇。

设计复杂性还给综合技术带来许多其它问题。当一个综合应用必须有效地操作大量设计数据时,存储器利用率将变成一项真正的挑战。除了庞大的设计规模外,处理计算任务所需的设计管理开销也会使运行时间延长。随着高复杂度、高约束性的功能被分解到综合过程中,IP集成亦成为设计者必须面临的另一项挑战。为了不断优化时序或理顺子模块之间的相关性,设计反复的次数将会大大增加,从而显著延长设计时间。

在把综合技术应用于复杂设计时,所面临的另一个重要挑战是保持设计稳定性。当把优化后的子模块集成回整个设计中时,这可能带来意想不到的复杂问题。随着设计和硅技术变得越来越复杂,这些问题的复杂性将随之增加。

为了克服综合工具的上述缺点,设计者正在采用以下几种策略。一种是复杂的外围工作,如编写高级脚本。这种基于外围工作的解决方案虽然能够达到目的,但通常会过度牺牲结果的质量(QoR)和生产效率。为了使用传统方法成功地对一个大型设计进行综合,这常常需要扩展的人工脚本,但由人工编写脚本是极容易出错的,而且要求设计者具有很高的脚本编写技巧。这种方法只能给设计带来很少的“增加值”,但却要消耗宝贵的人力和时间。

另一个策略是专注于寄存器传输级(RTL)设计,然后将RTL交由ASIC供应商来综合与实现。籍此,设计者可以避免与传统综合有关的麻烦。这种“RTL签字确认(signoff)”方法非常依赖于高质量的RTL以及芯片供应商愿意为设计结果承担风险的责任心。设计者可能会担心设计被交付给那些对设计及系统问题知之甚少而且不关心设计能否成功的公司。

从这些策略的本性来看,它们假定综合无法改进或者综合就是瓶颈。然而,综合是所有高级IC设计流程中一个根本的组成环节。无论由谁来执行综合,只要这种技术继续困扰芯片的实现,我们就会牺牲设计工作的生产效率和质量。因此,综合是一个必须解决的重要问题。

“自上而下”与“自下而上”

传统上,解决综合问题有两种方法:“自下而上”和“自上而下”。每种方法各有其长处和不足。“自下而上”的方法是指将设计分割成综合工具处理容量之内的子模块,从而使每个模块能够被独立处理。这允许局部的重编译和多处理,从而加速设计。“自下而上”流程还允许将设计的某个部分从整体中隔离出来,以进行改进。如果采用得当,这能提高结果的稳定性。图2a:采用多点综合流程实现的一个200万门0.11微米设计。通过把可复制模块设置成用低开销ILM代表的编译点,这种方法能显著降低计算开销。

按单个模块计算,“自下而上”法能提供最佳的运行时间,但整体运行时间可能因为项目管理和人工脚本开销而有所延长。脚本编写本身很重要,但也容易出错。此外,这种方法可能会降低结果的质量(QoR)。采用“自下而上”法,综合工具只能“看见”各个子模块内的优化机会,而不能跨越分割界线对整体设计进行改进。分割的次数越多,设计离可能的最佳QoR就越远。

“自上而下”的综合方法考虑整个系统级RTL和约束,允许综合工具在一次操作中优化设计,而不必跨越分割的模块。与“自下而上”的设计相比,这种方法可产生最佳的QoR,因为综合工具是在整个设计上进行操作。由于不需要人工脚本和管理各种不同的子模块,它更易于实现。然而,它需要的存储容量和运行时间使之无法应用于大型设计中。即使很小的设计改动也要求重新对整个设计进行综合,这几乎是不切实际的。类似地,“自上而下”法要对复制的模块单独进行综合,与“自下而上”法对复制模块一次综合相比,这将导致更长的运行时间。最后,为了满足时序要求,布局与布线过程将变得非常反复。从QoR方面来看,“自上而下”法是理想的解决方案,但从设计规模或其它设计要求来看,它并不是每种设计的最佳选择。

多点综合:大型设计的综合技术

无论是单纯的“自上而下”法还是单纯的“自下而上”法都不是很多设计的正确解决之道。它们所需要的是集“自上而下”法的易用性及QoR优势与“自下而上”法的高效率及低存储器需求于一体的方法,而且这种方法仍要能够被自上而下或自下而上地使用。这一点在大型设计中尤其重要,因为现有的“自上而下”或“自下而上”流程不能获得最佳的QoR和运行时间。为了解决这个问题以及百万门ASIC和可编程系统级芯片(PSoC)设计者所面临的其它挑战,Synplicity公司开发了多点(MultiPoint)综合技术。

多点综合技术针对大型设计而采用了一种分层方法。与传统的“自下而上”分层设计不同,多点综合技术能自动分割和优化设计。这是对整个设计执行语言编译的结果,语言编译能创建一种中间格式,它包含所有分层信息以及设计的关键信息。Synplicity公司的ASIC解决方案使用内置的HDL分析工具,允许用户查看RTL设计分层或使用Tcl脚本来检查设计分层。通过审视逻辑分层,设计者将选择应该与其余设计部分分开综合的分层单元。在分层结构中,这些点被称为编译点。

一旦选定编译点后,时序约束将被施加到每一个点上;这个步骤最初将由人工执行,但未来可以自动完成。紧随其后,将从编译点开始对最低级别的设计层进行综合。随着每个编译点被综合,它会自动创建一个接口逻辑模型(ILM),并将其传递给下一个更高级别的设计层。最后,顶层是采用来自较低层编译的ILM以及顶层的任何额外逻辑来实现综合的。这能减少所需的时间,避免易出错的脚本,从而使设计团队可以将精力集中在设计的增值方面。

ILM是多点综合所采用的一项关键技术。ILM是Synplicity或第三方公司为网表或综合设计所编写的部分网表。它们是包含所有边界信息或时序分析逻辑的模型,因此能提供可与“自上而下”流程相媲美的QoR。由于ILM只包含从端口到寄存器的逻辑,而所有其它逻辑都被当成一个“黑箱子”来处理,因此它们大大降低了对存储器的需求,并减少了大型设计综合的运行时间。

用户自定义的编译点是创建ILM的基础,而且是多点综合技术的另一个关键要素。编译点是能够被独立综合的模块,然后综合的结果被用来综合其上级模块或顶层设计。多点综合与其它综合技术的一个关键区别在于,它能够通过三类不同的编译点(即软、硬和锁定编译点)来控制边界优化的层次。软编译点用于完全的边界优化,这意味着端口标识可以在综合期间改变。相反,端口完整性是由硬编译点保持的。对于锁定编译点,模块内的逻辑在优化期间能保持不变。因此,用户自定义的编译点可以充当综合工具的指令,以便对设计的某一特定部分进行建模和综合。由于允许跨边界的优化,这些编译点使 “自上而下” 的流程可以提供极佳的QoR。

多点综合技术正是通过用户自定义的编译点和ILM来支持IP集成。它能自动对IP建模,并利用综合的时序信息。在设计中充当范例的IP既可以在IP模块内又可以在相邻模块中进行逻辑优化,同时不会影响内核自身的端口安排。图2b:与传统的“自上而下”综合方法相比,多点技术具有突出的优势,并能产生相同的QoR。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭