《【教学课件】第2章可编程逻辑器件基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第2章可编程逻辑器件基础.ppt(60页珍藏版)》请在三一办公上搜索。
1、第2章 可编程逻辑器件基础,EDA技术与VHDL设计,可编程逻辑器件基础,可编程逻辑器件(Programmable Logic Device,简称PLD)是20世纪70年代发展起来的一种新型逻辑器件,它是大规模集成电路技术的飞速发展与计算机辅助设计(CAD)、计算机辅助生产(CAM)和计算机辅助测试(CAT)相结合的一种产物,是现代数字电子系统向着超高集成度、超低功耗、超小型封装和专用化方向发展的重要基础。,2.1,概述,PLD器件的基本结构,CPLD/FPGA的结构特点,可编程逻辑器件的编程元件,可编程逻辑器件的基本资源,可编程逻辑器件的测试技术,可编程逻辑器件的设计与开发,2.2,2.3,
2、2.4,2.5,2.6,2.7,可编程逻辑器件基础,可编程逻辑器件是一种由用户编程实现所需功能的半定制集成电路,近年来发展十分迅速,已在国内外的计算机硬件、工业控制、智能仪表、数字视听设备、家用电器等领域得到了广泛的应用。可编程逻辑器件与EDA技术的结合,使得系统设计人员与芯片设计人员的相互渗透,从而快速、方便地构建数字系统。学习ASIC技术,掌握可编程逻辑器件的设计方法,已成为现代电子系统设计人员必须具备的基本技能之一。,2.1 概述,综观可编程逻辑器件的发展情况,大体可以分为六个发展阶段:(1)20世纪70年代初,熔丝编程的可编程只读存储器PROM和可编程逻辑阵列PLA是最早的可编程逻辑器
3、件。(2)20世纪70年代末,对PLA器件进行了改进,AMD公司推出了可编程阵列逻辑。(3)20世纪80年代初,Lattice公司发明了电可擦写的、比PAL器件使用更灵活的通用可编程阵列逻辑GAL。,可编程逻辑器件发展历程,(4)20世纪80年代中期,Xilinx公司提出了现场可编程的概念,同时生产出了世界上第一个FPGA器件。(5)20世纪80年代末,Lattice公司又提出了在系统可编程的概念,即ISP技术,并且推出了一系列的具备在系统可编程能力的CPLD器件。(6)进入20世纪90年代以后,集成电路技术进入到飞速发展的时期。并且出现了内嵌复杂功能块(如加法器、乘法器、RAM、PLL CP
4、U核、DSP核等)的超大规模器件SOPC(System On a Programmable Chip)。,可编程逻辑器件发展历程,按集成度分类,集成度是集成电路一项很重要的指标,如果从集成密度上分类,可分为低密度可编程逻辑器件(LDPLD)和高密度可编程逻辑器件(HDPLD)。,2.1.2 可编程逻辑器件分类,按器件结构分类,乘积项结构器件。其基本结构为“与或阵列”的器件。大部分简单的PLD和CPLD都属于这个范畴。查找表结构器件。其基本结构类似于“门阵列”的器件,它由简单的查找表组成可编程逻辑门,再构成阵列形式。大多数FPGA属于此类器件。,2.1.2 可编程逻辑器件分类,按编程工艺分类,熔
5、丝(Fuse)型器件。反熔丝(Antifuse)型器件。UEPROM型器件,即紫外线擦除/电可编程器件。E2PROM编程器件,即电可擦写编程器件。SRAM型器件,即SRAM查找表结构的器件。Flash型器件。,2.1.2 可编程逻辑器件分类,缩短研制周期,整个设计通常只需几天便完成,缩短了产品研制周期,有利于产品的快速上市。降低设计成本,采用可编程逻辑器件为降低投资风险提供了合理的选择途径,它不需掩膜制作费用,在设计的初期或在小批量的试制阶段,其平均单片成本远低于门阵列。提高设计灵活性,可编程逻辑器件是一种由用户编程实现芯片功能的器件,与由工厂编程的掩膜ASIC相比,具有更好的设计灵活性。,2
6、.1.3 可编程逻辑器件的优势,向高密度、大规模的方向发展。向系统内可重构的方向发展。向低电压、低功耗的方向发展。向高速可预测延时器件的方向发展。向混合可编程技术方向发展。,2.1.4 可编程逻辑器件的发展趋势,2.2.1 基本结构,PLD器件种类较多,不同厂商生产的PLD器件结构差别较大,本节选择PLD器件中一些具有代表性的结构来说明其实现的主要逻辑功能。图中所示为PLD器件的基本结构框图,它由输入缓冲电路、与阵列、或阵列、输出缓冲电路等四部分组成。,2.2 PLD器件的基本结构,2.2.1 基本结构,依据可编程的部位可将PLD器件分为可编程只读存储器PROM、可编程逻辑阵列PLA、可编程阵
7、列逻辑PAL、通用阵列逻辑GAL等四种最基本的类型,如表所示。,2.2 PLD器件的基本结构,2.2.1 基本结构,大部分FPGA器件采用了可编程查找表结构,这种结构基于SRAM查找表,采用RAM“数据”查找的方式。一个N输入查找表(LUT)可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。图中所示为4输入LUT。,2.2 PLD器件的基本结构,2.2.2 电路符号,在常用的EDA软件中,原理图一般是用图中所示的“常用符号”来描述表示的。,2.2 PLD器件的基本结构,2.2.2 电路符号,接入PLD内部的与或阵列输入缓冲器电路,一般采用互补结构,可用图a来表示,它等效于b
8、的逻辑结构。图c为PLD中与阵列的简化图形,图d为PLD中或阵列的简化图表示。,(b)PLD的互补输入,2.2 PLD器件的基本结构,(a)PLD的互补缓冲器,(c)PLD中与阵列的表示,(d)PLD中或阵列的表示,2.2.3 PROM,PROM即可编程只读存储器(Programmable Read Only Memory),ROM除了用作只读存储器外,还可作为PLD使用。一个ROM器件主要由地址译码部分、ROM单元阵列和输出缓冲部分构成。,2.2 PLD器件的基本结构,2.2.3 PROM,为了更清晰直观法表示PROM中固定的与阵列和可编程的或阵列,PROM可以表示为PLD阵列图,以42 P
9、ROM为例,如图所示。,2.2 PLD器件的基本结构,2.2.4 PLA,可编程逻辑阵列PLA对PROM进行了改进。PROM的与阵列可编程,而或阵列不可编程;PLA则是与阵列和或阵列都可编程,PLA的阵列如图所示。,2.2 PLD器件的基本结构,PLA与PROM的比较,图中是63 PLA与83 PROM的比较,两者可以实现相同的逻辑功能,PLA只需要6(23)条乘积项线,而不是PROM的8(23)条。节省了2条。当PLA的规模增大时,这个优势更加明显。,2.2 PLD器件的基本结构,2.2.5 PAL,PLA的利用率很高,但是软件算法过于复杂,运行速度下降。PAL的结构与PLA相似,也包含与阵
10、列、或阵列,但是或阵列是固定,只有与阵列可编程。PAL的结构和常用表示如图所示。,2.2 PLD器件的基本结构,PAL的结构,2.2.6 GAL,1985年,Lattice公司在PAL的基础上设计出了通用阵列逻辑器件GAL。GAL采用了E2PROM工艺,具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。,2.2 PLD器件的基本结构,高密度可编程逻辑器件(HDPLD)主要包括CPLD和FPGA,它们的逻辑规模都比较大,能够实现一些复杂的数字系统功能。高密度可编程逻辑器件近年来发展很快,目前已有集成度高达300万门以上、系统频率为200MHz以上的HDPLD供用户使用。CP
11、LD是由GAL发展起来的,其主体仍是与或阵列,并以可编程逻辑宏单元为基础,可编程连线集中在一个全局布线区;FPGA是以基本门单元为基础,构成门单元阵列,可编程的连线分布在门单元与门单元之间的布线区。下面分别介绍当前主流CPLD/FPGA器件的结构与特点。,2.3 CPLD/FPGA的结构特点,2.3.1 Lattice公司的CPLD/FPGA,Lattice是最早推出PLD的公司,其推出的CPLD产品主要有ispLSI、ispMACH等系列。20世纪90年代以来,Lattice首先发明了ISP(In-System Programmability)下载方式,并将E2CMOS与ISP相结合,使CP
12、LD的应用领域有了巨大的扩展。ispLSI器件系列 ispMACH4000系列 Lattice EC&ECP系列,2.3 CPLD/FPGA的结构特点,2.3.1 Lattice公司的CPLD/FPGA,ispLSI器件的基本结构:ispLSI器件都属于乘积项方式构成可编程逻辑的阵列型CPLD,基本结构由四部分组成:通用逻辑块GLB、集总布线区GRP、输入输出单元IOC和输出布线区ORP。,2.3 CPLD/FPGA的结构特点,2.3.2 Xilinx公司的CPLD/FPGA,Xilinx在1985年首次推出了FPGA,随后不断推出新的集成度更高、速度更快、价格更低、功耗更低的FPGA器件系列
13、。Virtex-4系列FPGA Spartan II&Spartan-3&Spartan 3E器件系列FPGA XC9500&XC9500XL系列CPLD,2.3 CPLD/FPGA的结构特点,2.3.2 Xilinx公司的CPLD/FPGA,Xilinx公司FPGA的基本结构:由三个部分组成:可编程逻辑块CLB(Configurable Logic Blocks)、可编程输入/输出块IOB(InPut/Output Block)和可编程内部连接PI(Programmable Interconnect)。,2.3 CPLD/FPGA的结构特点,2.3.3 Altera和Actel公司的CPLD
14、/FPGA,Altera是著名的PLD生产厂商,Altera公司的可编程逻辑器件具有高性能、高集成度和高性价比的优点,此外它还提供了功能全面的开发工具和丰富的IP核、宏功能库等。Altera公司目前能够提供以下5类宏功能模块:(1)数字信号处理类。(2)图像处理类。(3)通信类。(4)接口类。(5)处理器及外围功能模块。,2.3 CPLD/FPGA的结构特点,2.3.4 CPLD和FPGA的异同,根据结构特点和工作原理,以乘积项结构方式构成逻辑行为的器件称为CPLD,以查找表法结构方式构成逻辑行为器件称为FPGA。FPGA和CPLD都是可编程ASIC,有许多共同的特点,但由于CPLD和FPGA
15、硬件结构上的差异,使得它们具有各自的特点:在结构工艺方面;在触发器数量上;在逻辑规模和复杂度方面;在时延方面;,2.3 CPLD/FPGA的结构特点,可编程逻辑器件可以由用户编程实现专门要求的功能,主要是由于其提供了四种可编程资源:即位于芯片内部的可编程功能单元;位于芯片四周的可编程I/O;分布在芯片各处的可编程布线资源和片内存储块RAM。这里以FPGA为例,对这些资源作一个概括。,2.4 可编程逻辑器件的基本资源,1RAM查找表,在SRAM查找表结构中输入变量作为地址用来从RAM存储器中选择数值,RAM存储器中预先加载进去要实现函数的真值表数值,因此可以实现输入变量的所有可能的逻辑函数。可以
16、利用器件中相应结构的RAM寻址机构或分开的译码器由RAM的Q端输出选取它的输入数据。这个机构提供了有效的面积和可预测的延时,随输入变量数目的增加按比例改变。,2.4.1 功能单元,2基于多路开关的功能单元,采用这种形式的功能单元是基于如下的考虑,即只要在多路开关的输入端放置输入的变量、反变量、固定的0和1等相应的组合,两输入变量的所有函数就可以由单个2选1的多路开关来实现。,2.4.1 功能单元,3固定功能单元,此类功能单元提供单个固定的功能。单个固定功能有单级简单和严时短的优点,它的主要缺点是要求大量的功能单元才能实现用户设计的逻辑,而且相应功能单元的级联和布线的延时会导致整个性能的降低。,
17、2.4.1 功能单元,可编程逻辑器件器件的功耗通常由所用的I/O引腿决定,当该芯片有较多的I/O引腿被利用时,必须考虑I/O配置的潜在功耗及I/O块的有效性。否则,因功耗问题很可能会熔化一个可编程逻辑器件芯片,特别是对于这些塑料封装的器件。,2.4.2 输入输出焊盘,工艺线宽与供电电压的关系,布线资源是可编程逻辑器件中一种专用的内部互连结构,它主要用来提供高速可靠的内部连线,以保证信号在芯片内部的相邻功能单元之间、功能单元与I/O块之间进行有效的传输。可编程逻辑器件一般有以下几种基本的布线资源:长线直接连线 通用内部连线 开关矩阵,2.4.3 布线资源,2.4.3 布线资源,长线直接连,2.4
18、.3 布线资源,通用内部连线和开关矩阵,由于半导体工艺已进入到深亚微米(DSM)和超深亚微米(VDSM)时代,器件的密度大大提高,所以新一代的FPGA都提供片内RAM。这种片内RAM的速度是很高的,读操作的时间和组合逻辑延时一样,大约为5ns,写操作的时间大约为8ns,比任何芯片外解决方式要快很多倍。新一代FPGA的片内RAM可以分为两类:1块式片内RAM 2分布式片内RAM,2.4.4 片内RAM,可编程逻辑器件的编程元件采用了几种不同的编程技术,这些可编程元件常用来存储逻辑配置数据或作为电子开关。常用的可编程元件有如下四种类型:熔丝(Fuse)型开关;反熔丝(Antifuse)型开关;浮栅
19、编程元件(EPROM和EEPROM);基于SRAM的编程元件;,2.5 可编程逻辑器件的编程元件,熔丝型开关是最早的可编程元件,它由可以用电流熔断的熔断丝组成。在编程时,需要保持连接的节点保留熔丝,需要取除连接的节点烧掉熔丝,由最后留在器件内的不烧断的熔丝模式决定器件的逻辑功能。熔丝型开关的编程原理如图所示。,2.5.1 熔丝型开关,反熔丝开关主要通过击穿介质来达到连通线路的目的。这些开关元件在未编程时处于开路状态,编程时,在其两端加上编程电压,反熔丝就会由高阻抗变为低阻抗,从而实现两个极间的连通,且编程电压撤除后也一直处于导通状态。,2.5.2 反熔丝型开关,1EPROM,EPROM的存储内
20、容不仅可以根据需要来编制,而且当需要更新存储内容时还可以将原存储内容抹去,再写入新的内容。EPROM的基本结构是一个浮栅管,浮栅管相当于一个电子开关,当浮栅中没有注入电子时,浮栅管导通;当浮栅中没有注入电子后,浮栅管截止。,2.5.3 浮栅编程元件,2EEPROM,EEPROM也写成E2PROM,它是电可擦除电编程的元件。EEPROM有多种工艺,也是基于浮栅技术。,2.5.3 浮栅编程元件,3.闪速存储器(Flash Memory),闪速存储器是一种新的可再编程只读存储器,它把EPROM的高密度、低成本的优点与EEPROM的电擦除性能结合在一起,具有非常广阔的应用前景。闪速存储器与EPROM和
21、EEPROM一样属于浮栅编程器件,其存储单元也是由带两个栅极的MOS管组成。,2.5.3 浮栅编程元件,SRAM是指静态存储器,大多数FPGA用它来存储配置数据,所以又称为配置存储器。它的基本单元是由5个晶体管组成的存储器。图2.32为SRAM的单元结构,它由两个CMOS反相器和一个用来控制读写的MOS传输开关构成,其中每个CMOS反相器包含了两个晶体管(一个下拉n沟道晶体管和一个上拉p沟道晶体管)。,2.5.4 基于SRAM的编程元件,了解可编程逻辑器件的设计开发流程对于正确地选择和使用EDA软件,优化设计项目,提高设计效率十分有益。一个完整的、典型的EDA设计流程既是自顶向下设计方法的具体
22、实施途径,也是EDA工具软件本身的组成结构。在实践中进一步了解支持这一设计流程的诸多设计工具,有利于有效地排除设计中出现的问题,提高设计质量和总结设计经验。,2.6 可编程逻辑器件的设计与开发,CPLD/FPGA的设计流程主要包括设计输入、综合、CPLD/FPGA适配、时序与功能仿真、以及编程下载等步骤。,2.6.1 CPLD/FPGA设计流程,1设计输入(Design Input)。设计输入是设计者将所要设计的电路以开发软件要求的某种形式表达出来。设计输入有多种表达方式,其中最常用的是原理图方式和HDL文本方式两种。2综合(Synthesis)。综合过程将把软件设计的HDL描述与硬件结构挂钩
23、,是将软件转化为硬件电路的关键步骤,是文字描述与硬件实现的一座桥梁。3布局布线(适配)。适配器也称为结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、Jam格式的文件。,2.6.1 CPLD/FPGA设计流程,4时序与功能仿真 在编程下载前必须利用EDA工具对适配生成的结果进行模拟测试,就是所谓的仿真。5编程下载和硬件测试 把适配后生成的下载或适配文件,通过编程器或编程电缆装入到FPGA或CPLD器件中的过程称为下载。,2.6.1 CPLD/FPGA设计流程,这里主要介绍目前广泛使用的以开发FPGA和CPLD为主的EDA工具,及部分关于
24、ASIC设计的EDA工具。根据CPLD/FPGA的设计流程,其开发工具大致可分为设计输入编辑器、HDL综合器、仿真器、适配器(布局布线器)、和下载编程器等五个模块。当然这种分类并不是绝对的,现在也有集成的EDA开发环境,如MAX+plusII。,2.6.2 CPLD/FPGA开发工具,1设计输入编辑器。设计输入编辑器可以接受不同的设计输入表达式,如原理图输入方式、状态图输入方式、波形输入方式以及HDL的文本输入方式。2HDL综合器常用的三种综合器。(1)Synopsys公司的FPGA Compiler、DC-FPGA综合器。(2)Synplicity公司的Synplify Pro综合器。(3)
25、Mentor子公司Exemplar Logic的LeonardoSpectrum综合器。,2.6.2 CPLD/FPGA开发工具,3仿真器。在EDA设计技术中仿真的地位十分重要,行为模型的表达、电子系统的建模、逻辑电路的验证乃至门级系统的测试,每一步都离不开仿真器的模拟检测。4适配器。适配器的任务是完成目标系统在器件上的布局布线。适配通常都由可编程逻辑器件的厂商提供的专门针对器件开发的软件来完成。5下载器。把设计下载到对应的实际器件,实现硬件设计。软件部分一般都由可编程逻辑器件的厂商提供的专门针对器件下载或编程软件来完成。,2.6.2 CPLD/FPGA开发工具,由于各PLD公司的CPLD/F
26、PGA产品在价格、性能、逻辑规模、封装以及EDA开发工具性能等方面各有千秋,设计者必须根据不同的开发项目在其中做出最佳的选择一般应考虑以下几个问题:1器件资源的选择 2器件速度的选择 3器件功耗的选择 4器件封装的选择 5CPLD和FPGA之间的选择 6其他因素的选择,2.6.3 CPLD/FPGA的应用选择,为了解决ASIC及可编程逻辑器件等超大规模集成电路的测试问题,自1986年开始,欧美一些大公司联合成立了一个组织“联合测试行动小组”(JTAGJoint Test Action Group),开发并制定了IEEE1149.1-1990边界扫描测试技术规范。这个边界扫描测试(BST)结构提
27、供了有效地测试高密度引线器件和高密度电路板上元件的能力。目前,大多数高密度的可编程逻辑器件都已普遍应用JTAG技术,支持边界扫描技术。,2.7 可编程逻辑器件的测试技术,边界扫描测试的原理是在核心逻辑电路的输入和输出端口都增加一个寄存器,通过将这些I/O上上午寄存器连接起来,可以将测试数据串行输入到被测单元,并且从相应端口串行读出,从而可以实现三方面的测试。分别是:芯片级测试、板级测试和系统级测试。,2.7.1 边界扫描测试原理,JTAG边界扫描测试法,IEEE1149.1标准规定了边界扫描的测试端口、测试结构和操作指令。,2.7.2 IEEE 1149.1标准,IEEE 1149.1结构,1
28、端口定义:TCK(测试时钟端口),TMS(测试模式选择),TDI(测试数据输入),TDO(测试数据输出)。2TAP控制器:TAP控制器的作用是将串行输入的TMS信号进行译码,产生该模式下所需的各个控制信号。,2.7.2 IEEE 1149.1标准,4寄存器组:指令寄存器(IR),旁路寄存器(BR),标志寄存器(IDR),边界扫描寄存器(BSR)。5相关指令:JTAG规定了3个强制指令:EXTEST、BYPASS、SAMPLE/PRELOAD。,2.7.2 IEEE 1149.1标准,标志寄存器,边界扫描寄存器,1板级测试策略,利用IEEE 1149.1进行板级测试的策略分以下3步:(1)根据IEEE 1149.1标准建立边界扫描的测试结构。(2)利用边界扫描测试结构,对被测部分之间的连接进行矢量输入和响应分析。这是板级测试的主要环节,也是边界扫描结构的主要应用。可以用来检测由于电气、机械和温度导致的板级集成故障。(3)对单个核心逻辑进行测试,可以初始化该逻辑并且利用其本身的测试结构。,2.7.3 边界扫描策略及相关工具,2相关EDA工具,工业界主要采用的边界扫描工具有Mentor的BSDArchiter和Synopsys的BSD Complier。边界扫描设计流程如图所示。,2.7.3 边界扫描策略及相关工具,