VHDL and PLD 第01章 硬件描述语言与可编程逻辑器件简介(2013年9月)_第1页
VHDL and PLD 第01章 硬件描述语言与可编程逻辑器件简介(2013年9月)_第2页
VHDL and PLD 第01章 硬件描述语言与可编程逻辑器件简介(2013年9月)_第3页
VHDL and PLD 第01章 硬件描述语言与可编程逻辑器件简介(2013年9月)_第4页
VHDL and PLD 第01章 硬件描述语言与可编程逻辑器件简介(2013年9月)_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

硬件描述语言与可编程逻辑器件课程说明:该课程主要是以理论和实践相结合的方式。课时数:24+16考试方式:期末考试+实验+平时成绩。闭卷60%,实验30%,平时成绩10%本课教材及参考书教材:李云松等.《XilinxFPGA设计基础(VHDL版)》.西安电子科技大学出版社.2008.2.参考书:1)王开军等《面向CPLD/FPGA的VHDL设计》.机械工业出版社.2006.102)佩德罗尼《VHDL数字电路设计教程》.电子工业出版社第1版2005.93)李辉.《基于FPGA的数字系统设计》西安电子科技大学出版社2008.114)潘松等《EDA技术使用教程》(第三版)科学出版社2006.95)任爱峰等《基于FPGA的嵌入式系统设计》西安电子科技大学出版社2005.2网站资源厂商http:///http:////http://资源http:///http:////index.htmlhttp:///labs/tutorial/index.htmlBBShttp:///http:///bbs/index.php第一章绪论关于EDA关于HDL可编程逻辑器件的发展进程可编程逻辑器件的分类可编程逻辑器件的结构第一章绪论

