可编程逻辑器件(Programmable Logic Device)是现代电子元件的一个重要门类,以其为应用目标的EDA技术快速发展,在电子产品设计领域占用重要位置。EDA技术在通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中日益普及,高新技术项目的开发也更加依赖于EDA技术的应用。即便是普通的电子产品开发,EDA技术也发挥了越来越重要的作用,常轻松突破一些原来的技术瓶颈,大大缩短产品的开发周期、提高产品的性价比。EDA技术已经成为电子设计领域中极其重要的组成部分。
电子设计自动化(Electronic Design Automation,EDA)技术是20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、专用集成电路(Application Specific Integrated Circuit,ASIC)测试和封装、现场可编程门阵列(Field Programmable Gate Array,FPGA)/复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)编程下载和自动测试等技术。而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等;以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,能自动地完成用软件方式描述的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下,应用相应的CPLD/FPGA器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。因此,EDA技术为现代电子理论和设计的表达与实现提供了可能性。
微电子技术的进步主要表现在大规模集成电路加工技术即半导体工艺技术的发展上,使得表征半导体工艺水平的线宽已经达到了60nm,并还在不断地缩小,而在硅片单位面积上集成了更多的晶体管。集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展,ASIC的设计成本不断降低。
现代电子设计技术的核心已日趋转向基于计算机的技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言(Hardware Description Language,HDL)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。
正因为EDA技术丰富的内容以及与电子技术各学科领域的相关性,其发展的历程同大规模集成电路设计技术、计算机辅助工程、可编程逻辑器件,以及电子设计技术和工艺的发展是同步的。就过去30多年电子技术的发展历程,可将EDA技术的发展大致分为以下4个阶段。
1)第一阶段 20世纪70年代的计算机辅助设计CAD阶段。早期的电子系统硬件设计采用的是分立元器件,后来随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。此时的硬件设计大量选用中小规模标准集成电路,人们将这些元器件焊接到电路板上,制作成初级的电子系统,对电子系统的调试是在组装好的印制电路板(Printed Circuit Board,PCB)上进行的。由于传统的手工布图方法无法满足产品复杂性的要求,工作效率也不高。此时,可编程逻辑技术及其器件问世,计算机作为一种运算工具在科研领域得到广泛应用。CAD的概念已见雏形,这一阶段人们开始利用计算机取代手工劳动,辅助进行集成电路版图编辑、PCB布局布线等工作。
2)第二阶段 20世纪80年代的计算机辅助工程设计CAE阶段。这段时期,随着电子工艺的发展,集成上万只的微处理器、集成几十万直至上百万单元的随机存储器和只读存储器相继出现。同时,支持定制单元电路设计的硅编程、掩膜编程的门阵列,如标准单元的半定制设计方法以及可编程逻辑器件等一系列微结构和微电子学研究成果都为电子系统的设计提供了新思路。
与此同时,集成电路设计进入了互补场效应管(CMOS)时代,复杂可编程逻辑器件进入商业应用,相应的辅助设计软件投入使用。伴随计算机和集成电路的发展,EDA技术进入到计算机辅助工程设计阶段。EDA工具以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电路设计未完成前的功能检测等问题。有了这些工具的支持,设计师能在产品制作之前预知产品的功能和性能,能生成产品制造文件,在设计阶段对产品性能的分析前进了一大步。
在20世纪80年代末,出现了FPGA,使得CAE和CAD技术的应用更为广泛,它们在PCB设计方面的原理图输入、自动布局布线及PCB分析,以及逻辑设计、逻辑仿真等方面担任了重要的角色。特别是各种硬件描述语言的出现、应用和标准化方面的重大进步,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。
20世纪80年代出现的具有自动综合能力的CAE工具替代了设计师的部分工作,对保证电子系统的设计,制造出最佳的电子产品起着关键的作用。尤其到20世纪80年代后期,EDA工具已经可以进行设计描述、综合与优化和设计结果验证等;CAE阶段的EDA工具不仅为开发电子产品创造了有利条件,而且为高级设计人员的创造性劳动提供了便利。但具体化的元器件图形制约了优化设计,大部分从原理图出发的EDA工具仍然不能适应复杂的电子系统设计要求。
3)第三阶段 即20世纪90年代电子系统设计自动化EDA阶段。在此阶段,随着硬件描述语言的标准化进一步确立,计算机辅助工程、辅助分析和辅助设计在电子技术领域获得更加广泛的应用。与此同时,电子技术在通信、计算机及家电产品生产中的市场需求和技术需求,极大地推动了全新的电子设计自动化技术的应用和发展,特别是集成电路设计工艺步入了超深亚微米阶段,百万门以上的大规模可编程逻辑器件的陆续面世,以及基于计算机技术的面向用户的低成本大规模ASIC设计技术的应用,促进了EDA技术的形成。更为重要的是各EDA公司致力于推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件的研究,更有效地将EDA技术推向成熟和实用。
设计师逐步从使用硬件转向了设计硬件,从单个电子产品开发转向系统级电子产品开发,即片上系统设计(System On a Chip,SOC)。EDA工具以系统级设计为核心,包括系统行为级描述与结构综合,系统仿真与测试验证,系统划分与指标分配,系统决策与文件生成等一整套的电子系统设计自动化工具。此时的EDA工具不仅具有电子系统设计的能力,同时还能够提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。例如,提供框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言,如VHDL、AHDL以及Verilog-HDL等;同时还具有各种工艺的元件库。
微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,设计者通过设计芯片实现电子系统功能。该阶段的EDA工具,目的是在设计前期将设计师从事的许多高层次设计由工具来完成,如将用户要求转换为设计技术规范,有效地处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件和算法分解设计等。由于电子技术和EDA工具的发展,设计师可以在较短的时间内掌握EDA工具,通过简单标准化的设计过程,利用微电子厂家提供的设计库来完成数百万门ASIC和集成系统的设计与验证。
4)第四阶段 即进入21世纪EDA进一步发展阶段。进入21世纪后,EDA技术得到了更大的发展,突出表现在以下几个方面。
☺ 在FPGA上实现数字信号处理(DSP)应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力地推动了软件无线电技术的实用化和发展。基于FPGA的DSP技术,为高速数字信号处理算法提供了实现途径。
☺ 嵌入式处理器软核的成熟,使得SOPC(System On a Programmable Chip)步入大规模应用阶段,在一片FPGA上实现一个完备的数字处理系统成为可能。
☺ 在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断推出。
☺ 电子技术领域全方位融入EDA技术,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化,如软件无线电技术的崛起、模拟电路系统硬件描述语言的表达和设计的标准化、系统可编程模拟器件的出现、数字信号处理和图像处理的全硬件实现方案的普遍接受以及软硬件技术的进一步融合等。
☺ EDA使得电子领域各学科的界限更加模糊,更加互为包容,如模拟与数字、软件与硬件、系统与元器件、ASIC与FPGA、行为与结构等。
☺ 基于EDA并用于ASIC设计的标准单元已涵盖了大规模电子系统及复杂IP核模块。
☺ 软硬知识产权(Intellectual Property,IP)核在电子行业的产业领域广泛应用。
☺ SOC高效低成本设计技术的成熟。
☺ 系统级、行为验证级硬件描述语言(如System C)的出现,使复杂电子系统的设计和验证趋于简单。
EDA技术涉及面很广,内容丰富,从教学和实用的角度看,主要应掌握如下四个方面的内容:
大规模可编程逻辑器件;
硬件描述语言;
软件开发工具;
实验开发系统。
其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体;硬件描述语言是利用EDA技术进行电子系统设计的主要表达手段;软件开发工具是利用EDA技术进行电子系统设计的智能化的自动设计工具;实验开发系统则是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。
可编程逻辑器件(Programmable Logic Device,PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。PLD是电子设计领域中最具活力和发展前途的一项技术,PLD能完成任何数字器件的功能。PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由地设计一个数字系统,通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。PLD的这些优点使得PLD技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。
目前FPGA和CPLD器件的应用已经十分广泛,随着EDA技术的发展将成为电子设计领域的重要角色。国内市场份额较大的CPLD/FPGA公司,主要有Xilinx、Altera、Lattice等。
美国Xilinx公司1984年首先推出了世界上第一片现场可编程门阵列FPGA(Field Programmable Gate Array)。之后,从XC3000、XC4000到Spartan-Ⅱ、Spartan-ⅡE和Virtex-Ⅱ、Virtex-ⅡPro,Xilinx公司不断推陈出新,一直保持着FPGA领域的全球领先地位。
Xilinx公司的主流PLD产品包括:XC9500 Flash工艺PLD,常见型号有XC9536、XC9572、XC95144等,型号后两位表示宏单元数量;CoolRunner-Ⅱ系列1.8V低功耗PLD产品。
2015年12月英特尔公司斥资167亿美元收购了Altera公司。Altera公司成为其可编程解决方案事业部。Altera公司的CPLD器件为MAXⅡ系列。MAXⅡ是新一代PLD器件,0.18μm flash工艺,2004年底推出,采用FPGA结构,配置芯片集成在内部,和普通PLD一样上电即可工作。其容量比上一代大大增加,内部集成一片8kbit串行EEPROM,增加很多功能。MAXⅡ采用2.5V或者3.3V内核电压,MAXⅡG系列采用1.8V内核电压。
Altera公司的FPGA器件大致分三个系列,一是低端的CYCLONE,二是高端的STRATIX,三是介于二者之间可以方便ASIC化的ARRIVA系列。
Altera公司的主流FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone至Cyclone吁;还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如Stratix至Stratix吁等,用户可以根据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本器件。
☺ Cyclone(飓风):Altera公司的中等规模FPGA,2003年推出,0.13μm工艺,1.5V内核供电,与Stratix结构类似,是一种低成本FPGA系列,其配置芯片也改用全新的产品。
☺ CycloneⅡ:Cyclone的下一代产品,2005年开始推出,90nm工艺,1.2V内核供电,属于低成本FPGA,性能和Cyclone相当,提供了硬件乘法器单元。
☺ Cyclone芋FPGA系列:2007年推出,采用台积电(TSMC)65nm低功耗(LP)工艺技术制造,以相当于ASIC的价格实现了低功耗。
☺ Cyclone郁FPGA系列:2009年推出,60nm工艺,面向对成本敏感的大批量应用,帮助用户满足越来越高的带宽需求,同时降低了成本。
☺ Cyclone吁FPGA系列:2011年推出,28nm工艺,实现了业界最低的系统成本和功耗,其性能水平使得该器件系列成为突出大批量应用优势的理想选择。与前几代产品相比,它具有高效的逻辑集成功能,提供集成收发器型号,总功耗降低了40%,静态功耗降低了30%。
☺ Stratix:Altera公司的大规模高端FPGA,2002年中期推出,0.13μm工艺,1.5V内核供电。集成硬件乘加器,芯片内部结构比Altera公司以前的产品有很大变化。
☺ StratixⅡ:Stratix的下一代产品,2004年中期推出,90nm工艺,1.2V内核供电,大容量高性能FPGA。
☺ Stratix吁:Altera公司的高端产品,采用28nm工艺,提供了28GB的收发器件,适合高端的FPGA产品开发。
Lattice公司的ISP-PLD器件有ispLSI1000、ispLSI2000、ispLSI3000、ispLSI6000系列等,集成了多达25 000个PLD等效门。近几年,随着集成电路制造技术的飞速发展,这些公司不断地推出集成度更高、性能更好的产品系列。
CPLD在结构上主要包括可编程逻辑宏单元、可编程输入/输出单元和可编程内部连线三个部分。FPGA在结构上主要分为三个部分,即可编程逻辑单元、可编程输入/输出单元和可编程连线。
与ASIC设计相比,CPLD/FPGA最明显的优势是大大降低了设计成本,缩短了设计周期,投资风险小,市场适应能力强且硬件升级的余地大。一个产品开发项目,是使用FPGA还是CPLD,主要看开发项目本身的需要。如果是规模普通,并且产量不是很大的产品项目,通常使用CPLD比较好;如果是大规模的逻辑设计、ASIC设计,或者单片系统设计,则多采用FPGA。另外,FPGA掉电后将丢失原有的逻辑信息,所以在使用中需要为FPGA芯片配置一个专用的ROM。
EDA工具之所以能够完成各种自动设计过程,关键是有各类库的支持,如逻辑仿真时的模拟库、逻辑综合时的综合库、版图综合时的版图库、测试综合时的测试库等。这些库都是EDA公司与半导体生产厂商紧密合作、共同开发的。
高集成度、高速度和高可靠性是CPLD/FPGA最显著的特点。芯片的时钟延迟可小至纳秒(ns)级。这样的特性结合其并行的工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。CPLD/FPGA的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现片上系统,大大缩小体积,易于设计的屏蔽和管理。
基于CPLD/FPGA的高集成度特点,可以利用先进的EDA工具进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化,同时设计过程又几乎与所有元器件的硬件结构无关,因此开发设计成功的各类逻辑功能软件有很好的兼容性和可移植性。几乎可以用于任何型号和规模的CPLD/FPGA器件中,从而使得产品设计效率大幅度提高,可以在很短的时间内完成较复杂的系统设计。美国的IT公司认为,一个ASIC设计80%的功能可以用IP核(Core)等现成逻辑合成。未来大系统的CPLD/FPGA设计仅仅是各类再应用逻辑与IP核的拼装,设计周期将进一步缩短。
硬件描述语言(HDL)是相对于一般的计算机软件语言,如C、Pascal而言的。HDL是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。HDL具有与具体硬件电路和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现出强大的生命力和应用潜力。用HDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。
就CPLD/FPGA开发来说,比较常用和流行的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、System Verilog和System C等。其中VHDL、Verilog在现在EDA设计中使用最多,也拥有几乎所有的主流EDA工具的支持。而System Verilog和System C这两种HDL语言还处于完善过程中。目前,VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在21世纪,VHDL与Verilog HDL语言将承担起大部分的数字系统设计任务。VHDL起源于美国国防部的VHSIC,Verilog起源于集成电路的设计。
一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。
任何一种语言源程序,最终都要转换成门电路级才能被布线器或者适配器所接受。因此,VHDL语言的源程序的综合通常要从行为级到RTL级再到门电路级的转化,VHDL几乎不能直接控制门电路的生成,对综合器的性能要求较高;而Verilog语言源程序的综合过程要稍简单,即经过RTL级到门电路级的转化,易于控制电路的资源。
随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。硬件描述语言为适应新的情况,迅速发展,出现了很多新的硬件描述语言,像Superlog、SystemC、Cynlib C++等。
1)主流厂家的 EDA 软件开发工具 这类软件一般由CPLD/FPGA芯片厂家提供,基本都可以完成所有的设计输入(原理图或HDL)、仿真、综合、布线和下载等工作。目前主流厂家提供的比较常用的一些EDA软件工具有Altera公司的QuartusⅡ、Lattice的ispLEVER、Xilinx的ISE/ISE-Web PACK Series等。这些软件的基本功能相同,主要的差别在于面向的目标器件不同,同时性能也各有优劣。
Altera公司提供的系列软件包括以下几种。
☺ MAX+PlusⅡ:普遍认为MaxplusⅡ曾经是最优秀的PLD开发平台之一,适合开发早期的中小规模PLD/FPGA由QuartusⅡ替代,不再推荐使用。
☺ QuartusⅡ:Altera新一代FPGA/PLD开发软件,适合新器件和大规模FPGA的开发,已经取代MaxplusⅡ。
☺ SOPC Builder:配合QuartusⅡ,可以完成集成CPU的FPGA芯片的开发工作。
☺ DSP Builder:QuartusⅡ与Matlab的接口,利用IP核在Matlab中快速完成数字信号处理的仿真和最终FPGA实现。
QuartusⅡ是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusⅡ工具软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。QuartusⅡ平台与Cadence、Exemplar Logic、Mentor Graphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的Logic Lock模块设计功能,增添了Fast Fit编译选项,推进了网络编辑性能,而且提升了调试能力。该软件完全支持VHDL、Verilog的设计流程,内部嵌有VHDL、Verilog逻辑综合器。支持第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA CompilerⅡ等。这些综合工具具有更好的综合效果,所以通常建议使用这些工具进行VHDL/Verilog源程序的综合。QuartusⅡ可以直接调用这些第三方工具。同样,它还具备仿真功能,同时支持第三方的仿真工具,如Modelsim。此外,它还为Altera DSP开发包进行系统模型设计提供了集成综合环境,与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。QuartusⅡ还可以与SOPC Builder结合,实现SOPC系统开发。QuartusⅡ(3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对Stratix FPGA进行功能验证和原型设计,又可以设计Hard Copy Stratix器件用于批量成品。系统设计者现在能够用QuartusⅡ软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。
QuartusⅡ5.0以上版本支持双核CPU的嵌入。公司每出一个新版本都会缩短其编译速度。CPU内核可以用Altera提供的32位处理器软核NIOSⅡ实现。
QuartusⅡ8.0版本采用高级布局布线算法,支持多处理器,使编译时间平均缩短20%;渐进式编译支持,编译时间进一步减少了70%。利用QuartusⅡ软件特性能够迅速地达到时序逼近,满足功耗预算要求。
QuartusⅡ设计套装的最新版本已发展到15.1,软件的其他特性包括以下内容。
☺ DSP Builder 12.0新的数字信号处理(DSP)支持:通过系统控制台,与MATLAB的DDR存储器进行通信,并具有新的浮点功能,提高了设计效能以及DSP效率。
☺ 经过改进的视频和图像处理(VIP)套装以及视频接口IP:通过具有边缘自适应算法的ScalerⅡMegaCore功能以及新的Avalon-Streaming(Avalon-ST)视频监视和跟踪系统IP内核,简化了视频处理应用的开发。
增强收发器设计和验证:更新了Arria吁FPGA的收发器工具包支持,进一步提高了收发器数据速率(对于Stratix吁FPGA,高达14.1 Gbit/s)。
♢Isp Design EXPERT:它是Lattice Semiconductor的主要集成环境。通过该软件可以进行VHDL、Verilog以及ABEL语言的设计输入、综合、适配、仿真和在线系统下载。isp Design EXPERT是当前流行的EDA工具软件中最容易掌握的设计工具之一,界面友好,操作方便、功能强大,并且与第三方EDA工具兼容良好。
♢Foundation Series:该软件由Xilinx公司开发,采用了自动化的、完整的集成设计环境。Foundation项目管理器集成了Xilinx实现工具,同时还包含了强大的Synopsys FPGA Express综合系统,是业界最强大的EDA设计工具之一。
♢ISE/ISE-Web PACK Series:由Xilinx公司推出,是全球性能最高的EDA集成软件开发环境(ISE是Integrated Software Environment的简称)。ISE具有界面良好、操作简单的特点,再加上Xilinx公司的FPGA芯片占有很大的市场,使得ISE成为了非常通用的FPGA工具软件。ISE提供了包括代码编写、库管理以及HDL综合、仿真、下载等几乎所有FPGA开发所需的功能。Xilinx公司被业界公认在半导体元器件与软件范畴上拥有领导优势,加速了业界从ASIC转移到FPGA技术。Xilinx公司新近推出的ISE Design Suite 10.1版设计套件,从正面解决FPGA设计师所面临的严峻挑战,并且第一次提供了一个统一了逻辑、DSP以及嵌入式应用设计人员需要的解决方案,为设计的每一步提供了直观的生产力增强工具,覆盖了从系统设计探索、软件开发和基于HDL硬件语言设计、直到验证、调试和PCB设计继承的全部设计流程。
ISE Design Suite 10.1为用户提供了在设计过程中尽早分析功率要求的功能,同时还可以在设计过程中优化动态功率。第二代XPower功率分析工具提供了改善的用户接口,按照模块、结构层次、电源轨和使用的资源分析功率更为容易,因此进一步增强了功率估算功能。信息可用文本和HTML报告格式给出。与其他逻辑供应商提供的静态估算网页相比,这是一项巨大进步,同时在提供准确的功耗信息方面是一个飞跃。
ISE Design Suite 10.1提供了便捷全面的功率优化功能。利用集成的“功率优化设计目标”功能,用户可以简单地一步完成功率优化流程。通过映射和布局布线算法的改进,对于采用65nm的Virtex-5和采用Spartan-3的Generation FPGA的设计动态功率分别平均可降低10%和12%。
为帮助用户更快速地实现优化嵌入式和DSP设计,ISE Design Suite 10.1还对Xilinx公司的嵌入式和DSP工具进行了进一步的易用性改进。例如,统一的互操作性保证了用户可以在ISE Design Suite 10.1容易地增添System Generator模块。EDK和System Generator for DSP技术之间不同工具的集成得到进一步增强,从而能够为同时涉及嵌入式和信号处理的更复杂FPGA SOC设计提供支持。
ISE Design Suite 10.1为设计流程的每一步都提供了直观的生产力增强工具,覆盖了从系统级设计探索、软件开发和基于HDL硬件设计,直到验证、调试和PCB设计集成的全部设计流程。因此,通过新推出的ISE Design Suite 10.1,Xilinx公司正面解决了采用高级FPGA进行设计的设计师所面对的最严峻挑战,并且第一次提供了一个统一了逻辑、嵌入式和DSP应用设计人员需要的解决方案,并大大提高了设计效率。
2)第三方 EDA 工具 在EDA技术的实际开发设计过程中,由于选用的厂方EDA工具软件的某些性能受局限或不够完善,为了让自己的设计整体性能最佳,往往需要用到第三方工具。业界最流行的第三方EDA工具主要是逻辑综合性能最好的Synplify和仿真功能最强大的ModelSim。
☺ Synplify:该软件是Synplicity公司的著名产品,是逻辑综合性能最好的FPGA和CPLD的逻辑综合工具。它支持工业标准的Verilog和VHDL硬件描述语言,能以很高的效率将其文本文件转换为高性能的面向流行器件的设计网表。综合后还可以生成VHDL和Verilog仿真网表,并对原设计进行仿真;具有符号化的FSM编译器,可实现高级的状态机转化,并有一个内置的语言敏感的编辑器;其编辑窗口可以在HDL源文件中高亮显示综合后的错误,以便设计者迅速定位并纠正出现的问题。它还具有将VHDL文件转化成RTL图形的功能,这对VHDL的速成学习很有帮助。能够生成针对以下公司器件的网表:Actel、Altera、Lattice、Lucent、Philips、Quicklogic、Vantis(Amd)和Xilinx;支持VHDL 1076—1993标准和verilog 1364—1995标准。
最近,Synplify Premier&Synplify Premier with DP软件的推出,进一步巩固了Synplicity公司在FPGA综合领域的地位。Premier不仅继承了Synplify Pro的全部功能,更加入了众多强大的FPGA综合选项,可以轻松应对复杂的高端FPGA设计和单芯片ASIC原型验证。
Synplicity公司创新的Graph-based物理综合方法可以为FPGA布线使用的走线、开关和布局创建详细的布线资源图形。有了这样的图形,优化和布局就能围绕延时和实际可用的资源而不仅仅是距离来展开。布局、布线和优化将在一个步骤中同时完成,如此一来,反复的综合过程都能在工具内部自行完成,从而达到真正的时序收敛。
另外,Synplify Premier整合了一些特有的功能,以方便用户使用单颗FPGA进行ASIC原型验证设计。这些特有的功能包括全面兼容ASIC代码、支持Gated Clock的转换、支持Design Ware的转换。同时,因为Premier整合了在线调试工具Identify,极大地方便了用户进行软硬件协同仿真,确保设计一次成功,从而大大缩短了整个软硬件开发和调试的周期,并能提供更快的timing-closure和提升整体时序表现。
☺ ModelSim:ModelSim是Model Technology公司的著名产品,是业界最流行最优秀的HDL仿真器,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用众多的核心仿真技术,提供丰富的调试环境,在VHDL和Verilog混合仿真市场上一直保持领先地位,适合RTL和门级电路仿真,为FPGA/ASIC设计的首选。它采用直接优化的编译技术、Tcl/Tk技术、和单内核仿真技术,编译仿真速度快,编译的代码与平台无关,还能保护IP核、个性化的图形界面和用户接口,为用户加快调试提供强有力的手段;全面支持VHDL和Verilog语言的IEEE标准,支持SystemC、System Verilog、PSL,支持C/C++功能调用和调试;具有快速的仿真性能和最先进的调试能力,全面支持UNIX(包括64位)、Linux和Windows平台。
提供芯片下载电路及EDA实验/开发的外围资源(类似于用于单片机开发的仿真器),供硬件验证用。一般包括:
实验或开发所需的各类基本信号发生模块,包括时钟、脉冲、高低电平等;
CPLD/FPGA输出信息显示模块,包括数据显示、发光管显示、声响指示等;
监控程序模块,提供“电路重构软配置”;
目标芯片适配座以及上面的CPLD/FPGA目标芯片和编程下载电路。
随着市场需求的增长,集成工艺水平及计算机自动设计技术的不断提高,促使单片系统,或称系统集成芯片成为IC设计的发展方向,这一发展趋势表现在如下几个方面。
☺ 超大规模集成电路的集成度和工艺水平不断提高,深亚微米(Deep-Submicron)工艺,如0.13μm、90nm已经走向成熟,在一个芯片上完成的系统级的集成已成为可能。
☺ 由于工艺线宽的不断减小,在半导体材料上的许多寄生效应已经不能简单地被忽略,这就对EDA工具提出了更高的要求。同时,也使得IC生产线的投资更为巨大。可编程逻辑器件开始进入传统的ASIC市场。
☺ 市场对电子产品提出了更高的要求,如必须降低电子系统的成本、减小系统的体积等,从而对系统的集成度不断提出更高的要求。同时,设计的效率也成为一个产品能否成功的关键因素,促使EDA工具和IP核应用更为广泛。
☺ 高性能的EDA工具得到长足的发展,其自动化和智能化程度不断提高,为嵌入式系统设计提供了功能强大的开发环境。
☺ 计算机硬件平台性能大幅度提高,为复杂的SOC设计提供了物理基础。
但现有的HDL语言只是提供行为级或功能级的描述,尚无法完成对复杂的系统级的抽象描述。人们正尝试开发一种新的系统级设计语言来完成这一工作,现在已开发出更趋于电路行为级的硬件描述语言(如SystemC、SystemVerilog)及系统级混合仿真工具,可以在同一个开发平台上完成高级语言,如C/C++等,与标准HDL语言(Verilog HDL、VHDL)或其他更低层次描述模块的混合仿真。虽然用户用高级语言编写的模块尚不能自动转化成HDL描述,但作为一种针对特定应用领域的开发工具,软件供应商已经为常用的功能模块提供了丰富的宏单元库支持,可以方便地构建应用系统,并通过仿真加以优化,最后自动产生HDL代码,进入下一阶段的ASIC实现。
此外,随着系统开发对EDA技术的目标器件各种性能要求的提高,ASIC和FPGA将更大程度地相互融合。这是因为虽然标准逻辑ASIC芯片尺寸小、功能强大、耗电小,但设计复杂,并且有批量生产要求;可编程逻辑器件开发费用低廉,能在现场进行编程,但却体积大、功能有限,而且功耗较大。因此,FPGA和ASIC正在汇合到一起,互相融合,取长补短。由于一些ASIC制造商提供具有可编程逻辑的标准单元,可编程器件制造商重新对标准逻辑单元发生兴趣,而有些公司采取两头并进的方法,从而使市场开始发生变化,在FPGA和ASIC之间正在诞生一种“杂交”产品,以满足成本和上市速度的要求,如将可编程逻辑器件嵌入标准单元。
尽管将标准单元核与可编程器件集成在一起并不意味着使ASIC更加便宜,或使FPGA更加省电,但可使设计人员将二者的优点结合在一起,通过去掉FPGA的一些功能,可减少成本和开发时间并增加灵活性。当然,现今也在进行将ASIC嵌入可编程逻辑单元的工作。目前,许多PLD公司开始为ASIC提供FPGA内核。PLD厂商与ASIC制造商结盟,为SOC设计提供嵌入式FPGA模块,使未来的ASIC供应商有机会更快地进入市场,利用嵌入式内核获得更长的市场生命期。
例如,在实际应用中使用所谓可编程系统级集成电路(FPSLIC),即将嵌入式FPGA内核与RISC微控制器组合在一起形成新的IC,广泛用于电信、网络、仪器仪表和汽车中的低功耗应用系统中。当然,也有PLD厂商,不把CPU的硬核直接嵌入在FPGA中,使用了软IP核,并称之为SOPC(可编程片上系统),也可以完成复杂电子系统的设计,只是代价将相应提高。
在新一代的ASIC器件中留有FPGA的空间。如果希望改变设计,或者由于开始的工作中没有条件做足够的验证测试,稍后也可以根据要求对它编程,有了一定再修改的自由度。ASIC设计人员将这种小的可编程逻辑内核用于修改设计问题,降低了设计风险。增加可编程逻辑的另一个原因是,考虑到设计产品的许多性能指标变化太快,特别是通信协议,因此为已经完成设计并投入应用的IC留有多次可自由更改的功能是十分有价值,这在通信领域中的芯片设计方面尤为重要。
现在,传统ASIC和FPGA之间的界限正变得模糊,系统级芯片不仅集成RAM和微处理器,也集成FPGA。整个EDA和IC设计工业都朝这个方向发展,这并非是FPGA与ASIC制造商竞争的产物,而对于用户来说,则意味着有了更多的选择。
整个数字电路的高阶设计概念,可以说就是设计自动化的实现。在高阶设计的领域中,硬件描述语言HDL扮演的角色,只是一种程序语言接口(PLI),它提供了一个极具弹性的设计入口,以作为电路设计者与各种计算机辅助设计工具之间沟通的桥梁。因此,若缺少了这些EDA工具,硬件描述语言的剩余价值也只不过是一种系统规划工具,或是技术文件格式而已。
理想的情况是:由仿真验证设计是否符合原始设定的规格(Specification),以至于诸如逻辑电路的合成与实际晶体管配置与绕线(Place and Route)这类徒手不易掌控的工作,工程师均能寻求适当的EDA工具来完成整个电路的设计。完整的自动化数字电路设计流程包含了三种主要的EDA工具:仿真器(Simulator)、综合器(Synthesizer)以及配置与绕线(Place and Routing,P&R)工具。除P&R工具外,其余两者绝大部分均以VHDL或Verilog HDL作为其程序语言接口。配合介绍典型的自动化设计流程,简述各项EDA工具的基本功用。
1)系统规格制定 ( Define Specification ) 在系统设计之初,工程师们需根据产品的应用场合,为ASIC设定一些诸如功能、操作速度、接口规格、环境温度及消耗功率等规格,以作为将来电路设计时的依据。在这方面,目前已有厂商提供系统级仿真器(System-Level Simulator),为系统设计提供不错的解决方案。通过此类仿真器,工程师们可以预估系统的执行效果,决定软件模块及硬件模块该如何划分。除此之外,还可以进一步规划哪些功能该整合于ASIC内,哪些功能可以设计在电路板上,以符合最大的经济效能比。
2)设计描述 ( Design Description ) 一旦规格制定完成,便依据功能(Function)或其他相关要求,将ASIC划分为数个模块(Module)。此阶段是整个设计过程中最重要的关键之一,它直接影响了ASIC内部的架构及各模块间互动的信号,更间接影响到后续电路合成的效能及未来产品的可靠性。
决定模块划分后,便分别交给设计团队的各个工程师,以VHDL或Verilog等硬件描述语言进行设计,也就是功能的行为描述(Behavioral Description)。为了明确及有效地描述模块的内部功能,各模块之下可能再细分成数个子模块(Sub-Module),直到能以可合成(Synthesizible)的语法描述为止。这种层层分割模块的设计技巧,就是一般所谓的阶层式设计(Hierarchical Design)。这与早期直接以绘制门级电路进行设计的时代,所使用的技巧是相类似的。此步骤所完成的设计描述,是进入高阶合成电路设计流程的叩门砖,习惯上称之为硬件描述语言的设计切入点(HDL Design Entry)。关于这个步骤,也有相关的辅助工具相继推出,如Design Book,它利用一般工程师熟悉的图形接口,如状态图及流程图帮助开始接触以硬件描述语言进行设计的工程师,自动编写出相对应的硬件语言描述码。
3)功能验证 ( Function Verification ) 完成步骤2)的设计描述后,接下来便是利用VHDL或Verilog的电路仿真器,针对先前的设计描述,验证其功能或时序(Timing)是否符合由步骤1)所制定的规格。通常,称这类验证为功能仿真(Function Simulation)或行为仿真(Behavioral Simulation),而这类HDL电路仿真器则通称为行为仿真器(Behavioral Simulator)。
对于这类功能验证的仿真而言,仿真器并不会考虑实际逻辑单元或联机(Connect Wires)所造成的时间延迟(Time Delay)、门延迟(Gate Delay)及传递延迟(Transport Delay)。取而代之的是使用单一延迟(Unit Delay)的数学模型,来粗略估测电路的逻辑行为。虽然如此无法获得精确的结果,但其所提供的信息已足够工程师针对电路功能的设计进行除错。
4)逻辑综合 ( Logic Synthesis ) 确定设计描述之功能无误后,便可由综合器(Synthesizer)进行电路综合。综合过程中,必须选择适当的逻辑单元库(Logic Cell Library)作为综合逻辑电路时的参考依据。元件库的取得,可能直接来自于ASIC供货商,或其他组件库供货商,或者为了某种特殊原因,也可以考虑自行建立。事实上,元件库内含的逻辑单元非常广泛,大致上包括以下各项。
☺ Cell Schematic:用于电路合成,以便产生逻辑电路的网络列表(Netlist)。
☺ Timing Model:描述各逻辑单元精确的时序模型。组件工程师会选取各逻辑单元内的寄生电阻及电容进行仿真,进而建立各逻辑单元的实际延迟参数。其中包括传输门延迟(Gate Delay)、输入/输出的延迟(Input Delay/Output Delay)及线路延迟(Wire Delay)等。这一模型在进入逻辑单元各层次的电路仿真以及在布局布线(P&R)之后的仿真中都会用到。
☺ Routing Model:描述各逻辑单元在进行绕线时的限制,作为布线工具的参考资料。
☺ Silicon Physical Layout:在制作ASIC的光罩(Mask)时会使用到它。
使用综合器需要注意最佳化(Optimize)的设定。根据步骤1)所制定的规格,工程师可对综合器下达一系列限制条件(Constrain),根据这些条件,综合器便会自动合成满足规格要求的逻辑电路。最常见的三个限制条件是操作速度、逻辑单元数及功率消耗。事实上,这三项限制条件之间呈现互相矛盾的关系,一旦限制条件太过严苛,将使电路合成的速度变得非常慢,有可能在花费大量时间后,仍得不到想要的结果。
Design Entry硬件语言设计描述文件,其语法的编写风格(HDL Coding Style)是决定综合器执行效能的另一个因素。事实上,无论是对VHDL或是Verilog而言,综合器所支持的HDL语法均是有限的,过于抽象的语法只适用于编写Cell Library,或是作为系统规划评估时的仿真模型所用,而不为综合器所接受。
5)逻辑门层次的电路功能验证 ( Gate-Level Netlist Verification ) 由综合器产生的netlist,会在这个阶段进行第二次的电路仿真,一般称之为逻辑单元层次的电路功能验证或P&R前的仿真,简称前段仿真(Pre-Simulation)。在此阶段,主要的工作是要确认经由综合器所合成的电路是否如同原始的设计描述那样符合用户的功能需求。利用逻辑单元层次仿真器(Gate-Level Simulator)配合在功能验证时已经建立的Test Bench,便可达到这个目的。
在Pre-Simulation中,一般只考虑门延迟,而联机延迟在此处是不予考虑的(通常在电路合成阶段,无法预测实际联机的长度,因此也就无法推测联机所造成的延迟)。
时序变异(Timing Variation)是此处经常出现的发生错误,这当中包括设定时间(SetUp Time)或保持时间(Holding Time)的不符合,以及脉冲干扰(Glitch)现象的发生。而这些时序变异,基本上都是只单纯考虑门延迟时所造成的结果。
6)布局与布线 ( Place and Routing ) 这里包含了三项主要的工作:平面规划(Floor Planning)、布局(Placement)及布线(Routing),在设计描述的阶段,将各个子模块分别予以实现。平面规划的工作便是,适当地规划这些划分好模块在芯片上的位置。
比起模块内逻辑单元间的接线,各模块之间互连信号的接线通常会比较长,因此,它们所产生的延迟会影响ASIC的性能;在次微米制程上,此种现象更为显著,这也就是为何先前特别强调模块划分的重要性。完成平面规划之后,P&R工具便接着完成各模块方块内逻辑单元的布局与布线。
7)布局布线后的电路功能验证 ( Post Layout Verification ) 在这个阶段,经过P&R之后的电路,除了需重复验证是否仍符合原始功能设计之外,工程师最关心的是,在考虑实体的闸延迟及联机延迟的条件之下,电路能否正常运作。与逻辑单元层次的电路功能验证时发生的情况相同,可能需要面对Set-Up Time、Holding Time及Glitch的问题。不同的是,此时若真有错误发生,将面对更冗长的重复修正周期(Iteration Cycle)。也就是说,可能需要回到最原始的步骤———修改HDL设计描述,重新再跑一遍相同的流程。
由于需要参考的参数非常多,仿真时间将数倍于先前的仿真。经由P&R工具所产生的标准延迟格式(Standard Delay Format,SDF)档,提供了翔实的物理层次的延迟参数。通过VITAL的参数回传机制(Back-Annotation),仿真器能够精确预估数字电路的电气行为,并且指示出发生时序错误的时间点,而付出的代价就是“时间”。
如果设计硬件电路能像写软件那样方便,该是多么美好的景象。硬件描述语言的高阶合成电路设计,为我们打开了这扇窗。事实上,VHDL及Verilog HDL并非唯一的硬件描述语言,基于相似的目的,早期也发展出其他如ABEL及AHDL等硬件语言,但是由于支持的厂商不多,因此目前不如前者应用普遍。最近,VHDL及Verilog HDL的发展协会为提供更一般化的电路描述,已制定了能够同时描述数字及模拟混合电路的描述语法,相信支持其语法的相关EDA工具应该能在近期面市。
为能迎接SOC及IP时代的来临,各EDA工具的供货商无不竭尽全力,力图在下一代设计流程上站在业界领先的地位。Synopsys及Cadence更是相继推出应用功能一致性验证及静态仿真等技术的产品,如Formality、PrimeTime(Synopsys)以及Affirma(Cadence)。其他诸如预先平面规划(Pre-Floor-Planning)等新的设计观念也不断地被提出。虽然电路的设计工具及观念不断推陈出新,但是对传统的芯片设计厂商而言,如何将这些新的概念整合进原先的设计流程,才是最重要的问题。
半导体工艺水平的提高对EDA设计技术的发展有巨大的推进作用,与此相关的微电子技术、计算机技术和电路基本理论这三项前导技术学科对EDA技术的影响也逐渐显现出来,使EDA设计方法呈现电路基本理论、微电子理论、算法理论、操作系统、计算机语义学等多学科交叉渗透的现象。其作用范围从PCB设计延伸到电子线路设计和集成电路设计,使IC芯片、系统应用、电路制作和整个电子生产过程都集成在一个环境之中。
EDA的设计流程如图1-1所示。该流程图以VHDL输入为例,展示了EDA设计的基本过程。
图1-1 EDA的设计流程
1)设计输入 EDA的设计输入方法多种多样,可根据EDA工具的支持程度和设计者的设计能力与习惯进行选择。
☺ 逻辑原语输入法:基于AND、OR、NOT等逻辑原语的输入方法。这种基本输入法是构成各类宏功能、宏功能(Megafunction)的基础。逻辑原语作为各模块之间的数据缓冲、电平配合和负载匹配,在现代设计方法中是不可缺少的。
☺ 库函数宏输入法:大多数EDA工具都带有丰富的库函数宏,如标准74系列集成电路、各类计数器和多路器等标准函数。这些函数宏均可以编译到一个CPLD器件中,大大提高了系统的集成度。
IP模块宏功能模块核输入法:在许多EDA工具库中都有一个免费提供的IP模块库。另外,有些IP模块也可以通过商业手段得到。ALTERA公司免费提供的宏功能模块有ROM、RAM、FIFO控制部件和滤波器等。IP模块是由第三方开发的具有特定功能和知识产权的模块,利用这种模块输入法可大大缩短开发周期。
硬件描述语言输入法:用算法语言描述电子系统的行为,建立模型。利用硬件描述语言,可以方便地设计大型的电子系统。
原理图输入法:利用已经预制好的设计模块,将其生成原理图符号,在原理图编辑器中将各种逻辑器件通过电气连接线连接起来。这种设计方法与传统的原理图绘制十分相像,因此更加易于掌握。但其缺点也是明显的,由于原理图设计输入方法没有标准化,不同的EDA工具软件对其支持的方式不同,不利于文件的移植和管理。当电路系统较大时,原理图的易读性下降,使错误排查以及设计升级都十分困难。
状态图和波形图输入法:一些辅助设计工具还支持状态图输入或波形图输入方式。使用状态图输入法时,设计者只需画出状态转移图,编辑器就能够自动生成相应的VHDL、ABEL或Verilog-HDL语言模型。典型的状态机输入工具是State CAD。使用波形图输入法时,设计者画出输入的激励波形和输出的相应波形,波形输入工具自动生成符合输入输出关系的功能代码。这些输入方式目前已经被逐步淘汰。
2)综合方法 综合方法包括逻辑综合与测试综合。逻辑综合就是对不同层次和不同形式的设计描述进行转换。在此过程中,设计者的任务是把各种设计要求作为一种约束条件,按照指定的工艺库做映射转换。综合器通过各种综合算法,以具体的工艺背景实现高层目标所规定的优化设计。通过设计综合工具,可将电子系统的高层行为描述转换到低层硬件描述和确定的物理实现,使设计人员无须直接面对低层电路,不必了解具体的逻辑器件,从而把精力集中到系统行为建模和算法设计上。
在图形生成时产生的高覆盖率测试代码和关键路径的时序分析,为电路与系统的高层次设计提供了一种自动测试方案。测试综合方法是对设计进行验证的有效方法,也是对测试结果进行预测的有效手段。它是以设计结果的性能为目标的综合方法,以电路的时序、功耗、电磁辐射和负载能力等性能指标为综合对象,是保证电子系统设计结果稳定、可靠工作的必要条件。
主流的综合工具主要有Synplicity公司的Synplify/Synplify pro、Synopsys公司的FPGA CompilerⅡ/Express、Exemplar Logic公司的Leonardo Spectrum。另外,各个芯片厂商提供的EDA工具还内嵌了自己的综合工具。
3)仿真方法 仿真是确保设计成功的重要措施。集成电路的投片生产可谓一掷千金,一丝一毫的设计差错所造成的损失都是难以承受的。但就设计方法论而言,错误是在所难免的。实践证明,以现在的计算机技术,如果在投片生产之前对设计结果进行计算机仿真,由此找出设计错误,对通常规模的芯片设计基本上可以做到万无一失。有人说用EDA工具设计电子系统的过程,就是仿真的过程,这是因为一个项目的仿真时间要占整个设计时间的80%。
IP资源的来源很多,第一是用户可以自己设计开发IP模块;第二是硅片和半导体厂商为了推销他们的器件而免费提供IP模块;第三是EDA专业公司提供免费的或需要付费的IP模块;第四是专门从事IP设计的独立开发商推出的商业模块,一般需要付费。半导体厂商和可编程器件厂商的IP模块是针对自己器件的工艺特点而创建的,所以在功耗、面积、性能方面的优化都比较理想。但由于资源和知识方面的局限,他们建造的IP模块常常只能适用于较窄的领域。EDA专业开发商的优势是软件开发,提供的IP模块独立于半导体厂商的工艺结构,兼容性好,易于模块之间集成。在用IP模块搭建的系统设计中,EDA专业开发商的工具综合效率高,成功率较高。独立IP供应商一般面向某个特定领域,产品功能专一,如PCI接口、ATM设计和滤波器等。IP模块的重用方法与两个重要因素密切相关:一是IP模块供应商的能力;二是IP模块的格式。
IP模块的设计重用方法正在世界范围内兴起,IP市场也在不断扩大,模块丰富多彩,知识产权交易和设计复用将是EDA设计的关键。一个大的电子系统完全没有必要从逻辑门开始设计,而应该从大的模块,如CPU核、DSP核以及CBA(基于宏单元的阵列)开始设计,从而达到提高效率、事半功倍的效果。
目前业界最为流行的仿真工具是ModelSim。另外,Aldec公司的ActiveHDL也有相当的普及度。
4)协同验证与形式验证方法 电子系统级设计的最新方法是硬件和软件的协同设计开发,协同验证是当今系统级集成的核心。半导体器件厂商的深亚微米工艺也推动了设计方法的发展。以高层系统级设计为主导,以性能优化为目标,融合逻辑综合、性能仿真、形式验证和可测性设计,具有深亚微米工艺的物理级设计和整体规划设计能力的EDA工具与方法正在逐渐成熟。
在系统集成(Systems On Chip)设计中,首先要定义系统需求和功能,并将它们分配到硬件和软件两部分之中,然后分别独立进行硬件设计和软件设计,最后再集成到一起进行整体测试。设计的协同验证方法弥补了硬件设计和软件设计流程之间的空隙,因而是系统级集成设计的核心。通过建立虚拟样机环境来生成虚拟样品,以便对硬件和软件能否在一起正常工作进行验证。这就是说,在设计阶段可以用验证方法提前解决原来在系统集成和测试时用仿真方法才能解决的问题。Mentor公司推出的硬件/软件协同验证工具有两种基本的仿真接口:一个是用于硬件验证的逻辑仿真器,另一个是用于软件验证的指令集仿真器。指令集仿真器是一个虚拟微处理器,也就是用软件实现的仿真器,接受可执行的目标码文件,并可对其进行解码和执行。协同验证工具保持两个软/硬仿真器之间同步工作,同时也减少了硬件仿真所要处理的事务。软/硬件协同验证工具是迈向真正的系统集成的第一步,它能把软件和硬件仿真作业安排在最佳环境中进行,使软件和硬件设计人员都能看到整个系统的行为。
形式验证方法采用数学演绎论证法来检查和确保寄存器传输级(RTL)描述与较低级(门级和晶体管级)物理实现之间的功能等效性。形式验证工具为用户提供连续性的论证方法,以保证RTL模型与逻辑门之间的功能等效性,确保任何模块之间以及RTL模型与逻辑门之间一一对应。借助于高级语言描述与手工设计逻辑块行为相结合的验证和确认方法,可以加快芯片的设计。
5)设计中的 IP 重用方法 产品上市时间的缩短和芯片功能的增强对EDA设计构成了双重压力,芯片开发商正在转向寻求完整的设计重用方法。系统设计人员将IP(Intellectual Property)模块看作提高生产率的重要工具。IP模块是一些预先创建的功能模块,可以方便地纳入系统级集成电路之中。这种功能模块有两种:一种是IP模块;另一种是宏功能核(Megafunction Core),又分软核和硬核。软核是指具有一定硬件功能、用HDL语言写成的一段程序。硬核是能与某种半导体工艺相吻合的、经过编译的设计程序。无论软核还是硬核,都需要购买使用权。而硬核相对于软核来说成功的把握大一些,设计风险小一些。