2.3 EDA技术

20世纪90年代以来,微电子工艺有了惊人的发展,工艺水平已经达到了深亚微米级,在一个芯片上已经可以集成上百万乃至上亿只晶体管,芯片速度达到了吉比特/秒量级,微电子技术的进步是现代数字电子技术发展的基础。百万门以上的可编程逻辑器件随即陆续面世,这样就对电子设计的工具提出了更高的要求,为电子设计自动化(Electronic Design Au-tomation,EDA)技术的形成提供了广阔的发展空间。

2.3.1 EDA技术及其发展阶段

EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言(Hardware De-scription Language,HDL)为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。

EDA技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具,它是为解决自动控制系统设计而提出的一种新技术。EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计(Computer Assist Design,CAD)、计算机辅助工程设计(Computer Assist Engineering Design,CAE)和EDA三个发展阶段。

(1)CAD阶段

20世纪70年代,可编程器件已经问世,MOS场效应晶体管工艺在集成电路制作方面得到广泛的应用。人们开始用计算机软件进行IC版图编辑、印制电路板(Printed Circuit Board,PCB)布局布线,取代了手工操作,产生了计算机辅助设计的概念。在这个阶段,CAD工具代替了设计工作中绘图的重复劳动。

(2)CAE阶段

20世纪80年代,集成电路设计进入了CMOS工艺时代。复杂可编程逻辑器件进入商业应用,FPGA的出现推动了相应的计算机辅助设计软件的进一步发展。与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计,这就是计算机辅助工程的概念。其主要功能是原理图输入、逻辑仿真、电路分析、自动布局布线及PCB分析。这个阶段,CAE工具代替了设计师的部分工作。

(3)EDA阶段

20世纪90年代,随着硬件描述语言的标准化得到进一步的确立,计算机辅助工程、辅助分析和辅助设计在电子技术领域得到更广泛的应用。尽管CAD/CAE技术取得了巨大的成功,但并没有把设计师从繁重的设计工作中彻底解放出来。在整个设计过程中,自动化和智能化程度还不高,各种EDA工具软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。大部分从原理图出发的EDA工具仍然不能适应复杂电子系统的设计要求,而具体化的元器件图形制约着优化设计。基于以上不足,人们开始追求贯彻整个设计过程的自动化,这就是电子设计自动化技术。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

今天,EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持都将是难以完成的。EDA技术使得电子电路设计者的工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,减少了设计周期,节省了设计成本。EDA技术已经成为现代电路设计师的重要武器,正在起着越来越重要的作用。

2.3.2 EDA技术的内容

可编程逻辑器件的发展,使得微电子厂商可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发,即SOC研发。EDA工具是以系统级设计为核心,包括系统行为级描述与结构综合、系统仿真与测试验证、系统划分与指标分配、系统决策与文件生成等一系列的电子系统设计自动化工具。EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。例如,提供框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言(如VHDL、AHDL或Verilog HDL),同时含有各种工艺的标准元件库。特别重要的是世界各EDA公司致力于推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件,都有效地将EDA技术推向成熟。

EDA技术使得设计者可以利用硬件描述语言和EDA工具软件来完成对硬件系统功能的实现,最终完成符合用户要求的可编程逻辑器件的设计。

1.可编程逻辑器件

利用EDA进行电子系统设计,最后的目标是完成集成电路的设计和实现。可编程逻辑器件(Programmable Logic Device,PLD)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。PLD是一种半定制集成电路,在其内部集成了大量的门和触发器等基本逻辑电路,用户通过编程来改变PLD内部电路的逻辑关系或连线,就可以得到需要的设计电路。可编程逻辑器件的出现,改变了传统的数字系统设计方法,为EDA技术开创了广阔的发展空间,并极大地提高了电路设计的效率。

