吴晓洁1 于宗光2 唐 伟3 |
(1.无锡机械控股集团工程成套有限公司,江苏 无锡 214001;2.中国电子科技集团公司第58研究所,江苏 无锡 214035;3.世宏科技(苏州)有限公司) |
关键词:深亚微米;EDA工具;数字模拟电路 中图分类号:TN402 文献标识码:A 1 数字集成电路EDA的发展历程 回顾40多年来集成电路设计自动化EDA系统的发展,大致可以分为三个阶段: 70年代的第一代EDA成为计算机辅助设计CAD系统,他以交互式图形编辑设计规则为特点,硬件采用16位小型机。那时的逻辑图输入、逻辑模拟、电路模拟、版图设计及版图验证是分别进行的,人们需要对两者的结果进行多次的比较和修改才能得到正确的设计。第一代CAD系统的引入使设计人员摆脱繁锁、容易出错的手工画图的传统方法,大大提高了效率,因而得到了迅速的推广。但是它仍然不能够适应规模较大的设计项目,而且设计周期长、费用高。有时在投片以后发现原设计存在错误,不得不返工修改,其代价是昂贵的。 80年代出现了第二代EDA系统,常称为计算机辅助工程CAE系统。它以32位工作站为硬件平台。集逻辑图输入、逻辑模拟、测试码生成、电路模拟,版图输入、版图验证等工具于一体,构成了一个较完整的设计系统。工程师以输入线路的方式开始设计集成电路,并在工作站上完成全部设计工作。它不仅有设计全定制电路的版图编辑工具,还包括门阵列、标准单元的自动设计工具和具有经过制造验证的、针对不同工艺的单元库。对于门阵列、标准单元等电路,系统可完成自动布局、自动布线功能,因而大大减轻了设计版图的工作量。在CAE系统中,更重要的是引入了版图与电路之间的一致性检查工具。此工具对版图进行版图参数提取(LPE)得到相应的电路图,并将此电路图与设计所依据的原电路图进行比较,从而可发现设计是否有错。同时还将LPE得到的版图寄生参数引入电路图,作一次电路模拟(通常称这一次电路模拟为“后模拟”),以进一步检查电路的时序关系和速度(在引入这些寄生参数后)是否仍符合原来设计要求。尽管这些功能的引入保证一次投片成功率,但是一致性检查和“后模拟”仍是在设计的最后阶段才加以实施的,因而如果一旦发现错误,还需修改版图或修改电路,仍然要付出相当大的代价。 90年代,芯片的复杂程度愈来愈高,数万门及数十万门的电路设计需要越来越多。单是靠原理图输入方式已经不堪忍受,采用硬件描述语言HDL的设计方式就应运而生,设计工作从行为级、功能级开始,EDA向设计的高层次发展。这样就出现了第三代EDA系统,其特点是高层次设计的自动化。在第三代EDA系统中,引入了硬件描述语言,一般采用两种语言即VHDL和VERILOGHDL语言。此外,引入了行为综合和逻辑综合工具。采用较高的抽象层次进行设计,并按照层次式方法进行管理,大大提高处理复杂设计的能力,设计所需的周期也大幅度的缩短,综合优化工具的采用使芯片的品质如面积、速度、功耗等获得了优化,因而第三代EDA系统迅速得到了推广应用。硬件描述语言的优点极其突出。如对一个32位的加法器,利用图形输入软件需要500到1000个门,工作量庞大,而利用HDL语言只需写一行“A<=B+C”既可。此外HDL语言的可读性强,易于修改和发现错误。高层次设计阶段与具体生产技术是无关的。亦即与工艺无关。一个HDL原码可以通过逻辑综合工具综合成为一个现场可编程门阵列,既FPGA电路,也可综合成某一工艺所支持的专用集成电路,即ASIC电路。HDL原码对于FPGA和ASIC是完全——样的,仅需要更换不同的库重新进行综合。此外,由于工艺技术的进步,需要采用更先进的工艺时,如认1μm技术到0.8μm技术时,电可利用原来所书写的HDL原码。由于采用了高层次没计自动化,可使设计者在正式投片之前多次改换电路的结构,从而选出最佳方案。 原有的CAD设计系统是以软件工具为核心的,新一代系统是一个统一的、协同的、集成化的、以数据库为核心的系统。它具有面向目标的各种数据模型及数据管理系统,有一致性较好的用户界面系统,有采用图例(DIAGRAM)的设计管理环境和设计管理系统。其主要特点如下: (1)真正具有自动化设计能力,能实现电路高层次的综合和优化。用户只要给出电路大性能指标要求,EDA系统就能够对电路结构和参数进行自动化的综合,寻找最佳设计方案,通过自动布局布线功能将电路直接形成集成电路的版图,并对版图的面积以及电路的延迟特性进行优化。 (3)操作的协同性。利用对所有工具都有用的中间结果,可在多窗口的环境下同时运行多个工具。例如,当版图编辑器完成了一个多边的设计,该多边形就被存人数据库,被存人信息对版图设计规则检查器同样有效。因此允许在版图过程中交替地进行版图设计规则检查,以避免整个设计过程的反复,再如,当在逻辑窗口中对该逻辑图的某个节点进行检查时,在版图窗口可同时看到该节点所对应的版图区域。这种协同操作的并行设计环境使设计者同时访问设计过程中的多种信息,并分享设计数据。 (5)系统的可移植性。整个软件系统可安装到不同的硬件平台上(PLATFORM)。这样可组成一个由不同型号工作站(WORKSTATION)所组成的设计系统而共享同一设计数据。也可由低价的个人计算机和高性能的工作站共同组成一个系统。 目前,在国际上EDA系统排行榜中,列入前几位的公司:MENTOR GRAPHICS,CADENCE,SYNOPSYS和VIEWLOGIC。 2 基于硬件描述语言的数字电路设计 从总体上来讲,集成电路设计经历3个阶段,包括:①高层次综合。将系统的行为、各个组成部分的功能及其输人和输出用硬件描述语言加以描述,然后进行行为级综合。同时通过高层次的硬件仿真进行验证;②逻辑综合。通过综合工具逻辑级行为描述转换成使用门级单元的桔构(也称为网表描述)。同时还要进行门级逻辑仿真和测试综合;③物理综合。将网表描述转换版图即完成布图设计。 一般讲,设计综合被定义为两种不同的设计描述之间的转换,但是这里谈到的综合是指将设计的行为描述转换成设计的结构描述的过程。 高层次综合也称行为级综合(BEHAVIORAL SYNTHESIS)。它的任务是将一个涉及的行为级描述转换成寄存器传输级的结构描述,它首先翻译和分析设计的HDL语言描述,并在给定的一组性能、面积和功耗的条件下,确定需要那些硬件资源,如执行单元、存储器、控制器、总线等(通常称这一步为分配(ALLOCATION))以及确定在这一结构中各种操作的次序(通常称之为调度(SCHEDULING)),同时还可通过行为级和寄存器传输级硬件仿真进行验证。由于实现设计的功能可能有多种硬件结构,因而高层次综合的目的时要在满足目标和约束条件下,找到一个代价最小的硬件结构,并使设计的功能最佳。 逻辑综合是将逻辑级的行为描述转换成逻辑级的结构描述,即逻辑门级网表。逻辑级的行为描述可以是状态转移图、有限状态机,也可以是布尔方程、真值表或硬件描述语言。逻辑综合过程还包括一些优化步骤,如资源共享、连接优化和时钟分配等。优化目标是面积最小,速度最快,功耗最低或他们之间的某种折衷。一般讲,逻辑综合分成两个阶段:①与工艺无关的阶段,这时采用布尔操作或代数操作技术来优化逻辑;②工艺映象阶段,这是根据电路的性质(如组织型或时序型)及采用的结构(多层逻辑、PLD或FPGA)做出具体的映象,将与工艺无关的描述转换成门级网表或PLD或FPGA的专门文件。逻辑综合优化完成后,还需要进行细致的时延分析和时延优化。此外还要进行逻辑仿真,逻辑仿真是保证设计正确的关键步骤。过去通常采用软件模拟的方法,近年来则强调硬件仿真手段,如通过PLD或FPGA进行仿真。测试综合是提供自动测试图形生成ATPG(AUTOMATIC TEST PATTERN GENERATION),为可测性提供高故障覆盖率的测试图形。测试总和还可以消去设计中的冗余逻辑,诊断不可侧的逻辑结构,还能够自动插人可测性结构。 物理综合也称版图综合(LAYOUTSYNTHESIS),它的任务是将门级网表自动转换成版图,即完成布图。布图规划(FLOORPLAN)是对设计进行物理划分,同时对设计的布局进行规划和分析。在这一步骤中,面向物理的划分,其层次结构可以与逻辑设计时的划分有所不同。布图规划可以估算出较为精确的互连线延迟信息,预算新片面积及分析得到何处位拥挤的布线区域。布局是指将模块安置在芯片上的适当位置,并能满足一定的目标函数。一般布局时总是要求芯片的面积最小,连线总长最短和电性能最优且容易布线。布局又分为初始布局和迭代改善两个步骤。进行初始布局的目的是提高布局质量及减少下一步迭代改善时的迭代次数,而迭代改善是设法加以优化的过程,它是决定布局质量的关键。不现实更具电路的连接关系描述(即连接表),在满足工艺规则的条件和电学性能的要求下,在指定的区域(面积,形状,层次等)内百分之百地完成所需的互连,同时要求尽可能优化连线长度和通孔数目。一般有两种布线方法:一种是面向线网的布线方法,它是直接对整个电路进行布线,布线时通常采取顺序方式;另一种称为分级布线,它是将布线问题分为全局布线(GLOBAL ROUTING)和详细布线(DETAILED ROUTING)。这是一种面向布线区域的布线方法,这种方法通过适当的划分,将整个布线区域分为若干个布线通道区(CHANNAL),然后进行适当的布线分配,即将一个线网的所有端点的走线路径分配到相应的通道区中,接着是进行详细布线,对分配到当前通道区中的所有线网的集合,按照一定的规则,确定它们在通道中的具体位置。在完成布局、布线后,要对版图进行设计规则检查,电学规则检查以及版图与电路图的一致性检查,在版图寄生参数提取的基础上再次进行电路分析(即后模拟)。只有在所有的检查都通过并被证明正确无误后,将布图结果转换成掩膜文件。然后又将掩膜文件设法生成掩膜板,通常这是通过掩膜板发生器或电子束系统得到的。 2.2 与传统的系统硬件设计方法的比较 传统的硬件电路设计方法主要有以下几个主要特征: (1)采用自上而下(bottom up)的设计方法 自下而上的硬件电路设计方法的主要步骤是,根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图,然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理的划分功能模块,并画出系统的功能框图,接着就是进行单个功能模块的细化和电路设计,单个功能模块电路设计、调试完成后,将单个功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。系统硬件的设计是从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,完成系统级的单个功能模块设计,然后再将单个功能模块连接起来,完成整个系统的硬件设计。上述过程从最底层开始设计直到最高层设计完毕,故将这种设计方法称为自下而上的设计方法。 (2)采用通用的逻辑元器件 在传统的硬件电路设计中,设计者总是根据系统的具体需要,选择市场上能买到的逻辑元器件来构成所要求的逻辑电路,从而完成系统的硬件设计。尽管随着处理器的出现,在有微处理器及其相应硬件构成的系统中,许多系统的硬件功能可以用软件功能来实现,从而在较大程度上简化了系统硬件电路设计,但是这种选择通用的元器件来构成系统硬件电路的方法并未改变。 (3)在系统硬件设计的后期进行仿真和调试 在传统的系统硬件设计方法中,仿真和调试通常只能是在后期完成系统硬件设计以后才能进行,因为进行仿真和调试的仪器一般为系统仿真器、逻辑分析仪和示波器等。因此只有在硬件系统构成以后才能使用。系统设计所存在的问题只有在后期才能较容易发现。这样传统的硬件设计方法对系统设计人员有较高的要求,一旦考虑不周或系统设计存在较大缺陷,那么就有可能要重新设计系统,使得设计周期大大增加。 (4)主要设计文件是电原理图 在用传统的硬件设计方法对系统进行设计并调试完毕后,所形成的硬件设计文件,主要是由若干张电原理图构成的文件,在电原理图中详细标注各个逻辑元器件的名称和互相间的信号连接关系,该文件是用户使用和维护系统的依据。传统的硬件电路设计方法已经沿用几十年,是目前广大电子工程师所熟悉和掌握的一种方法。但是随着计算机、大规模集成电路技术的发展,这种传统的设计方法已经落后于当今技术的发展。目前采用硬件描述语言的硬件电路设计方法已经兴起,它的出现必将给硬件电路设计带来一次重大的变革。 所谓硬件描述语言,就是利用该语言可以描述电路的功能、信号连接关系及时序关系。它能比电原理图更有效地表示硬件电路的特性。利用HDL语言实际系统间的方法,归纳起来有以下几个特点。 (1)采用自上而下(TOPDOWN)的设计方法 所谓自上而下的设计方法,就是从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计。在利用HDL的硬件设计方法中,设计由自上而下分成3个层次对系统硬件进行设计: 第一层次是行为描述。所谓行为描述实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑实际的操作和算法用什么方法来实现。考虑更多的是系统结构及其工作过程是否能达到系统结构及规格书的要求。 第二层次是RTL方式描述。这一层次称为寄存器传输描述(即数据流描述)。如前所述,用行为方式描述的系统结构的程序其抽象程度高,是很难直接映射到具体逻辑元间接结构的硬件实现的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述VHDL语言程序。也就是说系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。当然这里所说的“可以”进行逻辑综合是有条件的,它是针对这一特定的逻辑综合工具而言的。在把行为方式描述的程序改写为RTL方式描述的程序时,编程人员必须深人了解逻辑综合工具的详细说明和具体规定,这样才能编写出合格的RTL方式描述的程序。在完成编写RTL方式的描述程序以后,再用仿真工具对RTL方式描述的程序进行仿真。如果通过这一步仿真,那么就可以用逻辑综合工具进行综合了。 第三层次是逻辑综合。逻辑综合这一阶段是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网表)。此时如果需要可能将逻辑综合结果,以逻辑原理图方式输出。也就是说,逻辑综合的结果相当于在门电路级上再进行仿真,并检查定时关系。如果在3个层次每个层次上发现有问题,都应返回上一层,寻找和修改相应的错误,然后在向下继续未完成的工作。由逻辑总局产生门级网表后,在最终完成硬件设计时,还可以有两种选择。第一种是由自动布线程序将网表转换成相应的ASIC芯片的制造工艺,做出ASIC芯片。第二种是将网表转换成FPGA完成硬件电路设计。 在用HDL语言设计系统硬件时,无论是设计一个局部电路,还是设计由多块插件板做成的复杂系统,上述自上而下的3层次的设计步骤是必不可少的。 (2)系统中可大量采用ASIC芯片 由于目前众多的制造ASIC芯片的厂家的工具软件可支持HDL文件编程,因此硬件设计人员在设计硬件电路时,无需受只能使用通用元器件的限制,而可以根据硬件电路设计需要设计自用的ASIC芯片或可编程逻辑器件。这样最终会使系统电路设计更趋合理,体积也可大为缩小。 (3)采用系统早期仿真 从自上而下的设计过程可以看到,在系统设计过程中要进行三次仿真,即行为层次仿真、RTL层次仿真和门级层次仿真。也就是说进行系统数学模型的仿真、系统数据流的仿真和系统门电路电原理的仿真。这三级仿真贯穿系统硬件设计的全过程,从而可以在系统设计早期发现设计中存在的问题。与自下而上设计的后期仿真相比可大大缩短系统的设计周期,节约大量的人力和物力。 (4)降低硬件电路设计难度 在采用传统的硬件电路设计方法时,往往要求设计者在设计电路中应写出该电路的逻辑表达式或真值表(或时序电路的状态表)。这一工作是相当困难和繁杂的,特别是在系统比较复杂时更是如此。在用HDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达或真值表之苦。 (5)主要设汁文件使用HDL语言编写的源程序 如果需要也可以转换成电原理图形式输出。HDL语言的源程序作为归档文件有很多好处。其一是资料良好,便于保存。其二是可继承性好。当设计其他硬件电路时,可以使用文件中的某些硬件电路的工作原理和逻辑关系。而阅读电原理图,推知其工作原理却需要较多的硬件知识和经验,而且看起来也不那么一目了然。 3 深亚微米工艺对设计流程的影响 当前硅集成电路工业已经进入0.13μm特征尺寸产品的大生产阶段,据1997年的半导体工业协会公布资料,在21世纪头十年将面临如何进行0.1μm电路的设计和制造问题。生产工艺从微米、亚微米发展到深亚微米,这一变化对集成电路设计及其设计方法学提出了新的问题和挑战。 首先要解决的问题是建立起精确的深亚微米器件模型、时序模型和互连模型。 在深亚微米级电路设计中的一个突出矛盾是时序问题。到了深亚微米水平,互连延迟将超过门延迟,而且由于集成电路工作频率的提高,允许的时序容差变小,传输延迟的影响加大,这对电路设计带了困难。习惯上把设计分成前后两个阶段,前一个阶段统称为逻辑设计,这时进行系统和功能设计以及结构和电路设计,后一阶段称为版图设计,主要进行布局、布线以及物理验证和掩膜生成。两者之间的沟通主要通过网表和单元库。前端设计完成后将网表传递给版图设计人员,一般只要布线能够布通,时序要求就能够满足。到了深亚微米阶段,情况就不同了,如果前端设计中不能够充分考虑后端设计即物理实现时的各种问题,特别是物理实现后引起的时序问题,那就会造成逻辑设计与物理设计的结果不一致。在逻辑设计中经过仿真分析在功能和时序上读正确的网表,经过实际的布局布线后,由于互连延迟模型与实际的互连延迟特性不一致,因而最终的时序会变得不再满足设计要求。这就需要反过来修改逻辑设计,重新进行仿真分析。如果逻辑设计仍不能取得精确的、实际的互连延迟数据,那么经过修改仍不能达到合乎要求的物理设计。如此下去,就会导致逻辑设计与物理设计的设计循环“不收敛”,使设计周期大大加长。为此到了深亚微米电路设计阶段,必须对原有的设计流程加以适当的修改,探讨新的设计方法学。其中一个关键问题是如何在逻辑设计过程中引人物理设计阶段的数据,如何把布局布线工具、寄生参数提取工具的时序分析统计工具集成到逻辑综合中去。目前的一个方法是在前端和后端之间加入正向和逆向的修改,首先在优化过程中得到对“关键路径”的限制条件,然后由标准延迟格式SDF(STANDARD DELAY FORMAT)“正向”传递给布图规划工具(FORPLAN TOOL),经过初步的布图规划,将连线的延迟信息在“逆向”会传给综合工具,这样就可确保产生正式的线负载模型(WIRELOAD),并以此为依据,再次进行优化,这一逆向传递的数据对于达成“关键路径”的重新量优化是非常重要的。从布图规划出发传回的信息是通过物理设计交换格式PDEF(PHYSICAL DESIGN EXCHANGE FORMAT进行的。在布局后在计算得到更精确的互连线信息,通过布图规划工具再次传递到综合优化工具进行优化,然后进行增量布局。经过这样循环直至得到一个满足各方面的约束和要求的布局,接着进行时序驱动(TIMING DRIVEN)的布线设计。布线后要对互连线进行延迟优化,然后作增量布线。这样布线阶段也形成了一个循环,直到得到最后满足各方面约束和要求的结果。目前的设计是面向单元的,即安放好单元再考虑如何连线。今后将改变为面向互连线的,即先设计好互连线,然后在互连网上安放各模块。特别是集成度越来越高后,一个新的设计不可能完全从头开始,它往往要利用已有的,经过验证可以重用(REUSE)的模块,包括从他人处获得的知识产权IP(1NTEELLIGENT PROPRIETARY)模块,再加上部分新设计的模块,形成一个最优新设计。针对上述的设计方法,往往首先要进行的是对各个模块和IP模块进行布图规划,形成芯片级的约束条件。如何对已设计好的模块进行处理(包括对IP模块的处理),如何根据芯片级的设计约束进行层次似的约束驱动(CONSTRAIN-DRIVEN)设计是当前设计环境和设计工具开发中面临的新课题。当然深亚微米级电路设计还会遇到许多其他问题,例如功耗问题。由于集成度和工作频率更高,使单位面积的功耗加大,功耗已成为制约集成度进一步提高的主要因素之一,如何在较高层次如结构层就引入功耗的考虑也是当前需要解决的课题。再如版图设计,由于布线层次的增加,布图问题包括寄生参数提取不再是二维而是三维问题。此外对于巨大的数据处理和管理也将是新的设计系统必须解决的问题。 在解决模拟电路自动化设计问题方面,模拟电路自动综合是最好的、最具有发展前景的一种方法。与模拟标准单元库相区别的是,它将设计者对电路系统的功能要求、性能参数、工艺条件、以及工作环境作为输入变量,自动产生电路的拓扑结构,优化器件尺寸,直至产生完整的物理版图。利用这样的电路综合工具,就可以根据特定的应用环境自动灵活地产生相应的模拟集成电路。由于模拟集成电路自动综合对微电子工业发展的重要意义,几年来各个国家竞相开展了相关的研究工作,并探索性地开发相应的模拟级集成电路自动综合系统,比较典型的模拟电路自动综合系统有: (3)美国通用电气研究实验室开发的AN-COM系统采用了层次式功能块构造法,在选择电路拓扑方面与OPASYN类似,但其启发式策略比OPASYN更复杂。 (4)比利时鲁汶大学开发的ARIADNE系统是一个交互式专家系统,除采用层次分解技术之外,它还采用了符号分析法获取电路的行为,该系统用模拟退火法优化器件尺寸,但在拓扑选择方面和OPASYN一样。OPASYN,AN-COM和ARIADNE的共同缺陷是在没有给定器件尺寸之前很难给出拓扑选择的规则。 (5)荷兰DELFT工业大学开发的ANPDES系统为躲避OPASYN和ARIADNE所遇到的困惑,构造了一个包含一百万个拓扑的放大器库,希望能达到“有求必应”的境界,其拓扑选择功能仅比IDAC有所改进,能根据设计标准从库中搜索出适应的电路结构,其缺憾是不灵活,且速度慢,对于一般的小问题需要在小型机上运行约半个小时。 (6)美国卡内基梅大学开发的OASYS系统是一个CMOS模拟机车电路的编译器,采用了层次式分解技术,在优化器件尺寸阶段发现所生成的拓扑不适合时还可以回朔,能处理的模拟电路类型多一些,但综合过程很难给出回朔规则。 (8)美国AT&T公司BELL实验室开发的BLADES系统集成了OASYS的功能,是以OPS5为其机制的专家系统,它只能单纯地生成模拟集成电路,不能进行器件尺寸优化。 (9)美国南加州大学开发的CAMP系统在“生成”初始拓扑的同时就给定初始器件储存,然后再用专家系统的思路对电路拓扑和器件尺寸作迭代改进。当找不到初始设计时,CAMP就会进人窘境。 总体上,模拟集成电路EDA方法和工具的研究和开发工作远远落后于数字电路。即使目前出现了一些关于模拟电路自动化设计方面的研究工作,但整个研究工作还处于研究性质阶段,和数字电路相比,模拟集成电路EDA方面的研究工作尚有很长一段路要走。 5 结论 本文对数字和模拟两个方面集成电路设计方法进行了总结,并指出当前深亚微米设计中遇到的问题对设计工具的挑战,以及模拟电路设计工具需要工作的方向。 |
本文摘自《电子与封装》 |