教学课件:《EDA技术及应用-Verilog-HDL版》(第三版)谭会生_第1页
教学课件:《EDA技术及应用-Verilog-HDL版》(第三版)谭会生_第2页
教学课件:《EDA技术及应用-Verilog-HDL版》(第三版)谭会生_第3页
教学课件:《EDA技术及应用-Verilog-HDL版》(第三版)谭会生_第4页
教学课件:《EDA技术及应用-Verilog-HDL版》(第三版)谭会生_第5页
已阅读5页,还剩1834页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.1EDA技术的涵义

1.2EDA技术的发展历程

1.3EDA技术的主要内容

1.4EDA软件系统的构成

1.5EDA工具的发展趋势

1.6EDA的工程设计流程

1.7数字系统的设计

1.8EDA技术的应用展望

第1章绪论

什么叫EDA技术?由于它是一门迅速发展的新技术,涉及面广,内容丰富,因而理解各异,目前尚无统一的看法。作者认为:EDA技术有狭义的EDA技术和广义的EDA技术之分。1.1EDA技术的涵义狭义的EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。本书讨论的对象专指狭义的EDA技术。广义的EDA技术,除了狭义的EDA技术外,还包括计算机辅助分析CAA技术(如PSPICE、EWB、MATLAB等)和印刷电路板计算机辅助设计PCB-CAD技术(如PROTEL、ORCAD等)。在广义的EDA技术中,CAA技术和PCB-CAD技术不具备逻辑综合和逻辑适配的功能,因此它并不能称为真正意义上的EDA技术。故作者认为将广义的EDA技术称为现代电子设计技术更为合适。利用EDA技术(特指IES/ASIC自动设计技术)进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高;⑥从以前的“组合设计”转向真正的“自由设计”;⑦设计的移植性好,效率高;⑧非常适合分工设计,团体协作。因此,EDA技术是现代电子设计的发展趋势。

1.20世纪70年代的计算机辅助设计CAD阶段

早期的电子系统硬件设计采用的是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。初级阶段的硬件设计大量选用中、小规模标准集成电路。人们将这些器件焊接在电路板上,做成初级电子系统,对电子系统的调试是在组装好的PCB(PrintedCircuitBoard)板上进行的。1.2EDA技术的发展历程由于设计师对图形符号使用数量有限,因此传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。这时,人们开始将产品设计过程中高度重复性的繁杂劳动,如布图布线工作,用二维图形编辑与分析的CAD工具替代,最具代表性的产品就是美国ACCEL公司开发的Tango布线软件。20世纪70年代,是EDA技术发展初期,由于PCB布图布线工具受到计算机工作平台的制约,其支持的设计工作有限且性能比较差。

2.20世纪80年代的计算机辅助工程设计CAE阶段

初级阶段的硬件设计是用大量不同型号的标准芯片实现电子系统设计的。随着微电子工艺的发展,相继出现了集成上万只晶体管的微处理器、集成几十万直到上百万储存单元的随机存储器和只读存储器。此外,支持定制单元电路设计的硅编辑、掩膜编程的门阵列,如标准单元的半定制设计方法以及可编程逻辑器件(PAL和GAL)等一系列微结构和微电子学的研究成果都为电子系统的设计提供了新天地。因此,可以用少数几种通用的标准芯片实现电子系统的设计。伴随着计算机和集成电路的发展,EDA技术进入到计算机辅助工程设计阶段。20世纪80年代初推出的EDA工具则以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电路设计没有完成之前的功能检测等问题。利用这些工具,设计师能在产品制作之前预知产品的功能与性能,能生成制造产品的相关文件,使设计阶段对产品性能的分析前进了一大步。如果说20世纪70年代的自动布局布线的CAD工具代替了设计工作中绘图的重复劳动,那么,20世纪80年代出现的具有自动综合能力的CAE工具则代替了设计师的部分工作,对保证电子系统的设计,制造出最佳的电子产品起着关键的作用。到了20世纪80年代后期,EDA工具已经可以进行设计描述、综合与优化和设计结果验证等工作。CAE阶段的

EDA工具不仅为成功开发电子产品创造了有利条件,而且为高级设计人员的创造性劳动提供了方便。但是,大部分从原理图出发的EDA工具仍然不能适应复杂电子系统的设计要求,而且具体化的元件图形制约着优化设计。

3.20世纪90年代电子系统设计自动化EDA阶段

为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。EDA工具的发展,又为设计师提供了全线EDA工具。这个阶段发展起来的EDA工具,目的是在设计前期将设计师从事的许多高层次设计工作由工具来完成,如可以将用户要求转换为设计技术规范,有效地处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件和算法分解设计等。由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用EDA工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门ASIC和集成系统的设计与验证。

20世纪90年代,设计师逐步从使用硬件转向设计硬件,从单个电子产品开发转向系统级电子产品开发(即片上系统集成,Systemonachip)。因此,EDA工具是以系统级设计为核心,包括系统行为级描述与结构综合、系统仿真与测试验证、系统划分与指标分配、系统决策与文件生成等一整套的电子系统设计自动化工具。这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段。只有具备上述功能的EDA工具,才可能使电子系统工程师在不熟悉各种半导体工艺的情况下,完成电子系统的设计。未来的EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域,随着基于EDA的SOC(单片系统)设计技术的发展,软、硬核功能库的建立,以及基于VHDL的所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。1.3.1大规模可编程逻辑器件