目前的PLD主要有两大类:CPLD(Complex PLD)和FPGA。两者均属于高密度可编程逻辑器件(High Density Programmable Logic Device,HDPLD),集成密度大于700门/片。随着集成工艺的发展,HDPLD集成密度不断增加,性能不断提高。如Altera公司的EPM9560,其密度为12000门/片,Lattice公司的PLSI/isPLSI3320为14000门/片等。目前集成度最高的HDPLD可达25万门/片以上。生产PLD的厂商很多,但最有代表性的PLD厂商为Altera、Xilinx和Lattice公司。

Altera公司20世纪90年代以后发展很快,主要产品有MAX3000/7000、FELX6K/10K、APEX20K、ACEX1K、Stratix等。其开发工具Maxplus Ⅱ是较成功的PLD开发平台,最新又推出了QuartusII开发软件。Altera公司提供较多形式的设计输入手段,可以绑定第三方VHDL综合工具,例如,可与综合软件FPGA Express、Leonard Spectrum和仿真软件Model-Sim进行绑定。

Xilinx公司是FPGA的发明者。产品种类较全,主要有XC9500/4000、Coolrunner(XP-LA3)、Spartan、Vertex等系列,其最大的Vertex-Ⅱ Pro器件容量已达到800万门。开发软件为Foundation和ISE。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用Altera的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲,Altera公司和Xilinx公司共同决定了PLD技术的发展方向。

Lattice公司是“在系统可编程”(In-System Programmability,ISP)技术的发明者。ISP技术极大地促进了PLD产品的发展,与Altera和Xilinx相比,其开发工具比Altera和Xilinx略逊一筹。中小规模PLD比较有特色,但由于Lattice公司没有基于查找表技术的大规模FP-GA,其大规模PLD的竞争力还不够强。1999年,Lattice公司推出可编程模拟器件,同年收购Vantis公司(原AMD子公司),成为第三大可编程逻辑器件供应商;2001年12月,收购Agere公司(原Lucent微电子部)的FPGA部门;它的主要产品有isPLSI2000/5000/8000,MACH4/5。

可编程逻辑器件的出现,给数字系统的传统设计方法带来新的变革。设计师可以直接通过设计PLD芯片来实现数字系统功能,将原来由电路板设计完成的大部分工作放在PLD芯片的设计中进行。这种新的设计方法能够由设计者根据实际情况和要求,定义器件的内部逻辑关系和引脚,这样可通过芯片设计实现多种数字系统功能,同时由于引脚定义的灵活性,不但大大减轻了系统设计的工作量和难度,提高了工作效率,而且还减少了芯片数量,缩小了系统体积,降低了能源消耗,提高了系统的稳定性和可靠性。

2.硬件描述语言

硬件描述语言是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用EDA工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。最后,再用ASIC或FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。

硬件描述语言是EDA技术的重要组成部分,常用的硬件描述语言有AHDL、VHDL和Verilog HDL,而VHDL和VerilogHDL是当前最流行的并成为IEEE(Instituteof Electricaland Electronics Engineers,美国电气电子工程师协会)标准的硬件描述语言。

(1)VHDL

VHDL是超高速集成电路硬件描述语言(Very-High-Speed Integrated CircuitHardware Description Language)的缩写。硬件描述语言是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输入500~1000个门,而利用VHDL只需要书写一行A=B+C即可,而且VHDL可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL-HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年,美国国防部正式推出了VHDL,1987年IEEE采纳VHDL为硬件描述语言标准(即IEEE STD 1076-1987标准)。

VHDL作为IEEE标准的硬件描述语言和EDA的重要组成部分,经过二十几年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语言表达风格和多层次的仿真测试手段,在电子设计领域受到了普遍的认同和广泛的接受,成为现代EDA领域的首选硬件设计语言。业界普遍认为,在未来的EDA设计过程中,VHDL与Verilog语言将承担起几乎全部的数字系统设计任务。

VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持行为、RTL(Register Transfer Level)数据流、结构三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。与传统的硬件描述语言相比,VHDL具有以下优点:

1)VHDL具有更强的行为描述能力。强大的行为描述能力可以避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统。VHDL的行为描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于硬件的实现。

2)VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。

