1 引言
我国微电子业的前景,应该是在使用自主知识产权的可编程逻辑器件的同时,从输入到上板调试的全过程也应当使用自主设计的EDA软件。而这种EDA软件的实现目标是:不但要把从输入到上板调试的全过程集成在同一环境中,而且把综合、仿真环境也无遗漏地集成进来。如果把各主流可编程逻辑器件厂家的各系列芯片也兼容进来,软件就具有更好的可移植性和兼容性,就可以称为一种通用的EDA开发平台了。本文将从可编程逻辑器件使用的角度,论述开发自主知识产权的EDA软件设计思想。
2 什么是EDA技术,其特点是什么
EDA是Electronic Design Automation的简称,是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
EDA的发展历史是这样的:它是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的硬件设计语言HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得要实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标器件相映射的网表文件。适配器的功能是将由综合器产生的网表文件配置到指定的目标器件中,产生最终的下载文件。适配器所选定的目标器件必须属于在综合器申已指定的目标器件系列。
利用EDA技术进行电子系统的设计,具有以下几个特点:
①用软件的方式设计硬件;
②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;
③设计过程中可用有关软件进行各种仿真;
④系统可现场编程,在线升级;
⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高;
⑥从以前的“组合设计”转向真正的“自由设计”;
⑦设计的移植性好,效率高;
⑧非常适合分工设计,团体协作。
因此,EDA技术是现代电子设计的发展趋势。
3 EDA软件工具的使用流程
使用EDA软件工具设计可编程逻辑器件的开发流程如下:
(1)输入:首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。
(2)编译:完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。
(3)综合:是将软件设计与硬件的可实现性挂钩,将软件转化为硬件电路的关键步骤。综合后的HDL综合器可生成EDIF、XNF或VHDL等格式的网表文件,它们从门级开始描述了最基本的门电路结构。
(4)行为仿真和功能仿真:利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。
(5)适配:利用布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。该操作完成后,EDA软件将产生针对此项设计的适配报告和下载文件等多项结果。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的描述情况等。
(6)功能仿真和时序仿真。仿真采用接近真实器件运行的仿真,仿真过程已将器件的硬件特性考虑进去了,因此仿真精度要高的多。
(7)下载:如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过下载电缆载入目标芯片中。
(8)硬件仿真与测试。
4 EDA软件发展状况
Altera是最大的可编程逻辑器件供应商之一,20世纪90年代以后发展很快,主要产品:MAX3000/7000,FLEX10K,APEX20K,ACEX1K,Stratix,Cyclone等。Altera的MaxpLusⅡ曾经是最优秀的EDA开发平台之一,适合开发早期的中小规模PLD/FPGA,使用者众多。目前Altera已经停止开发MaxplusⅡ,而转向QuartusⅡ软件平台,目前QuartusⅡ是其最新开发软件。
Xilinx是FPGA的最大供应商,产品种类较全,主要有:XC9500,Coolrunner,Spartan,Virtex等。Foundation Series是Xilinx公司上一代的EDA开发软件,目前Xilinx已经停止开发Foundation,转向ISE软件平台设计。一般来说,全球PLD/FPGA产品大约60%以上是由Altera和Xilinx提供的,可以说Altera和Xilinx共同决定了EDA技术的发展方向。因此他们的EDA软件也是用户使用上的主流产品。
Lattice是ISP(在系统可编程)技术的发明者,ISP技术极大地促进了PLD产品的发展,与ALTERA和XILINX相比,其开发工具略逊一筹。中小规模PLD比较有特色,主要产品有ispMACH4000,EC/ECP,XO,XP以及可编程模拟器件等。IspDesignEXPERT是Lattice公司的EDA开发软件,目前最新软件改名为ispLEVER,它将取代IspDesignEXPERT,成为FPCA/PLD设计的主要工具。
上述软件都是由PLD/FPGA芯片厂家提供,基本都可以完成所有的设计输入、仿真、综合、布线、下载等工作。另处,常用EDA开发软件还有orCAD/PSPICE,Multisim,Protel等。
5 EDA软件开发思路
EDA软件的使用过程是:输入、编译、综合、行为仿真和功能仿真、适配、功能仿真和时序仿真、编程下载。EDA软件开发就是要从这些使用角度出发来进行设计。下面是对各个模块进行软件设计的描述。
5.1 EDA输入软件设计
利用EDA技术进行设计,首先需要利用EDA工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来,以供编译使用。
常用的源程序输入方式有三种。
(1)原理图输入方式:利用EDA工具提供的图形编辑器以原理图的方式进行输入。原理图输入方式比较容易掌握,直观且方便,所画的电路原理图与传统的器件连接方式完全一样,很容易被人接受,而且编辑器中有许多现成的单元器件可以利用,自己也可以根据需要设计元件。然而原理图输入法的优点同时也是它的缺点:
①随着设计规模增大,设计的易读性迅速下降,对于图中密密麻麻的电路连线,很难搞清电路的实际功能;
②一旦完成,电路结构的改变将十分困难,因而几乎没有可再利用的设计模块;
③移植困难、入档困难、交流困难、设计交付困难,所以很难设计出一个标准化的原理图编辑器。
(2)状态图输入方式:以图形的方式表示状态图进行输入。当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成HDL程序。这种设计方式简化了状态机的设计,比较流行。
(3) HDL软件程序的文本方式:最一般化、最具普遍性的输入方法。
分析上述三种输入方式的特点,文本输入是最容易实现的,可以作为重点设计。把状态机输入和原理图输入作为补充功能,在能力允许下进行设计。
一般的HDL程序可以由实体、结构体、配置、程序包和元件库5个部分组成。首先是设计元件库,可以包括IEE库、STD库、ASIC矢量库、用户定义库和WORK库等。然后,对HDL语言做选择。目前用得较多的HDL有已成为IEEE STD1076标准的VHDL、IEEE STD 1364标准的Verilog HDL和Altera公司企业标准的AHDL等。可以把能识别的HDL语言做列表供用户选择,文本输入就是对这些HDL语言的语法识别过程。编辑过程要包括这些HDL语言的全部语法,所以设计人员要精通所有语法,不能有遗漏。本文选用VHDL语言作为硬件描述语言进行设计。
原理图输入方式是使用元件库中的元件画出系统或电路的原理图,这种设计输入方式要求设计人员具有丰富的硬件知识、熟悉PLD/FPGA器件的结构。软件设计上就是提供一个图形编辑器,编辑器要提供元件、连线、结点、网络标号、文字、文件盒、多边形充填区、圆和圆弧、电源和接地等多种绘图元素,通过它们,就可以绘制需要的电路图。
状态图输入主要用来通过图形方式设计有限状态机。软件设计上也需要一个图形编辑器。
5.2 EDA编译软件设计
编译软件用于完成电路设计描述后进行的排错过程,并将其变成特定的文本格式,为下一步的综合做准备。编译过程就是对这些HDL语言设计规则的校正,是制作一个编译器的过程。分析所选的HDL语言,对它的所有设计规则做一个查找表,对描述好的逻辑器件做规则查找。
5.3 EDA综合和优化软件设计
要把HDL的软件设计与硬件的可实现性进行挂钩,就需要利用EDA软件系统的综合器进行逻辑综合。所谓逻辑综合,就是把电路的高级语言描述(VHDL、原理图或状态图形的描述)转换成低级的,可与FPCA/PLD的门阵列基本结构相映射的网表文件。而网表文件就是按照某种规定措述电路的基本组成及如何相互连接的关系的文件。综合软件的设计重点是把门阵列的基本结构和逻辑器件的描述对照起来。
5.4 EDA行为仿真软件设计
所谓行为仿真,就是将VHDL设计源程序直接送到VHDL仿真器中所进行的仿真。该仿真只是根据VHDL的语义进行的,与具体电路没有关系。由于VHDL仿真器的行为仿真功能是面向高层次的系统仿真,只能对VHDL的系统描述作可行性的评估测试,不针对任何硬件系统,因此基于这一仿真层次的许多VHDL语句不能被综合器所接受。这时,综合器不支持的语句在综合过程中将忽略掉。软件设计时,可以充分发挥VHDL中适用于仿真控制的语句及有关的预定义函数和库文件。
5.5 EDA功能仿真软件设计
所谓功能仿真,就是将综合后的VHDL网表文件再送到VHDL仿真器中所进行的仿真。这时的仿真仅对VHDL描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件的硬件特性,如延时特性等。该仿真的结果与门级仿真器所做的功能仿真结果基本一致。综合之后的VHDL网表文件采用VHDL语法,首先描述了最基本的门电路,然后将这些门电路用实例化语句连接起来。功能仿真软件的输出网表与综合后的网表格式是一致的,软件设计过程是对VHDL描述逻辑功能进行测试模拟。
5.6 EDA时序仿真软件设计
所谓时序仿真,就是将适配后所产生的电路网表文件送到仿真器中所进行的仿真。该仿真已将器件特性考虑进去了,因此可以得到精确的时序仿真结果。适配处理后生成的电路网表文件中包含了较为精确的延时信息,网表文件中描述的电路结构与适配后的结果是一致的。时序仿真软件设计的重点是建立所有可描述的逻辑器件的时序模型,并根据时序模型生成电路网表的时序关系图。根据时序图判断电路的时序是不是满足设计要求。
5.7 EDA适配软件设计
所谓逻辑适配,就是将由综合所产生的网表文件针对某一具体的目标进行逻辑映射操作,其中包括底层器件配置、工艺映射、划分、布局、布线与位流生成等,配置于指定的目标器件中,产生最终的下载文件。适配所选定的目标器件必须属于原综合指定的目标器件系列。适配过程也是实现过程,其软件设计内容是很多的。
工艺映射软件可以采用动态规划理论为基础,来建立基于LUT结构(或其他结构)的可编程逻辑的映射,这样可以获得最小延时目标电路。
布局软件的任务是将工艺映射模块划分后得到的子电路分配到FPGA具体的逻辑模块中。此外它还选择实际芯片中的总线和大存储块,并且对宏模块进行分配。
布线软件的目的是将已经布局好的设计网表,利用芯片中的可编程连线资源来实现电路的逻辑功能。
5.8 EDA下载软件设计
如果编译、综合、适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA/PIJD适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片FPCA或PLD中。
6 结束语
EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用也很广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完善的地步。EDA市场日趋成熟,但我国的研发水平还很有限,需EDA软件设计人员迎头赶上。中国也有些集成电路设计中心提供简单的EDA设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具在各地开花并结果。
责任编辑:tzh
评论
查看更多