随着VLSI的发展电子产品市场运作节奏的进一步加快涉及诸多领域(如计算机应用、通信、智能仪表、医用设备、军事、民用电器等领域的现代电子设计技术已迈入一个全新的阶段,其特点如下:1.电子器件及其技术的发展将更多地趋向于支持EDA(ElectronicDesignAutomation)2.借助于硬件描述语言,硬件设计与软件设计技术得到了有机的融合。3.电子设计的技术开发过程和目标器件的形式与结构向规范化、标准化发展。4.应用系统的设计已从单纯的ASIC(ApplicationSpecificIntegratedCircuit)设计走向了系统设计和单片系统SOC(SystemOnaChip)设计。关于EDA在电子设计技术领域,可编程逻辑器件的广泛应用,为数字系统的设计带来极大的灵活性。由于该器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷.。这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。在传统的数字系统设计中,用户能够通过编程方式改变器件逻辑功能只有两种途径,即微处理器的软件编程(如单片机)和特定器件的控制字配置(如8255)。在传统的设计概念中,器件引脚功能的硬件方式的任意确定是不可能的。而对于系统构成的设计过程只能对器件功能和电路板图分别进行设计和确定。通过设计电路板来规划系统功能。在此期间,大量的时间和精力花在元件选配和系统结构的可行性定位上。但若采用可编程逻辑器件,便可利用计算机软件的方式对目标器件进行设计而以硬件的形式实现即定的系统功能。关于EDA在设计过程中,设计者可根据需要,随时改变器件的内部逻辑功能和管脚的信号方式。借助于大规模集成的可编程逻辑器件和高效的设计软件。用户不仅可通过直接对芯片结构的设计实现多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度:同时,这种基于可编程逻辑器件芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。关于EDA随着可编程逻辑器件自身功能的不断完善和计算机辅助设计技术的提高,在现代电子系统设计领域中的EDA便应运而生了。传统的数字电路设计模式、卡诺图的逻辑化简手段、冗杂难懂的布尔方程表达方式、小规模的TTL芯片的堆砌技术在迅速崛起的EDA面前已成为一道历史的风景。关于EDAEDA是电子设计自动化(ElectronicDesignAutomation)的缩写,是90年代初,从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具,在EDA软件平台上对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真、直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。关于EDAEDA技术中最为瞩目的功能即最具现代电子设计技术特征的功能就是日益强大的逻辑设计仿真测试技术。现代的EDA工具软件已突破了早期仅能进行PCB版图设计,或类似某些仅限于电路功能模拟的、纯软件范围的局限,以最终实现可靠的硬件系统为目标,配备了系统设计自动化的全部工具。如配置了各种常用的硬件描述语言平台VHDL、VerilogHDL、ABEL-HDL等;配置了多种能兼用和混合使用的逻辑描述输入工具如硬件描述语言文本输入法(其中包括布尔方程描述方式、原理图描述方式、状态图描述方式等)以及原理图输入法、波形输入法等。同时还配置了高性能的逻辑综合、优化和仿真模拟工具。关于HDL几种常用的HDL语言:(1)VHDL硬件描述语言。它适用于电路行为级、RTL级的描述,功能强,规范性好;(2)VerilogHDL硬件描述语言。它适用于电路RTL级、门级的描述,功能强、灵活性高;(3)ABEL硬件描述语言。它也适用于电路RTL级、门级的描述,属于较低级的硬件描述语言;(4)AHDL硬件描述语言。Altera公司开发的硬件描述语言,语法简单,但不通用。其中:VHDL和VerilogHDL已成为IEEE标准。IEEE标准硬件描述语言的诞生与发展1.硬件描述语言的起源:人们为了把复杂的电子电路用文字文件方式描述并保存下来,方便他人了解电路内容,就诞生了最初的硬件描述语言。经过多种硬件描述语言诞生与淘汰的演变,当前国内外普遍使用的主流硬件描述语言只有两种:VHDL和VerilogHDL。还有ABEL和AHDL等。硬件描述语言的诞生与发展2.VHDL:

以ADA语言为基础,由美国国防高级研究计划局(DARPA)开发。1985年完成第一版,1987年成为IEEE标准(IEEE1076),1993年增修为IEEE1164标准并使用至今。1996年又加入电路合成标准程序和规格,成为IEEE1076.3标准。美国国防部规定其为官方ASIC设计语言。

1995年,中国国家技术监督局出版的《CAD通用技术规范》中,推荐VHDL为我国硬件描述语言的国家标准。硬件描述语言的诞生与发展3.VerilogHDL:

以C语言为基础,由GDA(GatewayDesignAutomation)公司的PhilMoorby创建于1983年。1989年CADENCE公司收购了GDA公司,拥有了VerilogHDL的独家专利。于1990年正式发表了VerilogHDL,并成立OVI(Open

VerilogInternational)组织推进其发展。1995年CADENCE公司放弃了VerilogHDL专利,使之成为IEEE标准(IEEE1364)。硬件描述语言的诞生与发展4.关于VHDL与VerilogHDL的比较:不存在优劣之分。相同电路用这两种硬件描述语言分别编码,长度也大体相同。现在常用的各种仿真/综合工具均为二者通用。在日本,VHDL用户略多于VerilogHDL,例如:NEC,日立,福田电子,丸文等公司通常习惯使用VHDL;而松下,CASIO等公司习惯使用VerilogHDL。和习惯有关,一个公司通常习惯于使用其中一种。VHDL与其他HDL比较VHDL—

“tellmehowyourcircuitshouldbehave andIwillgiveyouhardwarethatdoesthejob”

—“告诉我你想要电路做什么,我给你提供能实现这个功能的硬件电路”VerilogHDL

—和VHDL类似ABEL、AHDL

“tellmewhathardwareyouwantandI willgiveittoyou”—“告诉我你想要什么样的电路,我给你提供这样的电路”硬件描述语言的近期发展目前及今后若干年内,VHDL和VerilogHDL仍将是硬件描述语言主角。因为它们已经经过无数应用实例的验证,能够满足各类复杂的逻辑功能要求,各种配套工具软件也非常成熟完善。至于SpecC,SystemC等新型硬件描述语言,将来成为主流还是被淘汰出局,则与语言本身以及各种配套工具软件是否功能更加强大,使用更加简便,更易于学习掌握,以及与人们已经习惯的语言及工具是否有相似性和延续性等因素有关。硬件描述语言(VHDL)的突出优点1.覆盖面广,描述能力强,是一个多层次的硬件描述语言。2.VHDL有良好的可读性,它可以被计算机接受,也容易被读者理解。3.VHDL本身的生命期长,因为VHDL的硬件描述与工艺技术无关,不会因工艺变化而使描述过时。4.支持大规模设计的分解和已有设计的再利用,一个大规模设计不可能一个人独立完成,它将由多人、多项目组来共同完成。VHDL为设计的分解和再利用提供了有力的支持。5.VHDL已成为IEEE承认的一个工业标准,事实上已成为通用硬件描述语言。应用VHDL的EDA过程

应用VHDL的EDA过程EDA的工程设计流程1.源程序的编辑和编译利用EDA技术进行一项工程设计,首先需利用EDA工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来,进行排错编译,变成VHDL文件格式,为进一步的逻辑综合作准备。常用的源程序输入方式有三种。应用VHDL的EDA过程(1)原理图输入方式:利用EDA工具提供的图形编辑器以原理图的方式进行输入。原理图输入方式比较容易掌握,直观且方便,所画的电路原理图(请注意,这种原理图与利用Protel画的原理图有本质的区别)与传统的器件连接方式完全一样,很容易被人接受,而且编辑器中有许多现成的单元器件可以利用,自己也可以根据需要设计元件。然而原理图输入法的优点同时也是它的缺点:①随着设计规模增大,设计的易读性迅速下降,对于图中密密麻麻的电路连线,极难搞清电路的实际功能;②一旦完成,电路结构的改变将十分困难,因而几乎没有可再利用的设计模块;③移植困难、入档困难、交流困难、设计交付困难,因为不可能存在一个标准化的原理图编辑器。应用VHDL的EDA过程(2)状态图输入方式:以图形的方式表示状态图进行输入。当填好时钟信号名、状态转换条件、状态机类型等要素后,就可以自动生成VHDL程序。这种设计方式简化了状态机的设计,比较流行。(3)VHDL软件程序的文本方式:最一般化、最具普遍性的输入方法,任何支持VHDL的EDA工具都支持文本方式的编辑和编译。应用VHDL的EDA过程2.逻辑综合和优化欲把VHDL的软件设计与硬件的可实现性挂钩,需要利用EDA软件系统的综合器进行逻辑综合。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形的描述,针对给定硬件结构组件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。由此可见,综合器工作前,必须给定最后实现的硬件结构参数,它的功能就是将软件描述与给定硬件结构用某种网表文件的方式联系起来。显然,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换成低级的,可与FPGA/CPLD或构成ASIC的门阵列基本结构相映射的网表文件。应用VHDL的EDA过程由于VHDL仿真器的行为仿真功能是面向高层次的系统仿真,只能对VHDL的系统描述作可行性的评估测试,不针对任何硬件系统,因此基于这一仿真层次的许多VHDL语句不能被综合器所接受。这就是说,这类语句的描述无法在硬件系统中实现(至少是现阶段),这时,综合器不支持的语句在综合过程中将忽略掉。综合器对源VHDL文件的综合是针对某一PLD供应商的产品系列的,因此,综合后的结果是可以为硬件系统所接受,具有硬件可实现性。应用VHDL的EDA过程3.目标器件的布线/适配逻辑综合通过后必须利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作,适配完成后可以利用适配所产生的仿真文件作精确的时序仿真。适配器的功能是将由综合器产生的网表文件配置于指定的目标器件中,产生最终的下载文件,如JEDEC格式的文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目标器件系列。对于一般的可编程模拟器件所对应的EDA软件来说,一般仅需包含一个适配器就可以了,如Lattice的PAC-DESIGNER。通常,EDA软件中的综合器可由专业的第三方EDA公司提供,而适配器则需由FPGA/CPLD供应商自己提供,因为适配器的适配对象直接与器件结构相对应。应用VHDL的EDA过程4.目标器件的编程/下载如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将由FPGA/CPLD布线/适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片FPGA或CPLD中。应用VHDL的EDA过程5.设计过程中的有关仿真

在综合以前可以先对VHDL所描述的内容进行行为仿真,即将VHDL设计源程序直接送到VHDL仿真器中仿真,这就是所谓的VHDL行为仿真。因为此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系。在这时的仿真中,可以充分发挥VHDL中的适用于仿真控制的语句及有关的预定义函数和库文件。

应用VHDL的EDA过程在综合之后,VHDL综合器一般都可以生成一个VHDL网表文件。网表文件中描述的电路与生成的EDIF/XNF等网表文件一致。VHDL网表文件采用VHDL语法,只是其中的电路描述采用了结构描述方法,即首先描述了最基本的门电路,然后将这些门电路用例化语句连接起来。这样的VHDL网表文件再送到VHDL仿真器中进行所谓功能仿真,仿真结果与门级仿真器所做的功能仿真的结果基本一致。应用VHDL的EDA过程

需要注意的是,图1.1中有两个仿真器,一是VHDL仿真器,另一个是门级仿真器,它们都能进行功能仿真和时序仿真。所不同的是仿真用的文件格式不同,即网表文件不同。这里所谓的网表(Netlist),是特指电路网络,网表文件描述了一个电路网络。目前流行多种网表文件格式,其中最通用的是EDIF格式的网表文件,XilinxXNF网表文件格式也很流行,不过一般只在使用Xilinx的FPGA/CPLD时才会用到XNF格式。VHDL文件格式也可以用来描述电路网络,即采用VHDL语法描述各级电路互连,称之为VHDL网表。应用VHDL的EDA过程

功能仿真是仅对VHDL描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件的硬件特性,如延时特性。时序仿真是接近真实器件运行的仿真,仿真过程中已将器件特性考虑进去了,因而,仿真精度要高得多。但时序仿真的仿真文件必须来自针对具体器件的布线/适配器所产生的仿真文件。综合后所得的EDIF/XNF门级网表文件通常作为FPGA布线器或CPLD适配器的输入文件。通过布线/适配的处理后,布线/适配器将生成一个VHDL网表文件,这个网表文件中包含了较为精确的延时信息,网表文件中描述的电路结构与布线/适配后的结果是一致的。此时,将这个VHDL网表文件送到VHDL仿真器中进行仿真,就可以得到精确的时序仿真结果了。应用VHDL的EDA过程6.硬件仿真/硬件测试这里所谓的硬件仿真是针对ASIC设计而言的。在ASIC设计中,比较常用的方法是利用FPGA对系统的设计进行功能检测,通过后再将其VHDL设计以ASIC形式实现;而硬件测试则是针对FPGA或CPLD直接用于应用系统的检测而言的。应用VHDL的EDA过程硬件仿真和硬件测试的目的,是为了在更真实的环境中检验VHDL设计的运行情况,特别是对于VHDL程序设计上不是十分规范、语义上含有一定歧义的程序。一般的仿真器包括VHDL行为仿真器和VHDL功能仿真器,它们对于同一VHDL设计的“理解”,即仿真模型的产生,与VHDL综合器的“理解”,即综合模型的产生,常常是不一致的。此外,由于目标器件功能的可行性约束,综合器对于设计的“理解”常在一有限范围内选择,而VHDL仿真器的“理解”是纯软件行为,其“理解”的选择范围要宽得多,结果这种“理解”的偏差势必导致仿真结果与综合后实现的硬件电路在功能上的不一致。当然,还有许多其他的因素也会产生这种不一致,由此可见,VHDL设计的硬件仿真和硬件测试是十分必要的。可编程逻辑器件的发展历史及前景PLD的发展进程最早的可编程逻辑器件出现在20世纪70年代初,主要是可编程只读存储器(PROM)和可编程逻辑阵列(PLA)。20世纪70年代末出现了可编程阵列逻辑(PAL—ProgrammableArrayLogic)器件。20世纪80年代初期,美国Lattice公司推出了一种新型的PLD器件,称为通用阵列逻辑(GAL-GenericArrayLogic),一般认为它是第二代PLD器件。随着技术的进步,生产工艺的不断改进,器件规模不断扩大,逻辑功能不断增强,各种可编程逻辑器件如雨后春笋般地涌现,如PROM、EPROM、E2PROM等。可编程逻辑器件的发展历史及前景在EPROM基础上出现的高密度可编程逻辑器件称为EPLD或CPLD。现在一般把超过某一集成度的PLD器件都称为CPLD。在20世纪80年代中期,美国Xilinx公司首先推出了现场可编程门阵列(FPGA)器件。FPGA器件采用逻辑单元阵列结构和静态随机存取存储器工艺,设计灵活,集成度高,可无限次反复编程,并可现场模拟调试验证。在20世纪90年代初,Lattice公司又推出了在系统可编程大规模集成电路(ispLSI)。可编程逻辑器件的发展历史及前景表2.1Altera系列产品主要性能可编程逻辑器件的发展历史及前景

美国Xilinx公司在1985年推出了世界上第一块现场可编程门阵列(FPGA)器件,最初3个完整的系列产品分别命名为XC2000、XC3000和XC4000,共有19个品种,后又增加了低电压(3.3V)的“L”系列、多I/O引脚的“H”系列及更高速的“A”系列,并推出了与XC3000兼容的XC3100/A系列,在XC4000的基础上又增加了“E”和“EX”系列。在1995年,Xilinx又增加了XC5000、XC6200和XC8100FPGA系列,并取得了突破性进展。而后又推出了Spartan和Virture系列。Xilinx还有3个EPLD系列产品:XC7200、XC7300和XC9500,如表2.2所示。可编程逻辑器件的发展历史及前景表2.2Xilinx系列产品主要性能可编程逻辑器件的发展历史及前景Lattice公司成立于1983年,是E2CMOS技术的开拓者,发明了GAL器件,是低密度PLD的最大供应商。该公司于20世纪90年代开始进入HDPLD领域,并推出了pLSI/ispLSI器件,实现了在系统可编程技术(ISP)。ISP使用户能够在无须从系统板上拔下芯片或从系统中取出电路板的情况下,改变芯片的逻辑内容乃至改变整个电子系统的功能。这种技术能大大缩短设计周期,简化生产流程,降低设计成本。Lattice公司目前的pLSI/ispLSI器件主要有6个系列:pLSI/ispLSI1000、2000、3000、5000、6000和8000系列,如表2.3所示。可编程逻辑器件的发展历史及前景表2.3Lattice系列产品主要性能可编程逻辑器件的分类1.按集成密度分类可编程逻辑器件从集成密度上可分为低密度可编程逻辑器件(LDPLD)和高密度可编程逻辑器件(HDPLD)两类。LDPLD主要指早期发展起来的PLD,它包括PROM、PLA、PAL和GAL四种,其集成密度一般小于700门/片。这里的门是指PLD等效门。可编程逻辑器件的分类HDPLD包括EPLD、CPLD和FPGA三种,其集成密度大于700门/片。随着集成工艺的发展,HDPLD的集成密度不断增加,性能不断提高。如Altera公司的EPM9560,其密度为12000门/片,Lattice公司的pLSI/ispLSI3320为14000门/片,AMD公司的M5-512为20000门/片,Xilinx公司的XC4020为20000门/片,等等。目前集成度最高的HDPLD可达25万门/片。可编程逻辑器件的分类2.按编程方式分类可编程逻辑器件的编程方式分为两类:一类是一次性编程(OneTimeProgrammable,简称OTP)器件;另一类是可多次编程器件。OTP器件只允许对器件编程一次,编程后不能修改,其优点是集成度高、工作频率和可靠性高、抗干扰性强。可多次编程器件的优点是可多次修改设计,特别适合于系统样机的研制。可编程逻辑器件的分类可编程逻辑器件的编程信息均存储在可编程元件中。根据各种可编程元件的结构及编程方式,可编程逻辑器件通常又可以分为四类:①采用一次性编程的熔丝(Fuse)或反熔丝(Antifuse)元件的可编程器件。②采用紫外线擦除、电可编程元件,即采用EPROM、UVCMOS工艺结构的可编程器件。③采用电擦除、电可编程元件。其中一种是E2PROM,即采用E2CMOS工艺结构的可编程器件;另一种是采用快闪存储单元(FlashMemory)结构的可编程器件。可编程逻辑器件的分类④基于静态存储器SRAM结构的编程器件。以上四类器件中第①类属于一次性编程器件,第②、③、④类属于可多次编程器件。基于EPROM、E2PROM和快闪(Flash)存储器的可编程器件的优点是系统断电后,编程信息不丢失。其中基于E2PROM和快闪存储器的编程器件可以编程100次以上,因而得到广泛应用。在系统编程(ISP-InSystemProgrammable)器件就是利用E2PROM或快闪存储器来存储编程信息的。基于只读存储器的可编程器件还设有保密位,可以防止非法复制。可编程逻辑器件的分类基于SRAM的可编程器件的缺点是,编程信息在系统断电后会丢失,是易失性器件。多数FPGA是基于SRAM的可编程器件。它在每次上电工作时,需要从器件外部的EPROM、E2PROM或其它存储体上将编程信息写入器件的SRAM中。这类可编程器件的优点是可进行任意次数的编程,并在工作中可以快速编程,实现板级和系统级的动态配置,因而也称为在线重配置(InCircuitReconfigruable,简称ICR)的可编程逻辑器件或可重配置硬件。可编程逻辑器件的结构下面介绍几种可编程元件的编程原理。1.熔丝和反熔丝元件的编程原理最早的可编程逻辑器件采用熔丝编程方式。熔丝编程元件的原理图如图1所示。基于熔丝编程链接技术的器件被称为一次性可编程器件,即OTP,因为一旦熔丝被熔断,将不能被代替或恢复原状。图1熔丝元件原理图可编程逻辑器件的结构

采用熔丝编程工艺的PLD有PROM、PAL、EPLD及FPGA的一部分产品。这种编程方式速度较高,但功耗大。它的主要缺点是熔丝烧断后不能恢复,因此只能一次性编程,不能重复编程和修改。一次性编程的PLD不适宜在系统的研制、开发和实验阶段使用。另外,熔丝元件要留出较大的保护空间,因此占用芯片的面积也比较大。可编程逻辑器件的结构反熔丝元件克服了熔丝元件的缺点,它通过击穿介质达到连通线路的目的。图1.2为反熔丝元件结构原理图。可编程逻辑器件的结构图1.2反熔丝元件结构原理图图1.2.b编程后反熔丝元件原理图图1.2a编程前反熔丝元件原理图可编程逻辑器件的结构图1.3以晶体管为基础的掩模编程ROM单元1.掩模编程器件ROM是一种掩模编程器件,因为所有的数据多固化在它的结构中,这是通过光掩模的方法产生出晶体管和金属连线。可编程逻辑器件的结构2.PROM

这种器件引入了以镍为基础的熔丝链接技术,它最初用来作为存储器存放计算机程序和常数值,后来也用来实现一些简单的逻辑功能。比如查找表和状态机。可编程逻辑器件的结构3.EPROM技术可擦除可编程只读存储器技术,Intel公司1971年首先应用这样的技术。EPROM晶体管和标准的MOS管的基本结构相同,但是多了由氧化层绝缘的多晶硅浮置栅如下图所示。可编程逻辑器件的结构当它处于未编程状态时,浮置栅不带电,不影响控制栅的一般功能。为了对晶体管编程,给控制栅和漏极端子之间加大电压(12V),晶体管在高压下,高能电子穿越氧化层进入浮置栅。当编程撤销后,负电荷存储在浮置栅中,浮置栅中的负电荷阻止了控制栅的正常工作,这样就使得未编程和编程形成了两种状态。EPROM可以通过将浮置栅放电来擦除,放电可以用紫外线源对其照射可编程逻辑器件的结构4.EEPROM技术电可擦除可编程只读存储器,一个EEPROM单元大约等同于EPROM的2.5倍,因为它包含了两个晶体管和管间距离。EEPROM和EPROM相似,也包含浮置栅,但是围绕着浮置栅的氧化层非常薄第二个晶体管可以擦除单元电荷。可编程逻辑器件的结构5.闪存技术快闪存储器(FlashMemory)对E2PROM进行了改进,它可以在ms内擦除全部或一段被存储信息,而不像E2PROM那样一次擦除一个字节。快闪存储器的单元结构与EPROM中的叠栅注入MOS管相似,由于片内所有叠栅MOS管的源极连在一起,所以擦除时是将全部存储单元同时擦除。可编程逻辑器件的结构6.SRAM配置存储器使用静态存储器SRAM存储逻辑配置数据,称配置存储器。目前Xilinx公司生产的FPGA主要采用这种编程结构。SRAM基本单元如图1.5所示。它由两个CMOS互耦反相器和一个MOS开关管V组成。可编程逻辑器件的结构图1.5Xilinx公司的SRAM结构配置数据写入时,MOS开关管导通,写入配置数据(0或1)。在工作状态下,MOS开关管处于截止状态,配置单元的数据从反相器的Q端读出。无论存储0或1,其输出端处于低阻状态,若使状态发生翻转需要很大的电流,因此这种SRAM结构具有很强的抗干扰性。这种SRAM结构与其它组成方法相比,具有高密度、高速度和高可靠性,同时这种存储单元的特殊设计,还使它具有很高的稳定性,即在最坏的供电条件下,也能正常工作。可编程逻辑器件的结构可编程逻辑器件的结构3.按结构特点分类目前常用的可编程逻辑器件都是从与或阵列和门阵列发展起来的,所以可以从结构上将其分为两大类:①阵列型PLD。②现场可编程门阵列FPGA。阵列型PLD的基本结构由与阵列和或阵列组成。简单PLD(PROM、PLA、PAL和GAL)、EPLD和CPLD都属于阵列型PLD。可编程逻辑器件的结构FPGA具有门阵列的结构形式,它是由许多可编程逻辑单元(或称逻辑功能块)排成阵列组成的,这些逻辑单元的结构和与或阵列的结构不同,所以也将FPGA称为单元型PLD。除了以上分类法以外,有些地方将可编程逻辑器件分为简单PLD、复杂PLD和FPGA三大类,也有人将可编程逻辑器件分为简单PLD和复杂PLD(CPLD)两类,而将FPGA划入CPLD的范围之内。总之,可编程逻辑器件种类繁多,其分类标准不是很严格。但尽管如此,了解和掌握可编程逻辑器件的结构特点,对于可编程逻辑器件的设计实现和开发应用都十分重要,因此下面将简要介绍阵列型PLD和FPGA的主要特点。可编程逻辑器件的结构阵列型可编程逻辑器件阵列型PLD包括PROM、PLA、PAL、GAL、EPLD和CPLD。由于EPLD和CPLD都是在PAL和GAL基础上发展起来的,因此下面首先介绍简单PLD的结构特点,然后再介绍EPLD和CPLD的结构特点。可编程逻辑器件的结构简单PLD的基本结构1.PLD电路的表示方法因为PLD内部电路的连接规模很大,用传统的逻辑电路表示方法很难描述PLD的内部结构,所以对PLD进行描述时采用了一种特殊的简化方法。

PLD的输入、输出缓冲器都采用了互补输出结构,其表示法如图1.6所示。可编程逻辑器件的结构图1.6PLD缓冲器表示法可编程逻辑器件的结构PLD的与门表示法如图1.7(a)所示。图中与门的输入线通常画成行(横)线,与门的所有变量都称为输入项,并画成与行线垂直的列线以表示与门的输入。列线与行线相交的交叉处若有“·”,表示有一个耦合元件固定连接;若有“×”,则表示是编程连接;若交叉处无标记,则表示不连接(被擦除)。与门的输出称为乘积项P,图1.7(a)中与门输出P=A·B·D。或门可以用类似的方法表示,也可以用传统的方法表示,如图1.7(b)所示。可编程逻辑器件的结构图1.7PLD的与门表示法和或门表示法可编程逻辑器件的结构

图1.8PLD与门的简略表示法可编程逻辑器件的结构图1.8是PLD中与门的简略表示法,图中与门P1的全部输入项接通,因此这种状态称为与门的缺省(Default)状态。为简便起见,对于这种全部输入项都接通的缺省状态,可以用带有“×”的与门符号表示,如图中的P2=P1=0均表示缺省状态。P3中任何输入项都不接通,即所有输入都悬空,因此P3=1,也称为悬浮“1”状态。可编程逻辑器件的结构2.简单PLD的基本结构简单PLD的基本结构框图如图1.9所示。图中,“与阵列”和“或阵列”是电路的主体,主要用来实现组合逻辑函数。输入电路由缓冲器组成,它使输入信号具有足够的驱动能力,并产生互补输入信号。输出电路可以提供不同的输出方式,如直接输出(组合方式)或通过寄存器输出(时序方式)。此外,输出端口上往往带有三态门,通过三态门控制数据直接输出或反馈到输入端。通常,PLD电路中只有部分电路可以编程或组态,PROM、PLA、PAL和GAL四种PLD电路主要是编程情况和输出结构不同,因而电路结构也不相同,表1.1列出了四种PLD电路的结构特点。可编程逻辑器件的结构图1.9简单PLD的基本结构可编程逻辑器件的结构图1.10PROM阵列结构可编程逻辑器件的结构图1.11FPLA阵列结构可编程逻辑器件的结构图1.12PAL和GAL阵列结构可编程逻辑器件的结构2.EPLD和CPLD的基本结构

EPLD和CPLD是从PAL、GAL发展起来的阵列型高密度PLD器件,它们大多采用了CMOSEPROM、E2PROM和快闪存储器等编程技术,因而具有高密度、高速度和低功耗等特点。目前主要的半导体器件公司,如Xilinx,Altera,Lattice和AMD公司等,在各自生产的高密度PLD产品中,都有自己的特点,但总体结构大致是相同的。大多数EPLD#,CPLD器件中至少包含了三种结构:可编程逻辑宏单元;可编程I/O单元;可编程内部连线。可编程逻辑器件的结构1.可编程逻辑宏单元逻辑宏单元内部主要包括与或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。EPLD器件与GAL器件相似,其逻辑宏单元同I/O做在一起,称为输出逻辑宏单元,但其宏单元及与阵列数目比GAL大得多。CPLD器件的宏单元在内部,称为内部逻辑宏单元。EPLD#,CPLD除了密度高之外,许多优点都反映在逻辑宏单元上:可编程逻辑器件的结构①多触发器结构和“隐埋”触发器结构。

GAL器件每个输出宏单元只有一个触发器,而EPLD和CPLD的宏单元内通常含两个或两个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出不与输出端相连,但可以通过相应的缓冲电路反馈到与阵列,从而与其它触发器一起构成较复杂的时序电路。这些不与输出端相连的触发器就称为“隐埋”触发器。这种结构对于引脚数有限的EPLD和CPLD器件来说,可以增加触发器数目,即增加其内部资源。可编程逻辑器件的结构②乘积项共享结构。在PAL和GAL的与或阵列中,每个或门的输入乘积项最多为7个或8个,当要实现多于8个乘积项的“与—或”逻辑函数时,必须将“与—或”函数表达式进行逻辑变换。在EPLD和CPLD的宏单元中,如果输出表达式的与项较多,对应的或门输入端不够用时,可以借助可编程开关将同一单元(或其它单元)中的其它或门与之联合起来使用,或者在每个宏单元中提供未使用的乘积项供其它宏单元使用和共享。可编程逻辑器件的结构③异步时钟和时钟选择。一般GAL器件只能实现同步时序电路,在EPLD和CPLD器件中各触发器的时钟可以异步工作,有些器件中触发器的时钟还可以通过数据选择器或时钟网络进行选择。此外,逻辑宏单元内触发器的异步清零和异步置位也可以用乘积项进行控制,因而使用更加灵活。可编程逻辑器件的结构2.可编程I/O单元输入/输出单元,简称I/O单元(或IOC),它是内部信号到I/O引脚的接口部分。由于阵列型HDPLD通常只有少数几个专用输入端,大部分端口均为I/O端,而且系统的输入信号常常需要锁存。因此I/O常作为一个独立单元来处理。可编程逻辑器件的结构3.可编程连线阵列可编程连线阵列的作用是在各逻辑宏单元之间以及逻辑宏单元和I/O单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自专用输入或输入端的信号,并将宏单元的信号反馈到其需要到达的目的地。这种互连机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部的设计。可编程逻辑器件的结构现场可编程门阵列(FPGA)FPGA是20世纪80年代中期出现的高密度可编程逻辑器件。与前面所介绍的阵列型可编程逻辑器件不同,FPGA的结构类似于掩膜可编程门阵列(MPGA),它由许多独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接起来实现不同的设计。FPGA兼容了MPGA和阵列型PLD两者的优点,因而具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性。可编程逻辑器件的结构FPGA的分类不同厂家、不同型号的FPGA其结构有各自的特色,但就其基本结构来分析,大致有以下几种分类方法:

1.按逻辑功能块的大小分类可编程逻辑块是FPGA的基本逻辑构造单元。按照逻辑功能块的大小不同,可将FPGA分为细粒度结构和粗粒度结构两类。细粒度FPGA的逻辑功能块一般较小,仅由很小的几个晶体管组成,非常类似于半定制门阵列的基本单元,其优点是功能块的资源可以被完全利用,缺点是完成复杂的逻辑功能需要大量的连线和开关,因而速度慢;可编程逻辑器件的结构粗粒度FPGA的逻辑块规模大,功能强,完成复杂逻辑只需较少的功能块和内部连线,因而能获得较好的性能,缺点是功能块的资源有时不能充分被利用。近年来随着工艺的不断改进,FPGA的集成度不断提高,同时硬件描述语言(HDL)的设计方法得到广泛应用,由于大多数逻辑综合工具是针对门阵列的结构开发的,细粒度的FPGA较粗粒度的FPGA可以得到更好的逻辑综合结果。因此许多厂家开发出了一些具有更高集成度的细粒度FPGA,如Xilinx公司采用MicroVia技术的一次编程反熔丝结构的XC8100系列,GateField公司采用闪速EPROM控制开关元件的可再编程GF100K系列等,它们的逻辑功能块规模相对都较小。可编程逻辑器件的结构2.按互连结构分类根据FPGA内部的连线结构不同,可将其分为分段互连型和连续互连型两类。分段互连型FPGA中有不同长度的多种金属线,各金属线段之间通过开关矩阵或反熔丝编程连接。这种连线结构走线灵活,有多种可行方案,但走线延时与布局布线的具体处理过程有关,在设计完成前无法预测,设计修改将引起延时性能发生变化。连续互连型FPGA是利用相同长度的金属线,通常是贯穿于整个芯片的长线来实现逻辑功能块之间的互连,连接与距离远近无关。在这种连线结构中,不同位置逻辑单元的连接线是确定的,因而布线延时是固定和可预测的。可编程逻辑器件的结构3.按编程特性分类根据采用的开关元件的不同,FPGA可分为一次编程型和可重复编程型两类。一次编程型FPGA采用反熔丝开关元件,其工艺技术决定了这种器件具有体积小、集成度高、互连线特性阻抗低、寄生电容小及可获得较高的速度等优点;此外它还有加密位、反拷贝、抗辐射抗干扰、不需外接PROM或EPROM等特点。但它只能一次编程,一旦将设计数据写入芯片后,就不能再修改设计,因此比较适合于定型产品及大批量应用。可重复编程型FPGA采用SRAM开关元件或快闪EPROM控制的开关元件。FPGA芯片中,每个逻辑块的功能以及它们之间的互连模式由存储在芯片中的SRAM或快闪EPROM中的数据决定。可编程逻辑器件的结构SRAM型开关的FPGA是易失性的,每次重新加电,FPGA都要重新装入配置数据。SRAM型FPGA的突出优点是可反复编程,系统上电时,给FPGA加载不同的配置数据,即可令其完成不同的硬件功能。这种配置的改变甚至可以在系统的运行中进行,实现系统功能的动态重构。采用快闪EPROM控制开关的FPGA具有非易失性和可重复编程的双重优点,但在再编程的灵活性上较SRAM型FPGA差一些,不能实现动态重构。此外,其静态功耗较反熔丝型及SRAM型的FPGA高。可编程逻辑器件的结构FPGA的基本结构

FPGA具有掩模可编程门阵列的通用结构,它由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。下面以Xilinx的FPGA为例,分析其结构特点。

FPGA芯片主要由6部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。可编程逻辑器件的结构图1.19FPGA的内部基本结构

可编程逻辑器件的结构每个模块的功能如下:1.可编程输入输出单元(IOB)可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,其示意结构如图1.20所示。FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。可编程逻辑器件的结构图1.20IOB内部结构可编程逻辑器件的结构外部输入信号可以通过IOB模块的存储单元输入到FPGA的内部,也可以直接输入FPGA内部。当外部输入信号经过IOB模块的存储单元输入到FPGA内部时,其保持时间(HoldTime)的要求可以降低,通常默认为0。为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。可编程逻辑器件的结构2.可配置逻辑块(CLB)

CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在赛灵思公司公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成,如图1.21所示。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。可编程逻辑器件的结构Slice是赛灵思公司公司定义的基本逻辑单位,其内部结构如图1.22所示,一个Slice由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。图1.21CLB结构示意图图1.224输入slice结构示意图可编程逻辑器件的结构算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个Slice实现2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4输入函数发生器用于实现4输入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的两个输入函数为6输入,可以实现6输入LUT或64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块的处理速度。可编程逻辑器件的结构3.数字时钟管理模块(DCM)

大多数FPGA均提供数字时钟管理(赛灵思公司的全部FPGA均具有这种特性)。赛灵思公司推出最先进的FPGA提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。可编程逻辑器件的结构4.嵌入式块RAM(BRAM)

大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际应用中,芯片内部块RAM的数量也是选择芯片的一个重要因素。图1.23内嵌的块RAM可编程逻辑器件的结构可编程逻辑器件的结构单块RAM的容量为18k比特,即位宽为18比特、深度为1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽深度)不能大于18k比特;其次,位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。可编程逻辑器件的结构5.丰富的布线资源