3)VHDL具有丰富的仿真语句和库函数,VHDL可读性强,易于修改和发现错误,可以用简洁明确的代码描述来进行复杂控制逻辑的设计,使用灵活方便,而且也便于设计结果的交流、保存和重用。

4)VHDL设计与硬件电路关系不大,对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必管最终设计的目标器件是什么,而进行独立的设计。

5)VHDL的设计不依赖于特定的器件,方便了工艺的转换。用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并根据不同的实现芯片自动把VHDL描述设计转变成门级网表。

6)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。

(2)Verilog HDL

Verilog HDL也是目前应用最为广泛的硬件描述语言,并被采纳为IEEE 1064-1995标准。Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合、仿真验证和时序分析。Verilog HDL适合算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次的电路设计和描述。

Verilog HDL也具有与VHDL类似的特点,稍有不同的是Verilog HDL早在1983年就已经推出,至今已有30年的应用历史,因而Verilog HDL拥有广泛的设计群体,其设计资源比VHDL丰富。另外Verilog HDL是在C语言的基础上演化而来的,因此只要具有C语言的编程基础,就很容易学会并掌握这种语言。

和Verilog HDL相比,VHDL在门级电路描述方面不如Verilog HDL,但在系统级抽象方面要比Verilog HDL强,所以对于大型、特大型的系统级设计,使用VHDL最为合适。

3.EDA工具软件

关于EDA工具,目前未形成统一的定义,一般的看法是必须包含综合器和适配器两个特殊的软件包,因此不包含Protel、PSpicf、EWB等软件。目前比较流行的EDA软件,大致可以分为三类:

1)由半导体公司提供,属于集成的PLD/FPGA开发环境,基本上可以完成所有的设计输入(原理图或HDL)、仿真、综合、布线、下载等工作,如Maxplus Ⅱ、QuartusⅡ、Foun-dation、ISE、Web FILTER、ISP Design EXPERT等。

2)综合软件,这类软件把设计输入翻译成最基本的与或门(网表),输出edf文件,导出给PLD/FPGA厂商的软件进行适配和布线。为了优化结果,在进行比较复杂的设计时,基本上都使用这些专业的逻辑综合软件,如Synplicity公司的Synplify、FPGA express、Leona-do Spectrum等。

3)仿真软件,对设计进行校验仿真,包括布线前的功能仿真和布线以后的包含延时的时序仿真,对于复杂的设计一般采用这些专业的仿真软件。这类软件有Modelsim、Active HDL、Cadence公司的NC-Verilog/NC-VHDL/NC-SIM、Synopsys公司的VCS等。

我们以Altera公司的Maxplus Ⅱ和Quartus Ⅱ软件为例,着重介绍集成的PLD/FPGA开发工具。集成的开发工具都遵循设计输入、设计处理(项目编译)、仿真和定时分析、器件编程下载(设计实现)四个步骤。

Maxplus Ⅱ是Altera公司的早期PLD开发软件,使用者较多。其特点是各功能模块集成化好,电路原理图的编辑功能强且逻辑器件齐全,但是VHDL/Verilog综合功能略差,有时会出现已经通过第三方EDA工具编译综合的VHDL/Verilog设计无法通过Maxplus Ⅱ综合。

Quartus Ⅱ是Altera公司的新一代PLD开发软件,特别适合于大规模FPGA的开发,支持原理图、文本及原理图和文本混合的多种输入方式。内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus Ⅱ支持Altera的IP核,包含了LPM/Mega Function宏功能模块库,用户可以充分利用成熟的模块,从而简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus Ⅱ通过和DSP Builder工具与MATLAB/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

2.3.3 EDA设计方法

传统的电子设计通常是“自底向上”(Bottom-Up)的,即首先确定构成系统的最底层的电路模块或元器件的结构和功能,然后根据主系统的功能要求,将它们组合成更大的功能块,使它们的结构和功能满足高层次系统的要求。以此流程,逐步向上递推,直至完成整个目标系统的设计。在整个设计过程的任一时刻,最底层目标器件的更换、某些技术参数不满足总体要求、器件缺货等不可预测的外部因素,都可能使前面的工作前功尽弃,工作又得重新开始。这样的设计方法就如同一砖一瓦建造金字塔,不仅效率低、成本高而且容易出错。