可编程逻辑器件(简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称。现在,FPGA和CPLD器件的应用已十分广泛,它们将随着EDA技术的发展成为电子设计领域的重要角色。1.3EDA技术的主要内容

FPGA在结构上主要分为三个部分,即可编程逻辑单元、可编程输入/输出单元和可编程连线三个部分。CPLD在结构上主要包括三个部分,即可编程逻辑宏单元、可编程输入/输出单元和可编程内部连线。

高集成度、高速度和高可靠性是FPGA/CPLD最明显的特点,其时钟延时可小至ns级。结合其并行工作方式,在超高速应用领域和实时测控方面,FPGA/CPLD有着非常广阔的应用前景。在高可靠性应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。由于FPGA/CPLD的集成规模非常大,因此可利用先进的EDA工具进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构无关,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。它们几乎可用于任何型号和规模的FPGA/CPLD中,从而使得产品设计效率大幅度提高,可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场最宝贵的特征。美国IT公司认为,一个ASIC80%的功能可用IP核等现成逻辑合成。而未来大系统的FPGA/CPLD设计仅仅是各类再应用逻辑与IP核(Core)的拼装,其设计周期将更短。与ASIC设计相比,FPGA/CPLD显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中充分检验过的VHDL设计迅速投产。

对于一个开发项目,究竟是选择FPGA还是选择CPLD呢?主要看开发项目本身的需要。对于普通规模,且产量不是很大的产品项目,通常使用CPLD比较好。对于大规模的逻辑设计、ASIC设计,或单片系统设计,则多采用FPGA。另外,FPGA掉电后将丢失原有的逻辑信息,所以在实用中需要为FPGA芯片配置一个专用ROM。1.3.2硬件描述语言(HDL)

常用的硬件描述语言有VHDL、Verilog和ABEL。

VHDL:作为IEEE的工业标准硬件描述语言,在电子工程领域已成为事实上的通用硬件描述语言。

Verilog:作为IEEE的工业标准硬件描述语言,支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。

ABEL:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。

有专家认为,在新世纪中,VHDL与Verilog语言将承担几乎全部的数字系统设计任务。1.3.3EDA软件开发工具

1.主流厂家的EDA软件工具

目前比较流行的、主流厂家的EDA软件工具有Altera公司的QuartusⅡ、Xilinx的ISE/ISE-WebPACKSeries和Lattice公司的ispLEVER。这些软件的基本功能相同,主要差别在于:①面向的目标器件不一样;②性能各有优劣。

(1) QuartusⅡ:是Altera公司新近推出的EDA软件工具,其设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。第三方的综合工具,如LeonardoSpectrum、SynplifyPro、FPGACompiler Ⅱ有着更好的综合效果,因此通常建议使用这些工具来完成VHDL/Verilog源程序的综合。Quartus Ⅱ可以直接调用这些第三方工具。同样,QuartusⅡ具备仿真功能,但也支持第三方的仿真工具,如Modelsim。此外,QuartusⅡ为AlteraDSP开发包进行系统模型设计提供了集成综合环境,它与MATLAB和DSPBuilder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。QuartusⅡ还可与SOPCBuilder结合,实现SOPC系统开发。

(2) ISE/ISE-WebPACKSeries:是Xilinx公司新近推出的EDA集成软件开发环境(IntegratedSoftwareEnvironment,简称为ISE)。XilinxISE操作简易方便,其提供的各种最新改良功能能解决以往各种设计上的瓶颈,加快了设计与检验的流程,如ProjectNavigator(先进的设计流程导向专业管理程式)让顾客能在同一设计工程中使用Synplicity与Xilinx的合成工具,混合使用VHDL及VerilogHDL源程序,让设计人员能使用固有的IP与HDL设计资源,达至最佳的结果。使用者亦可链接与启动XilinxEmbeddedDesignKit(EDK)XPS专用管理器,以及使用新增的AutomaticWebUpdate功能来监视软件的更新状况,也可让使用者下载更新档案,以令其ISE的设定维持最佳状态。各版本的ISE软件皆支持Windows2000、WindowsXP操作系统。

(3) ispLEVER:是Lattice公司最新推出的一套EDA软件。提供设计输入、HDL综合、验证、器件适配、布局布线、编程和在系统设计调试。设计输入可采用原理图、硬件描述语言、混合输入三种方式。能对所设计的数字电子系统进行功能仿真和时序仿真。软件中含有不同的工具,适用于各个设计阶段。软件包含Synplicity公司的“Synplify”、ExemplarLogic公司的“Leonardo”综合工具和Lattice公司的ispVM器件编程工具。

ispLEVER软件提供给开发者一个有力的工具,用于设计所有Lattice公司可编程逻辑产品。软件不仅支持所有Lattice公司的ispLSI、MACH、ispGDX、ispGAL、GAL器件,还支持Lattice公司新的FPGA、FPSC、ispXPGATM和ispXPLDTM产品系列。这使得ispLEVER的用户能够设计所有Lattice公司的业界领先的FPGA、FPSC、CPLD产品而不必学习新的设计工具。

2.第三方EDA工具

在基于EDA技术的实际开发设计中,由于所选用的EDA工具软件的某些性能受局限或不够好,为了使自己的设计整体性能最佳,往往需要使用第三方工具。业界最流行的第三方EDA工具有:逻辑综合性能最好的Synplify和仿真功能最强大的ModelSim。

(1) Synplify:是Synplicity公司(该公司现在是Cadence的子公司)的著名产品,是一个逻辑综合性能最好的FPGA和CPLD的逻辑综合工具。它支持工业标准的Verilog和VHDL硬件描述语言,能以很高的效率将它们的文本文件转换为高性能的面向流行器件的设计网表;它在综合后还可以生成VHDL和Verilog仿真网表,以便对原设计进行功能仿真;它具有符号化的FSM编译器,以实现高级的状态机转化,并有一个内置的语言敏感的编辑器;它的编辑窗口可以在HDL源文件高亮显示综合后的错误,以便能够迅速定位和纠正所出现的问题;它具有图形调试功能,在编译和综合后可以以图形方式(RTL图、Technology图)观察结果;它具有将VHDL文件转换成RTL图形的功能,这十分有利于VHDL的速成学习;它能够生成针对Actel、Altera、Lattice、Lucent、Philips、Quicklogic、Vantis(AMD)和Xilinx公司器件的网表;它支持VHDL1076—1993标准和Verilog1364—1995标准。

(2) ModelSim:是ModelTechnology公司(该公司现在是MentorGraphics的子公司)的著名产品,支持VHDL和Verilog的混合仿真。使用它可以进行三个层次的仿真,即RTL(寄存器传输层次)、Functional(功能)和Gate-Level(门级)。RTL级仿真仅验证设计的功能,没有时序信息;功能级仿真是经过综合器逻辑综合后,针对特定目标器件生成的VHDL网表进行的仿真;门级仿真是经过布线器、适配器后,对生成的门级VHDL网表进行的仿真,此时在VHDL网表中含有精确的时序延迟信息,因而可以得到与硬件相对应的时序仿真结果。

ModelSimVHDL支持IEEE1076—1987和IEEE1076—1993标准。ModelSimVerilog基于IEEE1364—1995标准,在此基础上针对OpenVerilog标准进行了扩展。此外,ModelSim支持SDF1.0、2.0和2.1,还有VITAL2.2b和VITAL’95。1.3.4EDA实验开发系统

实验开发系统提供芯片下载电路及EDA实验/开发的外围资源(类似于用于单片机开发的仿真器),以供硬件验证用。一般包括:①实验或开发所需的各类基本信号发生模块,包括时钟、脉冲、高低电平等;②FPGA/CPLD输出信息显示模块,包括数码显示、发光管显示、声响指示等;③监控程序模块,提供“电路重构软配置”;④目标芯片适配座以及上面的FPGA/CPLD目标芯片和编程下载电路;⑤其他转换电路系统及各种扩展接口。目前从事EDA实验开发系统研究的院校有:清华大学、北京理工大学、复旦大学、西安电子科技大学、东南大学、杭州电子科技大学等。

EDA技术研究的对象是电子设计的全过程,有系统级、电路级和物理级三个层次的设计。其涉及的电子系统是指从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子系统,因此,EDA技术研究的范畴相当广泛。从专用集成电路(ASIC)开发与应用角度看,EDA软件系统应当包含:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线子模块等。1.4EDA软件系统的构成

(1)设计输入子模块:该模块接受用户的设计描述,并进行语义正确性、语法规则的检查,检查通过后,将用户的设计描述数据转换为EDA软件系统的内部数据格式,存入设计数据库,以便被其他子模块调用。设计输入子模块不仅能接受图形描述输入、硬件描述语言(HDL)描述输入,还能接受图文混合描述输入。该子模块一般包含针对不同描述方式的编辑器,如图形编辑器、文本编辑器等,同时包含对应的分析器。

(2)设计数据库子模块:该模块存放系统提供的库单元以及用户的设计描述和中间设计结果。

(3)分析验证子模块:该模块包括各个层次的模拟验证、设计规则的检查、故障诊断等。

(4)综合仿真子模块:该模块包括各个层次的综合工具。理想的情况是从高层次到低层次的综合仿真全部由EDA工具自动实现。

(5)布局布线子模块:该模块实现由逻辑设计到物理实现的映射,因此与物理实现的方式密切相关。例如,最终的物理实现可以是门阵列、可编程逻辑器件等。由于对应的器件不同,因此各自的布局布线工具会有很大的差异。近些年,许多生产可编程逻辑器件的公司都相继推出适于开发自己公司器件的EDA工具,这些工具一般都具有上面提到的各个模块,且其操作简单,对硬件环境要求低,运行平台是PC机和Windows或WindowsNT操作系统。如Xilinx、Altera、Lattice、Actel、AMD等器件公司都有自己的EDA工具。

EDA工具不只面向ASIC的应用与开发,还涉及电子设计的各个方面,包括数字电路设计、模拟电路设计、数模混合设计、系统设计、仿真验证等。这些工具对硬件环境要求高,一般的运行平台要求是工作站和UNIX操作系统,其功能齐全、性能优良,一般由专门开发EDA软件工具的软件公司提供,如Cadence、MentelGraphics、Viewlogic、Synopsys等软件公司都有其特色工具。

1.设计输入工具的发展趋势

早期EDA工具设计输入普遍采用原理图输入方式,以文字和图形作为设计载体和文件,将设计信息加载到后续的EDA工具中,完成设计分析工作。原理图输入方式的优点是直观,能满足以设计分析为主的一般要求,但是原理图输入方式不适合用EDA综合工具。1.5EDA工具的发展趋势

20世纪80年代末,电子设计开始采用新的综合工具,设计描述开始由原理图设计描述转向以各种硬件描述语言为主的编程方式。因此,用硬件描述语言描述设计,更接近系统行为描述,且便于综合,更适于传递和修改设计信息,还可以建立独立于工艺的设计文件。

很多电子设计师都具有原理图设计的经验,不具有编程经验,所以仍然希望继续在比较熟悉的符号与图形环境中完成设计,而不是利用编程完成设计。为此,EDA公司在20世纪90年代相继推出了一批图形化免编程的设计输入工具,它们允许设计师用他们觉得最方便并熟悉的设计方式,如框图、状态图、真值表和逻辑方程建立设计文件,然后由EDA工具自动生成综合所需的硬件描述语言文件。

2.具有混合信号处理能力的EDA工具

目前,数字电路设计的EDA工具远比模拟电路的EDA工具多。模拟集成电路EDA工具开发的难度较大,但是,由于物理量本身多以模拟形式存在,因此实现高性能的复杂电子系统的设计离不开模拟信号。20世纪90年代以来,EDA工具厂商都比较重视数/模混合信号设计工具的开发。对数字信号的语言描述,IEEE已经制定了VHDL标准,对模拟信号的语言正在制定AHDL标准,此外,还提出了对微波信号的MHDL描述语言。具有混合信号设计能力的EDA工具能处理含有数字信号处理、专用集成电路宏单元、数/模变换和模/数变换模块及各种压控振荡器在内的混合系统设计。美国Cadence、Synopsys等公司开发的EDA工具已经具有混合设计能力。

3.更为有效的仿真工具的发展

通常,可以将电子系统设计的仿真过程分为两个阶段:设计前期的系统级仿真和设计过程的电路级仿真。系统级仿真主要验证系统的功能;电路级仿真主要验证系统的性能,决定怎样实现设计所需的精度。在整个电子设计过程中,仿真是花费时间最多的工作也是占用EDA工具资源最多的一个环节。通常,设计活动的大部分时间在做仿真,如验证设计的有效性、测试设计的精度、处理和保证设计要求等。仿真过程中仿真收敛的快慢同样是关键因素之一。提高仿真的有效性一方面是建立合理的仿真算法,另一方面是系统级仿真中系统级模型的建模及电路级仿真中电路级模型的建模。

4.更为理想的设计综合工具的开发

随着电子系统和电路的集成规模越来越大,几乎不可能直接面向版图做设计,若要找出版图中的错误,更是难上加难。将设计者的精力从繁琐的版图设计和分析中转移到设计前期的算法开发和功能验证上,这是设计综合工具要达到的目的。高层次设计综合工具可以将低层次的硬件设计一直转换到物理级的设计,实现不同层次的不同形式的设计描述转换,通过各种综合算法实现设计目标所规定的优化设计。当然,设计者的经验在设计综合中仍将起到重要的作用,自动综合工具将有效地提高优化设计效率。设计综合工具由最初的只能实现逻辑综合,逐步发展到可以实现设计前端的综合,直到设计后端的版图综合以及测试综合的理想且完整的综合工具。设计前端的综合工具,可以实现从算法级的行为描述到寄存器传输级结构描述的转换,给出满足约束条件的硬件结构。在确定寄存器传输结构描述后,由逻辑综合工具完成硬件的门级结构的描述,逻辑综合的结果将作为版图综合的输入数据,进行版图综合。版图综合则是将门级和电路级的结构描述转换成物理版图的描述,版图综合时将通过自动交互的设计环境,实现按面积、速度和功率完成布局布线的优化,实现最佳的版图设计。人们希望将设计测试工作尽可能地提前到设计前期,以便缩短设计周期,减少测试费用,因此测试综合贯穿在设计过程的始终。测试综合时可以消除设计中的冗余逻辑,诊断不可测的逻辑结构,自动插入可测性结构,生成测试向量;当整个电路设计完成时,测试设计也随之完成。面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、快捷的EDA工具,使用统一的集成化设计环境,改变传统设计思路,即优先考虑具体物理实现方式,而将精力集中到设计构思、方案比较和寻找优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。今天的EDA工具将向着功能强大、简单易学、使用方便的方向发展。1.6.1FPGA/CPLD工程设计流程

假设我们需要建造一栋楼房,第一,我们需要进行“建筑设计”——用各种设计图纸把我们的建筑设想表示出来;第二,我们要进行“建筑预算”——根据投资规模、拟建楼房的结构及有关建房的经验数据等计算需要多少基本建筑材料(如砖、水泥、预制块、门、窗户等);第三,根据建筑设计和建筑预算进行“施工设计”——这些砖、水泥、预制块、门、窗户等具体砌在房子的什么部位,相互之间怎样连接;1.6EDA的工程设计流程第四,根据施工图进行“建筑施工”——将这些砖、水泥、预制块、门、窗户等按照规定施工建成一栋楼房;最后,施工完毕后,还要进行“建筑验收”——检验所建楼房是否符合设计要求。同时,在整个建设过程中,我们可能需要做出某些“建筑模型”或进行某些“建筑实验”。那么,对于目标器件为FPGA和CPLD的VHDL设计,其工程设计步骤如何呢?FPGA/CPLD的工程设计流程与上面所描述的基建流程类似:第一,需要进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来;第二,要进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系列的基本逻辑电路及对应关系(电路分解);第三,要进行“目标器件的布线/适配”——在选定的目标器件中建立这些基本逻辑电路及对应关系(逻辑实现);第四,目标器件的编程/下载——将前面的软件设计经过编程变成具体的设计系统(物理实现);最后,要进行硬件仿真/硬件测试——验证所设计的系统是否符合设计要求。同时,在设计过程中要进行有关“仿真”——模拟有关设计结果,看是否与设计构想相符。综上所述,FPGA/CPLD的工程设计的基本流程如图1.1所示,现具体阐述如下。图1.1FPGA/CPLD工程设计流程图

1.源程序的编辑和编译

利用EDA技术进行一项工程设计,首先需利用EDA工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来,进行排错编译,变成VHDL文件格式,为进一步的逻辑综合做准备。常用的源程序输入方式有三种。

(1)原理图输入方式:利用EDA工具提供的图形编辑器以原理图的方式进行输入。原理图输入方式比较容易掌握,直观且方便,所画的电路原理图(请注意,这种原理图与利用Protel画的原理图有本质的区别)与传统的器件连接方式完全一样,很容易被人接受,而且编辑器中有许多现成的单元器件可以利用,自己也可以根据需要设计元件。然而原理图输入法的优点同时也是它的缺点:①随着设计规模的增大,设计的易读性迅速下降,对于图中密密麻麻的电路连线,极难搞清电路的实际功能;②一旦完成,电路结构的改变就十分困难,因而几乎没有可再利用的设计模块;③移植困难、入档困难、交流困难、设计交付困难,因为不可能存在一个标准化的原理图编辑器。

(2)状态图输入方式:以图形的方式表示状态图进行输入。当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成VHDL程序。这种设计方式简化了状态机的设计,比较流行。

(3) VHDL软件程序的文本方式:最一般化、最具普遍性的输入方法,任何支持VHDL的EDA工具都支持文本方式的编辑和编译。

2.逻辑综合和优化

欲把VHDL的软件设计与硬件的可实现性挂钩,需要利用EDA软件系统的综合器进行逻辑综合。

所谓逻辑综合,就是将电路的高级语言描述(如HDL、原理图或状态图形的描述)转换成低级的,可与FPGA/CPLD或构成ASIC的门阵列基本结构相映射的网表文件。逻辑映射的过程,就是将电路的高级描述,针对给定硬件结构组件,进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件的过程。网表文件就是按照某种规定描述电路的基本组成及如何相互连接的文件。由于VHDL仿真器的行为仿真功能是面向高层次的系统仿真,只能对VHDL的系统描述作可行性的评估测试,不针对任何硬件系统,因此基于这一仿真层次的许多VHDL语句不能被综合器所接受。这就是说,这类语句的描述无法在硬件系统中实现(至少是现阶段),这时,综合器不支持的语句在综合过程中将被忽略掉。综合器对VHDL源文件的综合是针对某一PLD供应商的产品系列的,因此,综合后的结果是可以为硬件系统所接受的,具有硬件可实现性。

3.目标器件的布线/适配

所谓逻辑适配,就是将由综合器产生的网表文件针对某一具体的目标器进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置于指定的目标器件中,产生最终的下载文件,如JEDEC格式的文件。

适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目标器件系列。对于一般的可编程模拟器件所对应的EDA软件来说,一般仅需包含一个适配器就可以了,如Lattice的PAC-DESIGNER。通常,EDA软件中的综合器可由专业的第三方EDA公司提供,而适配器则需由FPGA/CPLD供应商自己提供,因为适配器的适配对象直接与器件结构相对应。

4.目标器件的编程/下载

如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA/CPLD布线/适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片FPGA或CPLD中。

5.设计过程中的有关仿真

设计过程中的仿真有三种,分别是行为仿真、功能仿真和时序仿真。

所谓行为仿真,就是将VHDL设计源程序直接送到VHDL仿真器中所进行的仿真。该仿真只是根据VHDL的语义进行的,与具体电路没有关系。在这种仿真中,可以充分发挥VHDL中的适用于仿真控制的语句及有关的预定义函数和库文件。所谓功能仿真,就是将综合后的VHDL网表文件再送到VHDL仿真器中所进行的仿真。这时的仿真仅对VHDL描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件的硬件特性,如延时特性。该仿真的结果与门级仿真器所做的功能仿真结果基本一致。综合之后的VHDL网表文件采用VHDL语法,首先描述了最基本的门电路,然后将这些门电路用例化语句连接起来。描述的电路与生成的EDIF/XNF等网表文件一致。所谓时序仿真,就是将布线器/适配器所产生的VHDL网表文件送到VHDL仿真器中所进行的仿真。该仿真已将器件特性考虑进去了,因此可以得到精确的时序仿真结果。

布线/适配处理后生成的VHDL网表文件中包含了较为精确的延时信息,网表文件中描述的电路结构与布线/适配后的结果是一致的。需要注意的是,图1.1中有两个仿真器,一个是VHDL仿真器,另一个是门级仿真器,它们都能进行功能仿真和时序仿真。所不同的是仿真用的文件格式不同,即网表文件不同。所谓的网表(Netlist),是特指电路网络,网表文件描述了一个电路网络。目前流行多种网表文件格式,其中最通用的是EDIF格式的网表文件。XilinxXNF网表文件格式也很流行,不过一般只在使用Xilinx的FPGA/CPLD时才会用到XNF格式。VHDL文件格式也可以用来描述电路网络,即采用VHDL语法描述各级电路互连,称之为VHDL网表。

6.硬件仿真/硬件测试

所谓硬件仿真,就是在ASIC设计中,常利用FPGA对系统的设计进行功能检测,通过后再将其VHDL设计以ASIC形式实现的过程。

所谓硬件测试,就是把FPGA或CPLD直接用于应用系统的设计中,将下载文件下载到FPGA后,对系统设计进行功能检测的过程。硬件仿真和硬件测试的目的,是为了在更真实的环境中检验VHDL设计的运行情况,特别是对于设计上不是十分规范、语义上含有一定歧义的VHDL程序。一般的仿真器包括VHDL行为仿真器和VHDL功能仿真器,它们对于同一VHDL设计的“理解”,即仿真模型的产生,与VHDL综合器的“理解”,即综合模型的产生,常常是不一致的。此外,由于目标器件功能的可行性约束,综合器对于设计的“理解”常在一有限范围内选择,而VHDL仿真器的“理解”是纯软件行为,其“理解”的选择范围要宽得多。这种“理解”的偏差势必导致仿真结果与综合后实现的硬件电路在功能上的不一致。当然,还有许多其他的因素也会产生这种不一致。由此可见,VHDL设计的硬件仿真和硬件测试是十分必要的。1.6.2ASIC工程设计流程

ASIC(ApplicationSpecificIntegratedCircuits,专用集成电路)是相对于通用集成电路而言的,ASIC主要指用于某一专门用途的集成电路。ASIC大致可分为数字ASIC、模拟ASIC和数/模混合ASIC。

对于数字ASIC,其设计方法有多种。按版图结构及制造方法分,有半定制(Semi-custom)和全定制(Full-custom)两种方法。全定制方法是一种基于晶体管级的,手工设计版图的制造方法。设计者需要使用全定制版图设计工具来完成。设计者必须考虑晶体管版图的尺寸、位置、互连线等技术细节,并据此确定整个电路的布局布线,以使设计的芯片的性能、面积、功耗、成本达到最优。但全定制设计中,人工参与的工作量大,设计周期长,而且容易出错。全定制方法在通用中小规模集成电路设计、模拟集成电路,包括射频级集成器件的设计,以及有特殊性能要求和功耗要求的电路或处理器中的特殊功能模块电路的设计中被广泛采用。半定制法是一种约束设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。门阵列(GateArray)法是较早使用的一种ASIC设计方法,又称为母片(MasterSlice)法。它预先设计和制造好各种规模的母片,其内部成行成列,并等间距地排列着基本单元的阵列。除金属连线及引线孔以外的各层版图图形均固定不变,只剩下一层或两层金属铝连线及孔的掩膜需要根据用户电路的不同而定制。每个基本单元是以三对或五对晶体管组成,基本单元的高度、宽度都是相等的,并按行排列。设计人员只需要设计到电路一级,将电路的网表文件交给IC厂家即可。IC厂家根据网表文件描述的电路连接关系,完成母片上电路单元的布局及单元间的连线。然后对这部分金属线及引线孔的图形进行制版、流片。这种设计方式涉及的工艺少、模式规范、设计自动化程度高、设计周期短、造价低,且适合于小批量的ASIC设计。门阵列法的缺点是芯片面积利用率低,灵活性差,对设计限制得过多。标准单元(StandardCell)法必须预建完善的版图单元库,库中包括以物理版图级表达的各种电路元件和电路模块“标准单元”,可供用户调用以设计不同的芯片。这些单元的逻辑功能、电性能及几何设计规则等都已经过分析和验证。与门阵列单元不同的是,标准单元物理版图将最低层的各层版图设计都包括在内。在设计布图时,从单元库中调出标准单元按行排列,行与行之间留有布线通道,同行或相邻行的单元相连可通过单元行的上、下通道完成。隔行单元之间的垂直方向互连则必须借用事先预留在“标准单元”内部的走线道(feed-through)或单元间设置的“走线道单元”(feed-throughcell)或“空单元”(emptycell)来完成。标准单元设计ASIC的优点是:

(1)比门阵列法具有更加灵活的布图方法;

(2)“标准单元”预先存在单元库中,可以极大地提高设计效率;

(3)可以从根本上解决布通率问题,可以极大地提高设计效率;

(4)可以使设计者更多地从设计项目的高层次关注电路的优化和性能问题;

(5)标准单元设计模式自动化程度高、设计周期短、设计效率高。十分适合利用功能强大的EDA工具进行ASIC设计。因此标准单元法是目前ASIC设计中应用最广泛的设计方法之一。但标准单元法存在的问题是,当工艺更新之后,标准单元库要随之更新,这是一项十分繁重的工作。

门阵列法或标准单元法设计ASIC共存的缺点是无法避免冗杂繁复IC制造的后向流程,而且与IC设计工艺紧密相关,最终的设计也需要集成电路制造厂家来完成,一旦设计有误,将导致巨大的损失。另外还有设计周期长、基础投入大、更新换代难等方面的缺陷。可编程逻辑器件法是用可编程逻辑器件设计用户定制的数字电路系统。可编程逻辑器件芯片实质上是门阵列及标准单元设计的延伸和发展。可编程逻辑器件是一种半定制的逻辑芯片,但与门阵列标准单元法不同,芯片内的硬件资源和连线资源是由厂家预先制定好的,可以方便地通过编程下载获得重新配置。这样,用户就可以借助EDA软件和编程器在实验室或车间中自行进行设计、编程或电路更新。如果发现错误,则可以随时更改,完全不必关心器件实现的具体工艺。用可编程逻辑器件法设计ASIC(或称可编程ASIC),设计效率大为提高,上市的时间大为缩短。当然,这种用可编程逻辑器件直接实现的ASIC在性能、速度和单位成本上,相对于全定制或标准单元法设计的ASIC,不具备竞争性。此外,也不可能用可编程ASIC去取代通用产品,如CPU、单片机、存储器等的应用。目前,为了降低单位成本,可以在用可编程逻辑器件实现设计后,用特殊的方法转成ASIC电路,如Altera的部分FPGA器件在设计成功后可以通过HardCopy技术转成对应的

门阵列ASIC产品。

一般的ASIC从设计到制造,其工程设计流程如下。

1.系统规格说明

系统规格说明(SystemSpecification)就是分析并确定整个系统的功能、要求达到的性能、物理尺寸,确定采用何种制造工艺、设计周期和设计费用,最终建立系统的行为模型,进行可行性验证。

2.系统划分

系统划分(SystemDivision)就是将系统分割成各个功能子模块,给出子模块之间的信号连接关系,并验证各个功能块的模型,确定系统的关键时序。

3.逻辑设计与综合

逻辑设计与综合(LogicDesignandSynthesis)就是将划分的各个子模块用文本(网表或硬件描述语言)、原理图等进行具体逻辑描述。对于硬件描述语言描述的设计模块,需要用综合器进行综合,以获得具体的电路网表文件,对于原理图等描述方式描述的设计模块,经简单编译后可得到逻辑网表文件。

4.综合后仿真

综合后仿真(SimulateafterSynthesis)就是根据逻辑综合后得到网表文件,并进行仿真验证。

5.版图设计

版图设计(LayoutDesign)就是将逻辑设计中每一个逻辑元件、电阻、电容等以及它们之间的连线转换成集成电路制造所需要的版图信息。可手工或自动进行版图规划(Floorplanning)、布局(Placement)、布线(Routing)。这一步由于涉及逻辑设计到物理实现的映射,又称为物理设计(PhysicalDesign)。

6.版图验证

版图验证(LayoutVerification)主要包括:版图原理图比对(LVS)、设计规则检查(DRC)、电气规则检查(ERC)。在手工版图设计中,这是非常重要的一步。

7.参数提取与后仿真

版图验证完毕后,需进行版图的电路网表提取(NE)和参数提取(PE),把提取出的参数反注(Back-Annotate)至网表文件,进行最后一步仿真验证工作。

8.制版、流片

将设计结果送IC生产线进行制版、光罩和流片,进行实验性生产。

9.芯片测试

测试芯片是否符合设计要求,并评估成品率。1.7.1数字系统的设计模型

数字系统指的是交互式的、以离散形式表示的,具有存储、传输、信息处理能力的逻辑子系统的集合。用于描述数字系统的模型有多种,各种模型描述数字系统的侧重点不同。下面介绍一种普遍采用的模型。这种模型根据数字系统的定义,将整个系统划分为两个模块或两个子系统:数据处理子系统和控制子系统,如图1.2所示。1.7数字系统的设计图1.2数字系统的设计模型数据处理子系统主要完成数据的采集、存储、运算和传输。数据处理子系统主要由存储器、运算器、数据选择器等功能电路组成。数据处理子系统与外界进行数据交换,在控制子系统(或称控制器)发出的控制信号作用下,数据处理子系统将进行数据的存储和运算等操作。数据处理子系统将接收由控制器发出的控制信号,同时将自己的操作进程或操作结果作为条件信号传送给控制器。应当根据数字系统实现的功能或算法设计数据处理子系统。控制子系统是执行数字系统算法的核心,具有记忆功能,因此控制子系统是时序系统。控制子系统由组合逻辑电路和触发器组成,与数据处理子系统共用时钟。控制子系统的输入信号是外部控制信号和由数据处理子系统送来的条件信号。控制子系统按照数字系统设计方案要求的算法流程,在时钟信号的控制下进行状态的转换,同时产生与状态和条件信号相对应的输出信号,该输出信号将控制数据处理子系统的具体操作。应当根据数字系统功能及数据处理子系统的需求设计控制子系统。把数字系统划分成数据处理子系统和控制子系统进行设计,这只是一种手段,不是目的。它用来帮助设计者有层次地理解和处理问题,进而获得清晰、完整、正确的电路图。因此,数字系统的划分应当遵循自然、易于理解的原则。

设计一个数字系统时,采用该模型的优点是:

(1)把数字系统划分为控制子系统和数据处理子系统两个主要部分,使设计者面对的电路规模减小,二者可以分别设计。

(2)数字系统中控制子系统的逻辑关系比较复杂,将其独立划分出来后,可突出设计重点和分散设计难点。

(3)当数字系统划分为控制子系统和数据处理子系统后,逻辑分工清楚,各自的任务明确,这可以使电路的设计、调测和故障处理都比较方便。但采用该模型设计一个数字系统时,必须先分析和找出实现系统逻辑的算法,根据具体的算法要求提出系统内部的结构要求,再根据各个部分分担的任务划分出控制子系统和数据处理子系统。算法不同,系统的内部结构不同,控制子系统和数据处理子系统电路也不同。有时,控制子系统和数据处理子系统的界限划分也比较困难,需要反复比较和调整才能确定。1.7.2数字系统的设计方法

数字系统的设计一般采用自顶向下、由粗到细、逐步求精的方法。自顶向下是指将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大,则还需将子系统进一步分解为更小的子系统和模块,层层分解,直至整个系统中各子系统关系合理,并便于逻辑电路级的设计和实现为止。采用该方法设计时,高层设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细的描述在下一设计层次说明,最底层的设计才涉及具体的寄存器和逻辑门电路等实现方式的描述。采用自顶向下的设计方法有如下优点:

(1)自顶向下设计方法是一种模块化设计方法。对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯。由于高层设计与器件无关,因此设计易于在各种集成电路工艺或可编程器件之间移植。

(2)适合多个设计者同时进行设计。随着技术的不断进步,许多设计由一个设计者已无法完成,由多个设计者分工协作完成一项设计的情况越来越多。在这种情况下,应用自顶向下的设计方法便于由多个设计者同时进行设计,对设计任务进行合理分配,用系统工程的方法对设计进行管理。针对具体的设计,实施自顶向下的设计方法的形式会有所不同,但均需遵循两条原则:逐层分解功能和分层次进行设计。同时,应在各个设计层次上,考虑相应的仿真验证问题。1.7.3数字系统的设计准则

进行数字系统设计时,通常需要考虑多方面的条件和要求,如设计的功能和性能要求,元器件的资源分配和设计工具的可实现性,系统的开发费用和成本等。虽然具体设计的条件和要求千差万别,实现的方法也各不相同,但数字系统设计还是具备一些共同的方法和准则的。

1.分割准则

自顶向下的设计方法或其他层次化的设计方法,需要对系统功能进行分割,然后用逻辑语言进行描述。分割过程中,若分割过粗,则不易用逻辑语言表达;若分割过细,则带来不必要的重复和繁琐。因此,分割的粗细需要根据具体的设计和设计工具情况而定。掌握分割程度需遵循的原则为:分割后最底层的逻辑块应适合用逻辑语言进行表达;相似的功能应该设计成共享的基本模块;接口信号尽可能少;同层次的模块之间,在资源和I/O分配上,尽可能平衡,以使结构匀称;模快的划分和设计,应尽可能做到通用性好,易于移植。

2.系统的可观测性

在系统设计中,应该同时考虑功能检查和性能的测试,即系统观测性的问题。一些有经验的设计者会自觉地在设计系统的同时设计观测电路,即观测器,指示系统内部的工作状态。

建立观测器,应遵循的原则为:具有系统的关键点信号,如时钟、同步信号和状态等信号;具有代表性的节点和线路上的信号;具备简单的“系统工作是否正常”的判断能力。

3.同步和异步电路

异步电路会造成较大延时和逻辑竞争,容易引起系统的不稳定,而同步电路则是按照统一的时钟工作,稳定性好。因此,在设计时应尽可能采用同步电路进行设计,避免使用异步电路。在必须使用异步电路时,应采取措施来避免竞争和增加稳定性。

4.最优化设计

由于可编程器件的逻辑资源、连接资源和I/O资源有限,器件的速度和性能也是有限的,用器件设计系统的过程相当于求最优解的过程,因此,需要给定两个约束条件:边界条件和最优化目标。

所谓边界条件,是指器件的资源及性能限制。最优化目标有多种,设计中常见的最优化目标有:器件资源利用率最高;系统工作速度最快,即延时最小;布线最容易,即可实现性最好。具体设计中,各个最优化目标间可能会产生冲突,这时应满足设计的主要要求。

5.系统设计的艺术

一个系统的设计,通常需要经过反复的修改、优化才能达到设计的要求。一个好的设计,应该满足“和谐”的基本特征,对数字系统可以根据几点做出判断:①设计是否总体上流畅,无拖泥带水的感觉;②资源分配、I/O分配是否合理,设计上和性能上是否有瓶颈,系统结构是否协调;③是否具有良好的可观测性;④是否易于修改和移植;⑤器件的特点是否能得到充分的发挥。1.7.4数字系统的设计步骤

1.系统任务分析

数字系统设计中的第一步是明确系统的任务。在设计任务书中,可用各种方式提出对整个数字系统的逻辑要求,常用的方式有自然语言、逻辑流程图、时序图或几种方法的结合。当系统较大或逻辑关系较复杂时,系统任务(逻辑要求)逻辑的表述和理解都不是一件容易的工作。所以,分析系统的任务必须细致、全面,不能有理解上的偏差和疏漏。

2.确定逻辑算法

实现系统逻辑运算的方法称为逻辑算法,也简称为算法。一个数字系统的逻辑运算往往有多种算法,设计者的任务不但是要找出各种算法,还必须比较优劣,取长补短,从中确定最合理的一种。数字系统的算法是逻辑设计的基础,算法不同,则系统的结构也不同,算法的合理与否直接影响系统结构的合理性。确定算法是数字系统设计中最具创造性的一环,也是最难的一步。

3.建立系统及子系统模型

当算法明确后,应根据算法构造系统的硬件框架(也称为系统框图),将系统划分为若干个部分,各部分分别承担算法中不同的逻辑操作功能。如果某一部分的规模仍嫌大,则需进一步划分。划分后的各个部分应逻辑功能清楚,规模大小合适,便于进行电路级的设计。

4.系统(或模块)逻辑描述

当系统中各个子系统(指最低层子系统)和模块的逻辑功能和结构确定后,则需采用比较规范的形式来描述系统的逻辑功能。设计方案的描述方法可以有多种,常用的有方框图、流程图和描述语言。

对系统的逻辑描述可先采用较粗略的逻辑流程图,再将逻辑流程图逐步细化为详细逻辑流程图,最后将详细逻辑流程图表示成与硬件有对应关系的形式,为下一步的电路级设计提供依据。

5.逻辑电路级设计及系统仿真

电路级设计是指选择合理的器件和连接关系以实现系统逻辑要求。电路级设计的结果常采用两种方式来表达:电路图方式和硬件描述语言方式。EDA软件允许以这两种方式输入,以便作后续的处理。

当电路设计完成后必须验证设计是否正确。在早期,只能通过搭试硬件电路才能得到设计的结果。目前,数字电路设计的EDA软件都具有仿真功能,先通过系统仿真,当系统仿真结果正确后再进行实际电路的测试。由EDA软件验证的结果十分接近实际结果,因此,可极大地提高电路设计的效率。

6.系统的物理实现

物理实现是指用实际的器件实现数字系统的设计,用仪表测量设计的电路是否符合设计要求。现在的数字系统往往采用大规模和超大规模集成电路,由于器件集成度高、导线密集,因而一般在电路设计完成后即设计印刷电路板,在印刷电路板上组装电路进行测试。需要注意的是,印刷电路板本身的物理特性也会影响电路的逻辑关系。

1.EDA技术将广泛应用于高校电类专业的实践教学工作中

用VHDL语言可以对各种数字集成电路芯片进行方便的描述,生成元件后可作为一个标准元件进行调用。同时,借助于VHDL开发设计平台,可以进行系统的功能仿真和时序仿真;借助于实验开发系统可以进行硬件功能验证等,因而,可大大地简化数字电子技术的实验,并可根据学生的设计不受限制地开展各种实验。1.8EDA技术的应用展望对于电子技术课程设计,特别是数字系统性的课题,在EDA实验室不需添加任何新的东西,即可设计出各种比较复杂的数字系统,并且借助于实验开发系统可以方便地进行硬件验证,如设计频率计、交通控制灯、秒表等。

自1997年全国第三届电子技术设计竞赛采用FPGA/CPLD器件以来,FPGA/CPLD已被越来越多的选手选用,并且如果不借助于FPGA/CPLD器件可能根本无法实现给定的课题。因此,EDA技术将成为各种电子技术设计竞赛选手必须掌握的基本技能与制胜的法宝。现代电子产品的设计离不开EDA技术,作为信息工程类专业的毕业生,借助于EDA技术在毕业设计中可以快速、经济地设计各种高性能的电子系统,并且很容易实现、修改及完善。

在整个大学学习期间,信息工程类专业的学生可以分阶段、分层次地进行EDA技术的学习和应用,从而迅速掌握并有效利用这一新技术,大大提高动手实践能力、创新能力和计算机应用能力。

2.EDA技术将广泛应用于科研工作和新产品的开发中

由于可编程逻辑器件性能价格比的不断提高,开发软件功能的不断完善,因此EDA技术具有用软件的方式设计硬件,可用有关软件进行各种仿真,系统可现场编程、在线升级,整个系统可集成在一个芯片上等特点,这将使其广泛应用于科研工作和新产品的开发工作中。

3.EDA技术将广泛应用于专用集成电路的开发中

可编程器件制造厂家可按照一定的规格以通用器件形式大量生产,用户可按通用器件从市场上选购,然后按自己的要求通过编程实现专用集成电路的功能。因此,对于集成电路制造技术与世界先进的集成电路制造技术尚有一定差距的我国,开发具有自主知识产权的专用集成电路,已成为相关专业人员的重要任务。

4.EDA技术将广泛应用于传统机电设备的升级换代和技术改造中

如果利用EDA技术进行传统机电设备的电气控制系统的重新设计或技术改造,则不但设计周期短、设计成本低,而且将提高产品或设备的性能,缩小产品体积,提高产品的技术含量,提高产品的附加值。2.1可编程逻辑器件概述

2.2Lattice公司的CPLD和FPGA器件

2.3Altera公司的CPLD和FPGA器件

2.4Xilinx公司的CPLD和FPGA器件

2.5CPLD和FPGA的编程与配置

2.6FPGA和CPLD的开发应用选择

第2章大规模可编程逻辑器件

可编程逻辑器件(ProgrammableLogicDevices,简称PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。它诞生于20世纪70年代,在20世纪80年代以后,随着集成电路技术和计算机技术的发展而迅速发展。自问世以来,PLD经历了从PROM、PLA、PAL、GAL到FPGA、ispLSI等高密度PLD的发展过程。在此期间,PLD的集成度、速度不断提高,功能不断增强,结构趋于更合理,使用变得更灵活方便。2.1可编程逻辑器件概述

PLD的出现,打破了由中小规模通用型集成电路和大规模专用集成电路垄断的局面。与中小规模通用型集成电路相比,用PLD实现数字系统,有集成度高、速度快、功耗小、可靠性高等优点。与大规模专用集成电路相比,用PLD实现数字系统,有研制周期短、先期投资少、无风险、修改逻辑设计方便、小批量生产成本低等优势。可以预见,在不久的将来,PLD将在集成电路市场占统治地位。

随着可编程逻辑器件性能价格比的不断提高,EDA开发软件的不断完善,现代电子系统的设计将越来越多地使用可编程逻辑器件,特别是大规模可编程逻辑器件。如果说一个电子系统可以像积木块一样堆积起来的话,那么现在构成许多电子系统仅仅需要三种标准的积木块——微处理器、存储器和可编程逻辑器件,甚至只需一块大规模可编程逻辑器件。2.1.1PLD的发展进程

最早的可编程逻辑器件出现在20世纪70年代初,主要是可编程只读存储器(PROM)和可编程逻辑阵列(PLA)。20世纪70年代末出现了可编程阵列逻辑(ProgrammableArray

Logic,简称PAL)器件。20世纪80年代初期,美国Lattice公司推出了一种新型的PLD器件,称为通用阵列逻辑(GenericArrayLogic,简称GAL),一般认为它是第二代PLD器件。随着技术进步,生产工艺不断改进,器件规模不断扩大,逻辑功能不断增强,各种可编程逻辑器件如雨后春笋般涌现,如PROM、EPROM、EEPROM等。随着半导体工艺不断完善,用户对器件集成度要求不断提高,1985年,美国Altera公司在EPROM和GAL器件的基础上,首先推出了可擦除可编程逻辑器件EPLD(ErasablePLD),其基本结构与PAL/GAL器件相仿,但其集成度要比GAL器件高得多。而后Altera、Atmel、Xilinx等公司不断推出新的EPLD产品,它们的工艺不尽相同,结构不断改进,形成了一个庞大的群体。但是从广义来讲,可擦除可编程逻辑器件(EPLD)可以包括GAL、EEPROM、FPGA、ispLSI或ispEPLD等器件。最初,一般把器件的可用门数超过500门的PLD称为EPLD。后来,器件的密度越来越大,许多公司把原来称为EPLD的产品都称为复杂可编程逻辑器件CPLD(ComplexProgrammableLogicDevices)。现在,一般把所有超过某一集成度的PLD器件都称为CPLD。

当前CPLD的规模已从取代PAL和GAL的500门以下的芯片系列,发展到5000门以上,现已有上百万门的CPLD芯片系列。随着工艺水平的提高,在增加器件容量的同时,为提高芯片的利用率和工作频率,CPLD从内部结构上作了许多改进,出现了多种不同的形式,功能更加齐全,应用不断扩展。在EPROM基础上出现的高密度可编程逻辑器件称为EPLD或CPLD。在20世纪80年代中期,美国Xilinx公司首先推出了现场可编程门阵列FPGA(FieldProgrammableGateArray)器件。FPGA器件采用逻辑单元阵列结构和静态随机存取存储器工艺,设计灵活,集成度高,可无限次反复编程,并可现场模拟调试验证。FPGA器件及其开发系统是开发大规模数字集成电路的新技术。它利用计算机辅助设计,绘制出实现用户逻辑的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成配置FPGA器件的数据文件,对FPGA器件初始化。这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。由于FPGA器件具有高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证等优点,因此使用FPGA器件,一般可在几天到几周内完成一个电子系统的设计和制作,可以缩短研制周期,达到快速上市和进一步降低成本的要求。在20世纪90年代初,Lattice公司又推出了在系统可编程大规模集成电路(ispLSI)。所谓“在系统可编程特性”(InSystemProgrammability,缩写为ISP),是指在用户自己设计的目标系统中或线路板上,为重新构造设计逻辑而对器件进行编程或反复编程的能力。在系统编程器件的基本特征是利用器件的工作电压(一般为5V),在器件安装到系统板上后,不需要将器件从电路板上卸下,可对器件进行直接配置,并可改变器件内的设计逻辑,满足原有的PCB布局要求。采用ISP技术之后,硬件设计可以变得像软件设计那样灵活而易于修改,硬件的功能也可以实时地加以更新或按预定的程序改变配置。这不仅扩展了器件的用途,缩短了系统的设计和调试周期,而且还省去了对器件单独编程的环节,因而也省去了器件编程设备,简化了目标系统的现场升级和维护工作。在系统可编程的概念,首先由美国的Lattice公司提出,而且,该公司已将其独特的ISP技术应用到高密度可编程逻辑器件中,形成了ispLSI(insystemprogrammableLargeScaleIntegration,在系统可编程大规模集成)和pLSI(可编程大规模集成)逻辑器件系列。ispLSI在功能和参数方面都与相对应的pLSI器件相兼容,只是增加了5V在系统可编程与反复可编程能力。ispLSI和pLSI产品既有低密度PLD使用方便、性能可靠等特点,又有FPGA器件的高密度和灵活性,具有确定可预知的延时、优化的通用逻辑单元、高效的全局布线区、灵活的时钟机制、标准的边界扫描功能、先进的制造工艺等优势,其系统速度可达154MHz,逻辑集成度可达1000~14000门,是一种比较先进的可编程专用集成电路。自进入21世纪以来,可编程逻辑集成电路技术进入飞速发展时期,器件的可用逻辑门数超过了百万门甚至达到上千万门,器件的最高频率超过百兆赫兹甚至达到四五百兆赫兹,内嵌的功能模块越来越专用和复杂,比如出现了乘法器、RAM、CPU核、DSP核和PLL等,同时出现了基于FPGA的可编程片上系统SOPC(SystemOnaProgrammableChip),有时又称为基于FPGA的嵌入式系统。2.1.2PLD的分类方法

1.从结构的复杂度分类

从结构的复杂度上一般可将PLD分为简单PLD和复杂PLD(CPLD),或分为低密度PLD和高密度PLD(HDPLD)。通常,当PLD中的等效门数超过500门时,则认为它是高密度

PLD。传统的PAL和GAL是典型的低密度PLD,其余(如EPLD、FPGA和pLSI/ispLSI等)则称为HDPLD或CPLD。

2.从互连结构上分类

从互连结构上可将PLD分为确定型和统计型两类。

确定型PLD提供的互连结构每次用相同的互连线实现布线,所以,这类PLD的定时特性常常可以从数据手册上查阅而事先确定。这类PLD是由PROM结构演变而来的,目前除了FPGA器件外,基本上都属于这一类结构。

统计型结构是指设计系统每次执行相同的功能,却能给出不同的布线模式,一般无法确切地预知线路的延时。所以,设计系统必须允许设计者提出约束条件,如关键路径的延时和关联信号的延时差等。这类器件的典型代表是FPGA系列。

3.从可编程特性上分类

从可编程特性上可将PLD分为一次可编程和重复可编程两类。一次可编程的典型产品是PROM、PAL和熔丝型FPGA,其他大多是重复可编程的。其中,用紫外线擦除的产品的编程次数一般在几十次的量级,采用电擦除方式的产品的编程次数稍多些,采用E2CMOS工艺的产品,擦写次数可达上千次,而采用SRAM(静态随机存取存储器)结构产品,则被认为可实现无限次的编程。

4.从可编程元件上分类

最早的PLD器件(如PAL)大多采用的是TTL工艺,但后来的PLD器件(如GAL、EPLD、FPGA及pLSI/ISP器件)都采用MOS工艺(如NMOS、CMOS、E2CMOS等)。目前,一般有五种编程元件:①熔丝型开关(一次可编程,要求大电流);②可编程低阻电路元件(多次可编程,要求中电压);③EPROM的编程元件(需要有石英窗口,紫外线擦除);

④EEPROM的编程元件;⑤基于SRAM的编程元件。2.1.3常用CPLD和FPGA标识的含义

1.CPLD和FPGA标识概说

CPLD/FPGA产品上的标识大概可分为以下几类:

(1)用于说明生产厂家的。如Lattice、Altera、Xilinx是其公司名称。

(2)注册商标。如MAX是为Altera公司其CPLD产品MAX系列注册的商标。

(3)产品型号。如EPM7128SLC84-15,是Altera公司的一种CPLD(EPLD)的型号,是需要重点掌握的。

(4)产品序列号。用于说明产品生产过程中的编号,是产品身份的标志,相当于人的身份证。

(5)产

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论