《PLD技术概述.doc》由会员分享,可在线阅读,更多相关《PLD技术概述.doc(12页珍藏版)》请在三一办公上搜索。
1、第1章 PLD技术概述本章将介绍PLD发展简史、PLD设计流程、硬件描述语言和常用EDA工具。1.1 PLD发展简史当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代,它由早期的电子管、晶体管、小中规模集成电路,发展到超大规模集成电路(VLSI)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路ASIC(Application Specific IC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且能立即
2、投入实际应用之中。因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)3种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与-或”表达式来描述,所以, PLD能以乘积之和的形式完成大量的组合逻辑功能。这一阶段的产品主要有PA
3、L(可编程阵列逻辑)和GAL(通用阵列逻辑)。 PAL由一个可编程的与阵列和一个固定的或阵列构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个与阵列和一个或阵列构成,但是这两个阵列的连接关系都是可编程的。PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上,又发展了一种通用阵列逻辑GAL(Generic Array Logic),如GAL16V8、GAL22V10 等。它采用EEPROM工艺,实现了电可擦除、电可改写,其输出结构
4、是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人在使用。这些早期PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。为了弥补这一缺陷,20世纪80年代中期,Altera公司和Xilinx公司分别推出了类似于PAL结构的扩展型CPLD(Complex Programmab1e Logic Device)和与标准门阵列类似的FPGA(Field Programmable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程
5、也很灵活。与门阵列等其他ASIC相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无须测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件的基础之上发展起来的。同以往的PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设
6、计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用Altera的人多,在美国则是平分秋色。全球60%以上的FPGA/CPLD产品是由Altera和Xilinx提供的。可以说Altera和Xilinx共同决定了PLD技术的发展方向。当然还有许多其他类型器件,如Lattice、Vantis、Actel、Quicklogic、Lucent等。目前,PLD工艺已经达到65纳米数量级,正向4
7、5纳米迈进。2005年Altera公司生产可编程逻辑芯片的集成度达5亿只晶体管。原来需要成千上万只电子元器件组成的电子设备电路,现在以单片超大规模集成电路即可实现,为SOC技术和SOPC的发展开拓了可实施的空间。SOC称为片上系统,它是指将一个完整产品的功能集成在一个芯片上或芯片组上。SOC中可以包括微处理器CPU、数字信号处理器DSP、存储器(ROM、RAM、Flash等)、总线和总线控制器、外围设备接口等,还可以包括数模混合电路(放大器、比较器、A/D和D/A转换器、锁相环等),甚至延拓到传感器、微机电和微光电单元。SOC是专用集成电路系统,其设计周期长,设计成本高,SOC的设计技术难以被
8、中小企业、研究所和大专院校采用。为了让SOC技术得以推广,Altera公司于21世纪初推出SOPC新技术和新概念。SOPC称为可编程片上系统,它是基于可编程逻辑器件PLD(FPGA或CPLD)可重构的SOC。SOPC集成了硬核或软核CPU、DSP、锁相环(PLL)、存储器、I/O接口及可编程逻辑,可以灵活高效地解决SOC方案,且设计周期短、设计成本低,一般只需要一台配有SOPC开发软件的PC机和一台SOPC试验开发系统(或开发板),就可以进行SOPC的设计与开发。目前,SOPC技术已成为备受众多中小企业、研究所和大专院校青睐的设计技术。1.2 PLD设计流程PLD设计的大部分工作是在EDA软件
9、工作平台上进行的,PLD设计流程如图1.1所示。EDA设计流程包括设计准备、设计输入、设计处理和器件编程4个步骤,以及相应的功能仿真、时序仿真和器件测试3个设计验证过程。图1.1 PLD设计流程1.2.1 设计准备设计准备是指设计者在进行设计之前,依据任务要求,确定系统所要完成的功能及复杂程度,器件资源的利用、成本等所要做的准备工作,如进行方案论证、系统设计和器件选择等。1.2.2 设计输入设计输入是指将PLD设计的系统或电路按照EDA开发软件要求的某种形式表示出来,并送入计算机的过程。设计输入有多种方式,包括采用硬件描述语言(如AHDL、VHDL和Verilog HDL等)进行设计的文本输入
10、方式、图形输入方式和波形输入方式,或者采用文本、图形两者混合的设计输入方式。也可以采用自顶向下(Top-Down)的层次结构设计方法,将多个输入文件合并成一个设计文件等。1. 图形输入方式图形输入也称为原理图输入,这是一种最直接的设计输入方式,它使用软件系统提供的元器件库及各种符号和连线画出设计电路的原理图,形成图形输入文件。这种方式大多用在对系统及各部分电路很熟悉的情况下,或在系统对时间特性要求较高的场合。优点是容易实现仿真,便于信号的观察和电路的调整。2. 文本输入方式文本输入是指采用硬件描述语言进行电路设计的方式。硬件描述语言有普通硬件描述语言和行为描述语言,它们用文本方式描述设计和输入
11、。普通硬件描述语言有AHDL、CUPL等,它们支持逻辑方程、真值表、状态机等逻辑表达方式。行为描述语言是目前常用的高层硬件描述语言,包括VHDL、Verilog HDL等,它们具有很强的逻辑描述和仿真功能,可实现与工艺无关的编程与设计,可以使设计者在系统设计、逻辑验证阶段便确立方案的可行性,而且输入效率高,在不同的设计输入库之间转换也非常方便。运用VHDL或Verilog HDL硬件描述语言进行设计已是当前的趋势。3. 波形输入方式波形输入主要用于建立和编辑波形设计文件以及输入仿真向量和功能测试向量。波形设计输入适用于时序逻辑和有重复性的逻辑函数,系统软件可以根据用户定义的输入/输出波形自动生
12、成逻辑关系。波形编辑功能还允许设计者对波形进行复制、剪切、粘贴、重复与伸展,从而可以用内部节点、触发器和状态机建立设计文件,并将波形进行组合,显示各种进制的状态值。还可以通过将一组波形重叠到另一组波形上,对两组仿真结果进行比较。1.2.3 设计处理设计处理是PLD设计中的核心环节。在设计处理阶段,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动地进行适配,最后产生编程用的编程文件。设计处理主要包括设计编译和检查、逻辑优化和综合、适配和分割、布局和布线、生成编程数据文件等过程。1. 设计编译和检查设计输入完成之后,将立即进行编译。在编译过程中首先进行语法检验,如检查
13、原理图的信号线有无漏接,信号有无双重来源,文本输入文件中关键词有无错误等各种语法错误,并及时标出错误的位置信息报告,供设计者修改。然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制并将编译报告列出,指明违反规则和潜在不可靠电路的情况以供设计者纠正。2. 逻辑优化和综合逻辑优化主要包括面积优化和时间优化。面积优化的目的是使设计所占用的PLD中的逻辑元件(Logic Elements,简称LE或LEs)数最少。时间优化是指设计电路的输入信号经过最短的路径到达输出,使传输延迟时间最小。综合的目的是将多个模块化设计文件合并为一个网表文件,并使层次设计平面化(即展平)。3. 适配和分割在适配
14、和分割过程,确定优化以后的逻辑能否与下载目标器件CPLD或FPGA中的宏单元和I/O单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。如果整个设计不能装入一片器件时,可以将整个设计自动分割成多块并装入同一系列的多片器件中去。分割工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制进行。分割时应使所需器件数目和用于器件之间通信的引脚数目尽可能少。4. 布局和布线布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的布线互连。布局和布线完成后,软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。
15、5. 生成编程数据文件设计处理的最后一步是产生可供器件编程使用的数据文件。对CPLD来说,是产生熔丝图文件,即JEDEC文件(电子器件工程联合会制定的标准格式,简称JED文件);对于FPGA来说,是生成位流数据文件BG(Bit-stream Generation)。1.2.4 设计校验设计校验过程包括功能仿真和时序仿真,这两项工作是在设计处理过程中同时进行的。功能仿真是在设计输入完成之后,选择具体器件进行编译之前进行的逻辑功能验证,因此又称为前仿真。此时的仿真没有延时信息或者有由系统添加的微小标准延时,这对于初步的功能检测非常方便。仿真前,要先利用波形编辑器或硬件描述语言等建立波形文件或测试向
16、量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。若发现错误,则返回设计输入中修改逻辑 设计。时序仿真是在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为后仿真或延时仿真。由于不同器件的内部延时不一样,不同的布局、布线方案也给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真、分析其时序关系、估计设计的性能以及检查和消除竞争冒险等是非常有必要的。1.2.5 器件编程编程是指将设计处理中产生的编程数据文件通过软件放到具体的可编程逻辑器件中去。对CPLD器件来说是将JED文件下载(Down Load)到
17、CPLD器件中去,对FPGA来说是将位流数据BG文件配置到FPGA中去。器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的CPLD器件和一次性编程的FPGA需要专用的编程器完成器件的编程工作。基于SRAM的FPGA可以由EPROM或其他存储体进行配置。在系统的可编程器件(ISP-PLD)则不需要专门的编程器,只要一根与计算机互连的下载编程电缆就可以了。1.2.6 器件测试和设计验证器件在编程完毕之后,可以用编译时产生的文件对器件进行检验、加密等工作,或采用边界扫描测试技术进行功能测试,测试成功后才完成其设计。设计验证可以在EDA硬件开发平台上进行。EDA硬件开发平台的核心部件
18、是一片可编程逻辑器件FPGA或CPLD,再附加一些输入输出设备,如按键、数码显示器、指示灯、喇叭等,还提供时序电路需要的脉冲源。将设计电路编程下载到FPGA或CPLD中后,根据EDA硬件开发平台的操作模式要求,进行相应的输入操作,然后检查输出结果,验证设计电路。1.3 硬件描述语言硬件描述语言HDL是EDA技术中的重要组成部分,当前最流行的并成为IEEE标准的硬件描述语言是VHDL和Verilog HDL。其实两种语言的差别并不大,它们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快地学会另一种语言。选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然
19、,对于专用集成电路(ASIC)设计人员,则必须首先掌握Verilog HDL,因为在IC设计领域,90%以上的公司都是采用Verilog HDL进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。1.3.1 VHDLVHDL是超高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language)的缩写,在美国国防部的支持下于1985年正式推出,是目前标准化程度最高的硬件描述语言。IEEE(Institute of Electrical and Electronics Engineers)于1
20、987年将VHDL采纳为IEEE#1076标准。VHDL经过十几年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语言表达风格和多层次的仿真测试手段,在电子设计领域受到了普遍的认同和广泛的接受,成为现代EDA领域的首选硬件描述语言。目前,流行的EDA工具软件全部支持VHDL,它在EDA领域的学术交流、电子设计的存档、专用集成电路(ASIC)设计等方面,担任着不可缺少的角色。专家认为,在21世纪中,VHDL与Verilog VHD语言将承担起几乎全部的数字系统设计任务。显然,VHDL是现代电子设计师必须掌握的硬件设计计算机语言。概括起来,VHDL有以下特点: VHDL具有强
21、大的功能,覆盖面广,描述能力强。VHDL支持门级电路的描述,也支持以寄存器、存储器、总线及运算单元等构成的寄存器传输级电路的描述,还支持以行为算法和结构的混合描述为对象的系统级电路的描述。 VHDL有良好的可读性。它可以被计算机接受,也容易被读者理解。用VHDL书写的源文件,既是程序又是文档,既是工程技术人员之间交换信息的文件,又可作为合同签约者之间的文件。 VHDL具有良好的可移植性。作为一种已被IEEE承认的工业标准,VHDL事实上已成为通用的硬件描述语言,可以在各种不同的设计环境和系统平台中使用。 使用VHDL可以延长设计的生命周期。用VHDL描述的硬件电路与工艺无关,不会因工艺而使描述
22、过时。与工艺有关的参数可以通过VHDL提供的属性加以描述,工艺改变时,只需要修改相应程序中的属性参数即可。 VHDL支持对大规模设计的分解和已有设计的再利用。VHDL可以描述复杂的电路系统,支持对大规模设计的分解,由多人、多项目组来共同承担和完成。标准化的规则和风格,为设计的再利用提供了有力的支持。 VHDL有利于保护知识产权。用VHDL设计的ASIC,在设计文件下载到集成电路时可以采用一定保密措施,使其不易被破译和窃取。1.3.2 Verilog HDLVerilogHDL也是目前应用最为广泛的硬件描述语言,并被IEEE采纳为IEEE#1064-1995标准和IEEE#1064-2001标准
23、。Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合、仿真验证和时序分析。Verilog HDL适合算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次的电路设计和描述。采用Verilog HDL进行电路设计的最大优点是其与工艺无关性,这使得设计者在进行电路设计时可以不必过多考虑工艺实现的具体细节,只需要根据系统设计的要求施加不同的约束条件,即可设计出实际电路。实际上,利用计算机的强大功能,在EDA工具的支持下,把逻辑验证与具体工艺库相匹配,将布线及延迟计算分成不同的阶段来实现,从而能够减
24、少设计者的繁重劳动。Verilog HDL和VHDL都是用于电路设计的硬件描述语言,并且都已成为IEEE标准。Verilog HDL也具有与VHDL类似的特点,稍有不同的是Verilog HDL早在1983年就已经推出,至今已有二十多年的应用历史,因而Verilog HDL拥有广泛的设计群体,其设计资源比VHDL丰富。另外Verilog HDL是在C语言的基础上演化而来的,因此只要具有C语言的编程基础,就很容易学会并掌握这种语言。1.4 常用EDA工具EDA工具在PLD技术应用中占据极其重要的位置,EDA的核心是利用计算机完成电路设计的全程自动化,因此基于计算机环境下的EDA工具软件的支持是必
25、不可少的。用EDA技术设计电路可以分为不同的技术环节,每一个环节中必须有对应的软件包或专用的EDA工具独立处理。EDA工具大致可以分为设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)和下载器(或编程器)这5个模块。1.4.1 设计输入编辑器通常专业的EDA工具供应商或各可编程逻辑器件厂商都提供EDA开发工具,在这些EDA开发工具中都含有设计输入编辑器,如Xilinx公司的Foundation,Altera公司的MAX+PLUSII和Quartus II等。一般的设计输入编辑器都支持图形输入和HDL文本输入。图形输入通常包括原理图输入、状态图输入和波形图输入3种常用方法。原理图输入方
26、式沿用传统的数字系统设计方式,即根据设计电路的功能和控制条件,画出设计的原理图或状态图或波形图,然后在设计输入编辑器的支持下,将这些图形输入到计算机中,形成图形文件。图形输入方式与Protel作图相似,设计过程形象直观,而且不需要掌握硬件描述语言,便于初学或教学演示。但图形输入方式存在没有标准化、图形文件兼容性差不便于电路模块的移植和再利用等缺点。HDL文本输入方式与传统的计算机软件语言编辑输入基本一致,就是在设计输入编辑器的支持下,使用某种硬件描述语言对设计电路进行描述,形成HDL源程序。HDL文本输入方式克服了图形输入方式存在的所有弊端,为EDA技术的应用和发展打开了一个广阔的天地。当然,
27、在用EDA技术设计电路时,也可以充分利用图形输入与HDL文本输入方式各自的优势,将它们结合起来,进而实现一个复杂的电路系统的设计。1.4.2 仿真器在EDA技术中仿真的地位非常重要,行为模型的表达、电子系统的建模、逻辑电路的验证以及门级系统的测试,每一步都离不开仿真器的模拟检测。在EDA发展的初期,快速地进行电路逻辑仿真是当时的核心问题,即使在现在,各个环节的仿真仍然是整个EDA设计流程中最重要、最耗时的步骤。因此,仿真器的仿真速度、仿真的准确性和易用性成为衡量仿真器的重要指标。按仿真器对硬件描述语言不同的处理方式,可以分为编译型仿真器和解释型仿真器。编译型仿真器速度较快,但需要预处理,因此不
28、能及时修改;解释型仿真器的速度一般,但可以随时修改仿真环境和条件。几乎每个EDA厂商都提供基于Verilog HDL和VHDL的仿真器。常用的仿真器有Model Technology公司的Modelsim,Cadence公司的Verilog-XL和NC-Sim,Aldec公司的Active HDL,Synoposys公司的VCS等。1.4.3 HDL综合器硬件描述语言诞生的初衷是用于设计逻辑电路的建模和仿真,但直到Synoposys公司推出了HDL综合器后,才使HDL能够直接用于电路设计。HDL综合器是一种将硬件描述语言转化为硬件电路的重要工具软件,在使用EDA技术实施电路设计过程中,HDL综
29、合器完成电路化简、算法优化、硬件结构细化等操作。HDL综合器在把可综合的HDL(Verilog HDL或VHDL)转化为硬件电路时,一般要经过两个步骤:第1步是HDL综合器对Verilog HDL或VHDL进行处理分析,并将其转换成电路结构或模块,这时是不考虑实际器件实现的,即完全与硬件无关,这个过程是一个通用电路原理图形成的过程;第2步是对应实际实现目标器件的结构进行优化,并使之满足各种约束条件,优化关键路径等。HDL综合器的输出文件一般是网表文件,是一种用于电路设计数据交换和交流的工业标准化格式的文件,或是直接用硬件描述语言HDL表达的标准格式的网表文件,或是对应FPGA/CPLD器件厂商
30、的网表文件。HDL综合器是EDA设计流程中的一个独立的设计步骤,它往往被其他EDA环节调用,完成整个设计流程。HDL综合器的调用具有前台模式和后台模式两种,用前台模式调用时,可以从计算机的显示器上看到调用窗口界面;用后台模式(也称为控制模式)调用时,不出现图形窗口界面,仅在后台运行。1.4.4 适配器(布局布线器)适配也称为结构综合,适配器的任务是完成在目标系统器件上的布局布线。适配通常都由可编程器件厂商提供的专用软件来完成,这些软件可以单独存在,或嵌入在集成EDA开发环境中。适配器最后输出的是各厂商自己定义的下载文件,下载到目标器件后即可实现电路 设计。1.4.5 下载器(编程器)下载器的任
31、务是把电路设计结果下载到实际器件中,实现硬件设计。下载软件一般由可编程逻辑器件厂商提供,或嵌入到EDA开发平台中。本 章 小 结PLD是电子设计领域中最具活力和发展前途的一项技术。PLD能完成任何数字器件的功能,上至高性能CPU,下至简单的TTL74序列电路,都可以用PLD来实现。在PCB完成以后,还可以利用PLD的在线修改功能,随时修改设计而不必改动硬件电路。PLD技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。PLD设计依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言(HDL)为系统逻辑描述手段完成的设计文件,并自动地完
32、成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件FPGA/CPLD,实现既定的电子电路设计功能。硬件描述语言在PLD设计中占据极其重要的位置,目前国际上流行的硬件描述语言主要有VHDL和Verilog HDL。PLD设计的大部分过程是在EDA工具上进行的,EDA工具软件主要包括设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)以及下载器(或编程器)这5个模块。EDA工具是电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将是难以完成的。思考题和习题1简述PLD的发展简史。2简述PLD设计流程。3VHDL有哪些主要特点?4Verilog HDL有哪些主要特点?5什么叫“综合”,一般综合包含哪些过程?6EDA工具大致可以分为哪几个模块?各模块的主要功能是什么?7目前被IEEE采纳的硬件描述语言有哪几种?8何谓SOC?9何谓SOPC?