自底向上的设计方法,是以固定功能元件为基础,基于电路板的设计方法。设计流程图如图2-25所示,可以分为以下几个步骤。

图2-25 自底向上的设计流程图

a)板级设计 b)芯片设计

第一步:由基本门构成各个组合与时序逻辑单元。

第二步:由逻辑单元组成各个独立的功能模块(分电路板)。

第三步:由各个功能模块连成一个完整的系统。

第四步:完成整个系统的测试与性能分析。

上述的整个过程是从最底层设计开始,因而称之为自底向上的设计方法。

高层次设计给人们提供了一种“自顶向下”(Top-Down)的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能模块图的划分和结构设计。在模块图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印制电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这一方面有利于早期发现结构设计上的错误,避免设计工作的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。

自顶向下的设计流程图如图2-26所示,可以分为以下几个步骤。

图2-26 自顶向下的设计流程图

第一步:根据设计任务要求进行系统规格设计,系统层是一个包含输入输出的顶层模块,并用系统级行为描述加以表达,同时完成整个系统的模拟与性能分析。

第二步:整个系统进一步由各个功能模块组成,每个模块由更细化的行为描述加以表达。

第三步:由EDA综合工具完成到工艺库的映射。

在EDA设计过程中,用HDL将系统的硬件电路自上而下地划分为三个层次:系统级描述、RTL级描述和逻辑综合。

第一层为行为描述,它是对整个系统的数学模型的描述,根据设计任务要求进行系统规格设计,系统层是一个包含输入输出的顶层模块,并用系统级行为描述加以表达,同时完成整个系统的模拟与性能分析。

第二层是寄存器传输(RTL)描述,又称数据流描述。将行为方式描述的HDL程序,针对某一特定的逻辑综合工具,采用RTL方式描述,然后导出系统的逻辑表达式,再用仿真工具对RTL方式描述的程序进行仿真。

第三层是逻辑综合。利用逻辑综合工具,可将RTL方式描述的程序转换成用基本逻辑单元表示的文件(门级网络表),也可以将综合结果以逻辑原理图方式输出。

由自顶向下的设计过程可以看出,方案的设计与验证、系统逻辑综合、布局布线、性能仿真、器件编程等均由EDA工具一体化完成,有利于及时发现结构设计上的错误,避免设计工作的浪费,提高了设计效率。

2.3.4 EDA的应用及发展趋势

随着微电子技术和计算机技术的不断发展,EDA技术已经渗透到各行各业。在通信、国防、航天、工业自动化、仪器仪表等领域,EDA技术的含量以惊人的速度上升,从而使它成为当今电子技术发展的前沿之一。由于在电子系统设计领域中的明显优势,基于大规模可编程器件解决方案的EDA技术及其应用在近年中有了巨大的发展,将电子设计技术再次推向崭新的历史阶段。

进入21世纪后,电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,未来EDA的发展趋势集中在以下几个方面:

1)向高密度、高速度、宽频带方向发展。

2)自主知识产权(Intellectual Property,IP)模块在EDA技术设计和开发中起着越来越重要的作用。基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块,软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认。

3)高效低成本的SOC设计技术日益成熟,系统集成芯片成为IC设计的发展方向,这一发展趋势表现在以下几方面。

①超大规模集成电路的集成度和工艺水平不断提高,深亚微米(Deep-Submicron)工艺,如0.18μm、0.13μm已经走向成熟,在一个芯片上完成系统级的集成已成为可能。

②市场对电子产品提出了更高的要求,如必须降低电子系统的成本,减小系统的体积等,从而对系统的集成度不断提出更高的要求。

③高性能的EDA工具得到长足的发展,其自动化和智能化程度不断提高,为嵌入式系统设计提供了功能强大的开发环境。

④计算机硬件平台性能大幅度提高,为复杂的SOC设计提供了物理基础。