布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。可编程逻辑器件的结构图1.24FPGA内部互连布线在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。可编程逻辑器件的结构6.底层内嵌功能单元

内嵌功能模块主要指DLL(DelayLockedLoop)、PLL(PhaseLockedLoop)、DSP等软处理核(SoftCore)。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。赛灵思公司生产的芯片上集成了DCM和DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同时集成了PLL和DLL。PLL和DLL可以通过IP核生成的工具方便地进行管理和配置。DLL的结构如图1.25所示。可编程逻辑器件的结构图1.25典型的DLL模块示意图可编程逻辑器件的结构7.内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(HardCore),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。可编程逻辑器件的结构赛灵思公司的高端产品不仅集成了PowerPC系列CPU,还内嵌了DSPCore模块,其相应的系统级设计工具是EDK和PlatformStudio,并依此提出了片上系统(SystemonChip)的概念。通过PowerPC™、Miroblaze、Picoblaze等平台,能够开发标准的DSP处理器及其相关应用,达到SOC的开发目的。此外,新推出赛灵思的FPGA系列如Virtex-5LXT还内建了PCIExpress和三态以太网MAC硬核(TEMAC),与软核实现方式相比,硬核可以把功耗降低5~10倍,节约将近90%的逻辑资源。可编程逻辑器

温馨提示

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

评论

0/150

提交评论