面向ASIC和FPGA设计的多点综合技术
随着设计复杂性增加,传统的综合方法面临越来越大的挑战。为此,Synplicity公司开发了同时适用于FPGA或 ASIC设计的多点综合技术,它集成了“自上而下”与“自下而上”综合方法的优势,能提供高结果质量和高生产率,同时削减存储器需求和运行时间。
尽管半导体技术在其发展过程中曾遭遇种种难以克服的障碍,但正如高登·摩尔多年前所预言的那样,ASIC和FPGA的密度继续每隔18个月翻一番。
硅潜力的疾速释放是一件喜忧掺半的事。一方面,硅技术提供的功能与性能可以满足最具挑战性应用的需要;另一方面,当今设计工具的局限性令人沮丧,因为这使我们无法充分利用硅技术的全部潜力。随着设计规模和器件复杂性不断攀升,设计工作成为阻碍我们实现各类IC的制约因素。尽管电子设计自动化(EDA)行业近10年来一直致力于解决这个问题,但所谓的“生产力落差”仍在持续扩大。
设计综合面临的挑战
这种生产力落差在综合领域表现得最为明显。传统综合方法的处理能力有限,因而要求将设计分割成不超过20万门的子模块。对于容量达2千万门的芯片,设计者可能需要管理100个以上的不同子模块,以完成一个设计的综合。此外,大多数设计者更习惯基于功能或时序分割设计,相对而言,基于门数进行分割显得不够直观。当前综合流程的另一个缺陷是它们不能很好地优化分立的功能。这正是今天需要独立数据路径综合的原因之一。嵌入式FPGA将既需要专门的综合映射器,又需要在全芯片的背景下进行优化。
自十年前出现综合技术以来,设计复杂性取得了惊人的增长。因此,传统解决方案的效力正在衰退,这的确不足为奇。
设计复杂性还给综合技术带来许多其它问题。当一个综合应用必须有效地操作大量设计数据时,存储器利用率将变成一项真正的挑战。除了庞大的设计规模外,处理计算任务所需的设计管理开销也会使运行时间延长。随着高复杂度、高约束性的功能被分解到综合过程中,IP集成亦成为设计者必须面临的另一项挑战。为了不断优化时序或理顺子模块之间的相关性,设计反复的次数将会大大增加,从而显著延长设计时间。
在把综合技术应用于复杂设计时,所面临的另一个重要挑战是保持设计稳定性。当把优化后的子模块集成回整个设计中时,这可能带来意想不到的复杂问题。随着设计和硅技术变得越来越复杂,这些问题的复杂性将随之增加。
为了克服综合工具的上述缺点,设计者正在采用以下几种策略。一种是复杂的外围工作,如编写高级脚本。这种基于外围工作的解决方案虽然能够达到目的,但通常会过度牺牲结果的质量(QoR)和生产效率。为了使用传统方法成功地对一个大型ASIC设计进行综合,这常常需要扩展的人工脚本,但由人工编写脚本是极容易出错的,而且要求设计者具有很高的脚本编写技巧。这种方法只能给设计带来很少的“增加值”,但却要消耗宝贵的人力和时间。
另一个策略是专注于寄存器传输级(RTL)设计,然后将RTL交由ASIC供应商来综合与实现。籍此,设计者可以避免与传统综合有关的麻烦。这种“RTL签字确认(signoff)”方法非常依赖于高质量的RTL以及芯片供应商愿意为设计结果承担风险的责任心。设计者可能会担心设计被交付给那些对设计及系统问题知之甚少而且不关心设计能否成功的公司。
从这些策略的本性来看,它们假定综合无法改进或者综合就是瓶颈。然而,综合是所有高级IC设计流程中一个根本的组成环节。无论由谁来执行综合,只要这种技术继续困扰芯片的实现,我们就会牺牲设计工作的生产效率和质量。因此,综合是一个必须解决的重要问题。
“自上而下”与“自下而上”
传统上,解决综合问题有两种方法:“自下而上”和“自上而下”。每种方法各有其长处和不足。“自下而上”的方法是指将设计分割成综合工具处理容量之内的子模块,从而使每个模块能够被独立处理。这允许局部的重编译和多处理,从而加速设计。“自下而上”流程还允许将设计的某个部分从整体中隔离出来,以进行改进。如果采用得当,这能提高结果的稳定性。
按单个模块计算,“自下而上”法能提供最佳的运行时间,但整体运行时间可能因为项目管理和人工脚本开销而有所延长。脚本编写本身很重要,但也容易出错。此外,这种方法可能会降低结果的质量(QoR)。采用“自下而上”法,综合工具只能“看见”各个子模块内的优化机会,而不能跨越分割界线对整体设计进行改进。分割的次数越多,设计离可能的最佳QoR就越远。
- 基于DSP的变电站综合自动化系统设计(01-27)
- 硬件描述语言Verilog HDL设计进阶之: 逻辑综合的原则以及可综合的代码设计风格(06-05)
- 基于FPGA的线阵CCD器件驱动器及其系统控制逻辑时序的设计(06-05)
- 一种基于Logical Effort理论的IC设计方法解析(06-05)
- FPGA设计者需要练好5项基本功(06-05)
- 基于HyperLynx的数字电路设计综合仿真方法(06-05)