可编程逻辑器件及其编程技术课件_第1页
可编程逻辑器件及其编程技术课件_第2页
可编程逻辑器件及其编程技术课件_第3页
可编程逻辑器件及其编程技术课件_第4页
可编程逻辑器件及其编程技术课件_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

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

文档简介

1、第8章 可编程逻辑器件及其编程技术 第8章 可编程逻辑器件及其编程技术 8. .1 可编程逻辑器件及可编程逻辑器件及EDA技术发展概况技术发展概况 8. .2 可编程逻辑器件的分类可编程逻辑器件的分类 8. .3 阵列型可编程逻辑器件阵列型可编程逻辑器件(PLD) 8. .4 单元型可编程逻辑器件单元型可编程逻辑器件(FPGA) 8. .5 可编程逻辑器件的编程设计可编程逻辑器件的编程设计 8. .6 硬件描述语言硬件描述语言(VHDL) 第8章 可编程逻辑器件及其编程技术 8.1 可编程逻辑器件及可编程逻辑器件及EDA技术发展概况技术发展概况 可编程逻辑器件(PLD, Programmabl

2、e Logic Devices)可以由用户在开发装置的辅助下,对器件进行编程,使之实现所需的组合或时序逻辑功能。 PLD的发展概况如下: 1970年制成的PROM是最早出现的PLD器件, 主要用作存储器。 2 0 世 纪 7 0 年 代 中 期 出 现 了 可 编 程 逻 辑 阵 列 ( P L A , ProgrammableJP Logic Array),但由于编程复杂而没有得到广泛应用。 20世纪70年代末期,美国MMI公司率先推出了可编程阵列逻辑(PAL, ProgrammableArray Logic)。 它输出结构种类多, 设计灵活, 因此得到了广泛应用。 第8章 可编程逻辑器件及

3、其编程技术 20世纪80年代初, Lattice公司发明了通用阵列逻辑(GAL, Generic Array Logic)。 它比PAL使用更加灵活, 得到了广泛应用。 20世纪80年代中期, Altera公司推出了一种新型的可擦除、 可编程逻辑器件(EPLD, Erasable Programmable Logic Device)。 它的密度比PAL和GAL高, 设计更灵活。 1985年,Xilinx公司首家推出了现场可编程门阵列(FPGA, Filed Programmable Gate Array)。它是一种新型的高密度PLD器件,采用CMOSCD*2SRAM工艺制作,可以实现在系统编程

4、。 20世纪80年代末,Lattice公司提出了在系统可编程(In System Programmable)技术,以后相继出现了一系列复杂可编程逻辑器件(CPLD, Complex PLD)。 第8章 可编程逻辑器件及其编程技术 20世纪90年代以来,高密度PLD在生产工艺、 器件密度、 编程和测试技术等方面都有了飞速发展。 现在构成大的数字系统仅需要三类“积木块”:微处理器、存储器和可编程逻辑器件。 自20世纪70年代可编程逻辑器件问世以来,数字电路的设计方法和手段得到了不断的改进和创新。传统的数字系统设计是通过设计电路板来实现系统功能的,而采用可编程逻辑器件是基于芯片的设计方法。 这显然提

5、高了设计的灵活性,大大减少了电路图和电路板设计的工作量, 同时, 也可以使系统体积小、 功耗低, 提高系统的性能指标和可靠性。 第8章 可编程逻辑器件及其编程技术 20世纪80年代中期以来,Xilinx、Altera、Lattice等公司相继推出各自的在系统可编JP2程逻辑器件和相应的开发软件,这使电子设计自动化(EDA, Electronic Design Automanion)技术有了迅速的发展。EDA技术以计算机为工具,代替设计者完成数字系统的逻辑综合、布局布线和设计仿真等工作,设计者只需要完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果。 EDA技术使电子设计发生了革命性

6、变化。 第8章 可编程逻辑器件及其编程技术 8.2 可编程逻辑器件的分类可编程逻辑器件的分类 可编程逻辑器件主要有以下3种分类方法。1. 按器件密度分类按器件密度分类 表表8.2.1 可编程逻辑器件按密度分类可编程逻辑器件按密度分类 第8章 可编程逻辑器件及其编程技术 2. 2. 按结构特点分类按结构特点分类目前常用的可编程逻辑器件都是从与或阵列和门阵列发展起来的,所以也可以把可编程逻辑器件分为阵列型PLD和现场可编程门阵列FPGA,又称为阵列型PLD和单元型PLD,如表8.2.2所示。 表表8.2.2 可编程逻辑器件按结构特点分类可编程逻辑器件按结构特点分类 第8章 可编程逻辑器件及其编程技

7、术 3. 3. 按编程方法分类按编程方法分类按编程方法分类, 可编程逻辑器件可分为4种, 如表8.2.3所示。 表表8.2.3 可编程逻辑器件按编程方法分类可编程逻辑器件按编程方法分类 第8章 可编程逻辑器件及其编程技术 上表中,熔丝型编程原理在第7章中已介绍过。由于熔丝元件要留出较大的保护空间,占用芯片的面积较大,而反熔丝元件克服了熔丝元件的缺点,它通过击穿介质来连通线路,实现一次性编程。紫外线擦除、电编程(EPROM、 UVCMOS工艺结构)和电擦除、电编程(E2CMOS或快闪存储单元结构)都是基于第7章中介绍过的各种浮栅编程原理。 基于SRAM的可编程逻辑器件在每次上电工作时, 需要从器

8、件外部的EPROM、E2PROM或其他存储体上将编程信息写入器件内部的SRAM中。这类器件在工作中可以快速进行任意次数的编程, 实现板级和系统级的动态配置,因而也称为在线重配置(ICR, In Circuit Reconfigruable)的可编程逻辑器件或可重配置硬件。 第8章 可编程逻辑器件及其编程技术 8.3 阵列型可编程逻辑器件(阵列型可编程逻辑器件(PLD) 8.3.1 PLD8.3.1 PLD电路的表示方法电路的表示方法因为PLD器件内部电路的连接规模大,用传统的逻辑电路表示方法很难描述,所以采用了特殊的逻辑符号和简化画法来表示其内部电路。其电路内部基本逻辑符号如图8.3.1所示。

9、而且, 还常采用图8.3.2(a)、(b)所示的逻辑符号来表示多输入变量的与逻辑和或逻辑。图中,竖线与乘积线的交叉点表示在生产时用熔丝(或浮栅管)连接,是可编程点。交叉点上如果有“”,表示固定连接点,用户不可改变; 交叉点上如果有“”,表示编程连接;若交叉点上没有标记,表示交叉点是断开的。 所以图8.3.2(a)的输出为F=AC;图8.3.2(b)的输出为F=AB。 图8.3.2(c)为缓冲器的逻辑符号。 第8章 可编程逻辑器件及其编程技术 图8.3.1 PLD内部逻辑符号(a) 国标符号; (b) 国际符号 (b)ABF当 B1时11ABFABFAFABF1F ABF A B(a)ABFAB

10、ABFABFAFF&AF BAFAF 第8章 可编程逻辑器件及其编程技术 图8.3.2 PLD与逻辑、或逻辑、缓冲器和数据选择器的画法(a)F=AC; (b)F=A+B;(c) 缓冲器的逻辑符号;(d) 2选1和4选1可编程数据选择器 &A B C(a)A B C(b)(c)ABCB AC AFF1MUXMUXMUXMUX(d)第8章 可编程逻辑器件及其编程技术 8.3.2 8.3.2 简单简单PLDPLD的类型和主要特点的类型和主要特点简单PLD的基本结构如图8.3.3所示。 图8.3.3 简单PLD的基本结构 输入电路与阵列或阵列输出电路输 入输 出第8章 可编程逻辑器件及

11、其编程技术 简单PLD的产品主要有4种类型:可编程只读存储器PROM、 可编程逻辑阵列PLA、可编程阵列逻辑PAL和通用阵列逻辑GAL。它们都包含有一个与阵列和一个或阵列。PLA、PAL和GAL在其或阵列的输出还具有驱动门、寄存器或输出逻辑宏单元,可以实现各种组合逻辑或时序逻辑功能。 各种简单PLD器件的结构特点如表8.3.1所示。 第8章 可编程逻辑器件及其编程技术 表表8.3.1 各种简单各种简单PLD器件的结构器件的结构 第8章 可编程逻辑器件及其编程技术 1. 1. 可编程只读存储器可编程只读存储器PROMPROM及其应用及其应用PROM的原理已在第7章中作了介绍。PROM是一种可编程

12、逻辑器件,它由固定的与阵列和可编程的或阵列组成。在图8.3.4所示的PROM中,其固定的与阵列的输出为输入变量ABCD的16个最小项。 其或阵列有 164=64个可编程点, 输出字长为 4位。我们知道,任何组合逻辑电路都可用最小项之和式来表示。因此,可以用PROM来实现各种组合逻辑功能。PROM常用于存储各种固定多输入/多输出的函数表。 第8章 可编程逻辑器件及其编程技术 图8.3.4 PROM的与或逻辑阵列 A&BCD&与阵列(固定)G3G2G1G0或阵列(可编程)111 1第8章 可编程逻辑器件及其编程技术 表表8.3.2 4位二进制码转换为格雷码的转换表位二进制码转换为格

13、雷码的转换表 第8章 可编程逻辑器件及其编程技术 由代码转换表写出输出格雷码的逻辑函数表达式: 151413121110983111098765421312111054321141310965210XXXXXXXXGXXXXXXXXGXXXXXXXXGXXXXXXXXG根据逻辑表达式对PROM或阵列进行编程,在或阵列的输出就可得到格雷码G3G2G1G0, 如图8.3.5所示。 第8章 可编程逻辑器件及其编程技术 图8.3.5 用PROM实现4位二进制码转换为格雷码的与或阵列 B3与阵列(固定)G3G2G1G0或阵列(可编程)111 1B2B1B0X0&X1X2X3X4X5X6X7X8X

14、9X10X11X12X13X14X15第8章 可编程逻辑器件及其编程技术 2. PAL2. PAL的主要特点的主要特点PAL器件的与阵列是可编程的, 或阵列是固定的。与PROM相比,PAL的芯片品种较多。不同类型PAL的容量大小和输出电路类型不同,用户可根据使用要求,选择其阵列结构大小、输入/输出的数目与方式、要实现的是组合逻辑功能或时序逻辑功能等来选择芯片类型。 图8.3.6是PAL16X4的原理图及芯片引脚图。 第8章 可编程逻辑器件及其编程技术 图8.3.6 PAL16X4的原理图及芯片引脚图 (a) 原理图; (b) 芯片引脚图 PAL16X4输入(031)01 23 45 6 78

15、91011121314151617181920212223242526272829303119181716151413121110987654321(VCC)(GND)11121314151617181920078151623243132394047485556639876543211 23 4 56 7 8 910 12 14 16 18 20 22 24 26 28 3011 13 15 17 19 21 23 25 27 29 310(a)(b)D QQD QQD QQD QQ第8章 可编程逻辑器件及其编程技术 PAL的输出方式有以下5种基本类型。 1) 基本组合输出型如图8.3.7(a

16、)所示,这类PAL可以实现多种组合逻辑功能。其输出有3种形式:型号中带有字符H的芯片(如PAL10H8)输出为高电平有效;型号中带有字符L的芯片(如PAL12L6)输出为低电平有效;型号中带有字符C的芯片(如PAL20C1)为互补输出。 第8章 可编程逻辑器件及其编程技术 2) 可编程的IO结构 如图8.3.7(b)所示, 这类芯片除与阵列和或阵列外, 还具有: 可用与阵列直接控制输出三态缓冲器, 当输出三态缓冲器未被选通时, 可将此引脚(IO端)作为 PAL的输入,当输出三态缓冲器已被选通时,它就具有IO功能; 反馈结构,能使输出返送回与阵列。 第8章 可编程逻辑器件及其编程技术 3) 带反

17、馈的寄存器输出结构 如图8.3.7(c)所示,这种结构是用系统的时钟脉冲的上升沿, 将与或输出存于D触发器,触发器的输出Q经三态缓冲器后传输到输出引脚端;Q端信号作为反馈输入,经互补输出的缓冲器返送回PAL的与阵列。这一结构使PAL具有记忆功能, 可以完成时序电路的设计。这类器件的型号带有字符R,如PAL16R8等。 第8章 可编程逻辑器件及其编程技术 4) 具有异或功能及反馈的寄存器输出 如图8.3.7(d)所示, 这类器件的与或项分为两部分再异或, 输出信号在系统时钟的上升沿存入D触发器。 这类器件的型号带有字符X, 如PAL20X4等。 5) 算术选通反馈结构如图8.3.7(e)所示,是

18、在第4种结构的基础上增加了反馈选通电路,可以对反馈信号和专用输入信号实现或操作, 由4个或门构成4种形式的或逻辑送至与阵列,通过编程可得到16种不同的组合逻辑输出。这种结构的PAL器件对实现快速算术操作(加、减、大于、小于、等于等)很方便。 第8章 可编程逻辑器件及其编程技术 图8.3.7 PAL的内部结构及输出方式(a) 基本组合输出型; (b)可编程I/O结构;(c) 带反馈的寄存器结构;(d)具有异或功能及反馈的寄存器输出结构; (e)算术选通反馈结构 (a)1&(b)&I/O1第8章 可编程逻辑器件及其编程技术 图8.3.7 PAL的内部结构及输出方式(a) 基本组合输

19、出型; (b)可编程I/O结构;(c) 带反馈的寄存器结构;(d)具有异或功能及反馈的寄存器输出结构; (e)算术选通反馈结构 (c)&CLO CKENQ(d)&CLO CKENQDQCP QDQCP Q111 1第8章 可编程逻辑器件及其编程技术 图8.3.7 PAL的内部结构及输出方式(a) 基本组合输出型; (b)可编程I/O结构;(c) 带反馈的寄存器结构;(d)具有异或功能及反馈的寄存器输出结构; (e)算术选通反馈结构 (e)&CLOCKENQDQCP Q111I1111第8章 可编程逻辑器件及其编程技术 3 3 GALGALGAL采用先进的电改写CMOS(

20、E2CMOS,Electrically Erasable CMOS)工艺,数秒内即可完成芯片的擦除和编程过程,还可设置加密。GAL与PAL器件的不同是其输出采用了输出逻辑宏单元(OLMC),可编程功能更强,GAL器件可应用于数字信号处理、图形图像处理、存储器控制、以微处理器为基础的系统、总线接口、通信工业控制等领域。一个GAL芯片可以实现既有组合逻辑功能又有时序逻辑功能的数字小系统。 在研制和开发数字系统时更为方便。目前较常用的产品有两种: GAL16V8(20引脚)和GAL20V8(24引脚)。下面以GAL16V8为例来说明GAL的结构。 图8.3.8所示为其原理图及引脚图。 第8章 可编程

21、逻辑器件及其编程技术 图8.3.8 GAL16V8的原理图及引脚图(a) 原理图; (b) 引脚图 2OLMC(19)CLK193OLMC(18)184OLMC(17)175OLMC(16)166OLMC(15)157OLMC(14)148OLMC(13)139OLMC(12)1211OE10(a)GAL16V81234567892019181716151413121110(GND)(VCC)(b)123 4567 891011121314151617181920212223242526272829303101234567891012141113161820221921151723242628

22、302729253132343638353733394042444643454147485052545153495556586062596157630123 4567 89 10111213141516171819202122232425262728293031第8章 可编程逻辑器件及其编程技术 1) 基本组成可编程与阵列由88个与门构成,每个与门有32个输入端,所以形成32列64行=2048个编程单元,即在与阵列中隐含了一个2 K的E2PROM。 有8个输出逻辑宏单元OLMC(Output Logic Macrocell)。 有16个具有互补输出的缓冲器,其中8个为输入缓冲器, 接29引脚(

23、引脚29只能做输入端),另外8个为输出逻辑宏单元, 反馈到输入列线的缓冲器。 第8章 可编程逻辑器件及其编程技术 有8个三态输出缓冲器接1219引脚,在三态门控制下, 1219引脚既可以做输出端又可以做输入端(即IO结构)。 引脚1为时钟(CLK)的输入端,引脚11为三态输出缓冲器的使能控制端(OE)。 引脚20为电源VCC(5 V)的输入端; 引脚 10为接地端(GND)。 第8章 可编程逻辑器件及其编程技术 2) 输出逻辑宏单元OLMC的结构8个输出逻辑宏单元OLMC(12)OLMC(19)的内部结构完全相同,如图8.3.9所示,均由8输入或门、异或门、1个D触发器和4个数据选择器所组成,

24、但外部连线稍有不同,图中n表示本级引脚号,m表示邻级引脚号。 第8章 可编程逻辑器件及其编程技术 图8.3.9 输出逻辑宏单元OLMC D3D2D1D0Y2D3D2D1D0Y4D0D1A0Y31DD0D1A0Y1来自与阵列来自邻级输出反馈OECLKOECLKA0A1AC0AC1(n)AC1(m)I/O(m)I/O(n)QQAC0AC1(n)A0A1VCCXOR(n)D1D2BC111&1第8章 可编程逻辑器件及其编程技术 GAL中有4个结构控制字:SYN、AC0、AC1(n)、XOR(n),用以控制将OLMC配置成实现各种组合逻辑和时序逻辑功能。 这4个控制字不受GAL外部引脚的控制,

25、而是在对GAL编程过程中由软件翻译用户源程序后自动设置。其中SYN和AC0所设置的值对8个OLMC均相同,而AC1(n)和XOR(n)对不同OLMC则可能有不同的值。 第8章 可编程逻辑器件及其编程技术 现将OLMC中各部分的逻辑功能简介如下: 8输入或门:它的每一个输入来自于与阵列中的一个乘积项。 异或门:其输入为或门的输出B和控制字XOR(n),异或门输出到D触发器的D端及输出数据选择器的一个输入端。当XOR(n)=1时,D=B,异或门起反相器作用;当XOR(n)=0时, D=B,异或门作为同相缓冲器使用。 D触发器:它使GAL能实现时序逻辑功能。其输出Q和Q在控制字AC0、AC1(n)及

26、时钟CLK的控制下,经输出数据选择器输出,或经反馈数据选择器反馈到与阵列。 第8章 可编程逻辑器件及其编程技术 4个数据选择器:乘积项数据选择器用于控制来自于与阵列的第一乘积项,控制信号为AC0和AC1(n)。由图8.3.9可知, AC0和AC1(n)中任何一个为0时,A0=1,第一乘积项被选中,成为或门的一项输入;而当AC0AC1(n)=11时,A0=0,低电平被送到或门,作为或门的开门信号。 输出数据选择器:用于控制输出是组合的还是寄存的。 其控制信号也是AC0和AC1(n)。由图8.3.9可知,控制字AC0和AC1(n)通过或非门后接至数据选择器的使能端A0,控制字如表8.3.3所示。当

27、AC0 AC1(n)=10时,Y0=Q,输出是寄存的。当AC0、 AC1(n)处于其他状态时,输出数据选择器将异或输出值送到输出三态缓冲器,输出是组合的。 第8章 可编程逻辑器件及其编程技术 三态数据选择器:由图8.3.9可知,它在AC0和AC1(n)的控制下,从4路信号中选一路信号作为输出三态缓冲器使能端的控制信号。AC0和AC1(n)对输出三态缓冲器的全部控制功能如表8.3.4所示。 第8章 可编程逻辑器件及其编程技术 表表8.3.3 输出数据选择器输出数据选择器的控制功能的控制功能 第8章 可编程逻辑器件及其编程技术 表表8.3.4 三态数据选择器三态数据选择器的控制功能的控制功能 第8

28、章 可编程逻辑器件及其编程技术 反馈数据选择器:它根据控制信号AC0、AC1(n)或AC1(m)的值选择不同信号(地电平、邻级OLMC输出、本级D触发器的Q和本级OLMC输出)给与阵列作为输入信号。其全部控制功能如表8.3.5所示。在此应特别指出,图8.3.8中OLMC(12)和OLMC(19)两个输出逻辑宏单元的AC0=SYN、AC1(m)=SYN,其他 6个 OLMC的AC1(m)等于邻级的AC1(n)的值。 如OLMC(18)中的n=18, 其中AC1(m)的m=19,这说明OLMC(18)的反馈缓冲器的输入信号还与OLMC(19)中的AC1(19)有关。 第8章 可编程逻辑器件及其编程

29、技术 表表8.3.5 反馈数据选择器反馈数据选择器控制功能控制功能 第8章 可编程逻辑器件及其编程技术 3) 输出逻辑宏单元OLMC的功能配置 由于GAL器件具有用户可编程的输出逻辑宏单元, 因此通过编程软件能自动设置4个结构控制字SYN、AC0、AC1(n)、XOR(n)的组态,使OLMC能配置成如图8.3.10所示的5种电路结构和表8.3.6所示的5种输出工作方式。 有寄存器的组合输出方式,是指在8个输出逻辑宏单元中, 有的配置成组合输出,有的配置成寄存器输出。 纯寄存器输出方式配置对8个OLMC都适用。 第8章 可编程逻辑器件及其编程技术 图8.3.10 OLMC的5种组态结构方式(a)

30、 纯输入方式; (b) 纯组合输出方式; (c) 三态控制的组合输出方式;(d) 有寄存器的组合输出方式; (e) 纯寄存器输出方式 1NCNCOECLKNCNCNCOECLKI/O来自邻级输出EN(a)第8章 可编程逻辑器件及其编程技术 111111111111CLKOEVCCNCNCENCLKOENCNCENI/OXOR(n)XOR(n)NCNCNCI/ONCNCCLKOE(b)(c)(d)(e)NCI/OOEENDQQXOR(n)CLKI/ONCOEENOENCCLKXOR(n)CLK图8.3.10 OLMC的5种组态结构方式(a) 纯输入方式; (b) 纯组合输出方式; (c) 三态控

31、制的组合输出方式;(d) 有寄存器的组合输出方式; (e) 纯寄存器输出方式 第8章 可编程逻辑器件及其编程技术 表表8.3.6 OLMC的工作方式的工作方式 第8章 可编程逻辑器件及其编程技术 上述两种输出方式时,1号引脚必须作CLK输入端;而11号引脚必须接低电平(即OE),三态缓冲器才会导通。 由上所述可知,结构控制字的取值决定了OLMC的工作方式。 但设计者并不需要直接设定结构控制字的取值,只要按照GAL设计软件语法的要求对所设计的逻辑功能进行描述,就会在计算机辅助设计软件的支持下自动形成结构控制字的设置。 第8章 可编程逻辑器件及其编程技术 8.3.3 8.3.3 高密度阵列型高密度

32、阵列型PLDPLD的基本结构的基本结构EPLD和CPLD是从PAL、GAL发展起来的高密度阵列型PLD器件。它们大多采用了CMOS EPROM、EPROM和快闪存储器等编程技术,具有高密度、高速度、低功耗等特点。目前各主要半导体公司(Xilinx、Altera、Lattice、AMD等)生产的高密度PLD产品有各自的特点,但总体结构基本相同。大多数EPLD和CPLD器件中至少包含了3种结构:可编程逻辑宏单元(也称为通用逻辑模块GLB, Generic Logic Block)、可编程I/O单元、 可编程内部连线。 第8章 可编程逻辑器件及其编程技术 在系统可编程逻辑器件(ispPLD)是Lat

33、tice公司于20世纪90年代推出的阵列型在系统可编程高密度PLD器件, 图8.3.11为ispLSI1032的电路结构框图,它将整个芯片分成几个区,每个区有自己的通用逻辑模块、可编程的输出布线区 ORP(Output Routing Pool)、编程控制电路和输入输出单元 IOC(IO Cell)。各区之间的联系通过一个可编程的全局布线区 GRP(Global Routing Pool)来实现。这种结构的优点是每个区的阵列传输路径短,可减少传输延迟时间。 第8章 可编程逻辑器件及其编程技术 图图8.3.11 ispLSI1032的电路结构框图的电路结构框图 ORPC0C1C2C3C4C5C6

34、C7ORP(输出布线区)D7D6D5D4D3D2D1D0ORPA0A1A2A3A4A5A6A7ORPB7B6B5B4B3B2B1B0时钟分配网络CLK0CLK1CLK2IOCLK0IOCLK1Y0Y1Y2Y3I/O16I/O31I/O48I/O63I/O32 I/O47N4N5I/O0 I/O15N1N0N2N3GRP(全局布线区)GLB(通用逻辑模块)IOC(输入/输出单元)RESET输入总线输入总线大模块N6N7第8章 可编程逻辑器件及其编程技术 1. 1. 可编程逻辑宏单元可编程逻辑宏单元可编程逻辑宏单元主要包括与或阵列、可编程触发器和多路选择器等电路,能独立地配置为组合或时序工作方式。

35、 EPLD器件和GAL器件相似,其逻辑宏单元和I/O做在一起, 称为输出逻辑宏单元(OLMC),但其与阵列及宏单元数比GAL大得多。CPLD器件的宏单元在内部,如图8.3.11电路中所示的GLB单元。EPLD和CPLD除了高密度外,其很多优点也反映在可编程逻辑宏单元上。可编程逻辑宏单元在电路上做了以下改进: 第8章 可编程逻辑器件及其编程技术 1) 与或逻辑阵列中的改进有的EPLD的与或逻辑阵列中每一组乘积项的数目不完全相等,这既便于产生不同项数的与或逻辑函数,又有利于提高乘积项的利用率。乘积项共享的可编程结构,可使与逻辑阵列的乘积项得到充分利用。在EPLD和CPLD的宏单元中,可以借助可编程

36、开关将同一单元(或其他单元)中的或门与之联合起来使用,或者在每个宏单元中提供未使用的乘积项供其他宏单元使用和共享。 图8.3.12所示为EPM7128E乘积项共享电路。由图可知,乘积项可以单独送出,或相加,或并联扩展到相邻宏单元,每个共享乘积项可以被任意宏单元共享使用。所以,乘积项共享的可编程结构提高了资源的利用率,可快速实现复杂的逻辑函数。 第8章 可编程逻辑器件及其编程技术 图图8.3.12 EPM7128E的乘积项共享结构的乘积项共享结构 乘积项选择矩阵乘积项选择矩阵ClockClear共享乘积项并联扩展ClockClearPreset来自上一个宏单元宏单元乘积项逻辑宏单元乘积项逻辑到下

37、一个宏单元第8章 可编程逻辑器件及其编程技术 2) 多触发器结构和“隐埋”触发器结构GAL的OLMC中只有一个触发器,而EPLD和CPLD的宏单元内通常含有2个或2个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出不与输出端相连,可以通过相应的缓冲电路反馈到与阵列,从而与其他触发器一起构成较复杂的时序电路,这些不与输出端相连的触发器就叫做“隐埋”触发器。这种结构可以做到不增加芯片引脚数,只增加触发器数目, 就可增加其内部资源。图8.3.13为EPLD器件ATV750的此类宏单元结构。 第8章 可编程逻辑器件及其编程技术 图8.3.13 ATV750的OLMC结构 (4 8项 )D

38、 Q(4 8项 )D QX O RI/OO LMCMU X01FF1SPCL K1AR1CL K2AR2O EFF2至 与 逻辑 阵 列来自与逻辑阵列1&11QQ 1第8章 可编程逻辑器件及其编程技术 3) 可编程时钟选择GAL器件一般只能实现同步时序电路,而EPLD和CPLD的触发器工作方式可以同步,也可以异步,还有预置和置零功能, 使EPLD和CPLD既可用于同步时序电路的设计,也可用于异步时序电路的设计。 图8.3.13中,有两个触发器,每个触发器的CLK、SP(预置)和AR(清零)都是独立的,分别由与逻辑阵列的一个乘积项给出,是可编程的异步工作方式。每个触发器的输出都直接反馈到

39、与逻辑阵列,可为时序逻辑电路的设计提供更多方便。 第8章 可编程逻辑器件及其编程技术 2. 2. 可编程输入可编程输入/ /输出单元输出单元可编程输入/输出单元简称I/O单元或IOC,一般阵列型高密度PLD只有少数几个专用输入端,大部分端口为可编程的IOC电路结构。 图8.3.14(a)所示为器件ispLSI 1016的IOC结构图, 由输入缓冲器、触发器、三态输出缓冲器和几个可编程的数据选择器组成。 触发器的工作方式有两种:RL=0时,被设置成锁存器; 当RL=1时,被设置成边沿触发器。 可编程数据选择器编程状态的不同组合,可以使IOC有不同组态,如图8.3.14(b)所示。 第8章 可编程

40、逻辑器件及其编程技术 图8.3.14 ispLSI 1016 的IOC结构和组态(a) IOC结构; (b) IOC的各种编程组态 VCCVCCI/ODQR/LMUX6MUX5MUX2MUX3MUX1自全局复位IOCLK1IOCLK0至全局布线区自输出布线区旁路通道自输出布线区自OEMUX注: 代表 E2CMOS 单元PinMUX4(a)第8章 可编程逻辑器件及其编程技术 图8.3.14 ispLSI 1016 的IOC结构和组态(a) IOC结构; (b) IOC的各种编程组态 Pin输 出 缓 冲 器Pin输 入 缓 冲 器PinD QLEIO CLK锁 存 输 入PinIO CLK寄 存

41、 器 输 入( 输 入 单 元 )D Q引 脚引 脚引 脚引 脚Pin反 向 输 出 缓 冲 器引 脚Pin三 态 输 出 缓 冲 器引 脚( 输 出 单 元 )引 脚Pin双 向I/O引 脚引 脚PinD QIO CLK( 双 向 单 元 )双 向I/O引 脚带 寄 存 器 输 入 的(b)第8章 可编程逻辑器件及其编程技术 可编程的数据选择器MUX1用于控制三态输出缓冲器的工作状态。MUX2用于选择输出信号的传送通道。MUX3用于选择输出极性。MUX4用于选择输入方式:在同步输入方式下,输入信号加到触发器的输入端后在时钟信号IOCLK到达时被存入触发器, 再经MUX4送到全局布线区;在异步

42、输入方式下,输入信号直接经MUX4送到全局布线区。MUX5和MUX6用于时钟信号的来源和极性的选择。 第8章 可编程逻辑器件及其编程技术 3 3 可编程连线阵列可编程连线阵列可编程连线阵列的作用是在各逻辑宏单元和IOC之间提供互连网络。在ispPLD器件中,可编程连线阵列又分为全局布线区(GRP)和输出布线区(ORP)两部分,如图8.3.11所示。 GRP和ORP都是可编程的矩阵网络,网络的每个交叉点是否接通受一位编程单元状态的控制。通过对GRP的编程,可以实现片内所有GLB之间的互相连接以及IOC与GRP的连接。通过对ORP的编程, 可以使各个分区中的任何一个GLB与一个IOC相连。 第8章

43、 可编程逻辑器件及其编程技术 4. 4. 在系统可编程通用数字开关(在系统可编程通用数字开关(ispGDSispGDS) ispGDS(Generic Doptal Switch)用于多片ISPPLD构成的数字系统中,通过ispGDS可以重新设置每个ISPPLD的组态,改变它们之间的连接以及它们与外围电路(如负载电路、 显示器件等)的连接。 图8.3.15(a)所示为在系统可编程通用数字开关ispGDS22的结构图, 它由可编程的开关矩阵和输入输出单元 IOC组成。 图8.3.15(b)所示为其 IOC的结构。 第8章 可编程逻辑器件及其编程技术 图8.3.15 在系统可编程通用数字开关isp

44、GDS22(a) 结构; (b) 输入输出单元(IOC) 可编程开关矩阵IOCIOCIOCIOCIOCIOCIOCIOCIOCIOCIOCA0A1A2A3A4A5A6A7A8A9A10IOCIOCIOCIOCIOCIOCIOCIOCIOCIOCIOCB0B1B2B3B4B5B6B7B8B9B10A列B列(a)01101100VCCI/OC0仅在 时接通C01C10接开关矩阵C1C2(b)IOC第8章 可编程逻辑器件及其编程技术 IOC的工作方式受编程信号C0、C1、C2的控制。当C0为低电平时,输出三态缓冲器处于工作状态,电路工作在输出方式。此时,数据选择器根据C1C2的编程状态从4个输入中选

45、中一个经输出三态缓冲器送到输出端。当C1C2 =11时,输出来自开关矩阵的信号;当C1C2 =10时,输出的是反相的来自开关矩阵的信号; 当C1C2为01和00时,输出端被分别设置为高电平和低电平。 开关矩阵中的每个交叉点是否接通受一位编程单元的状态控制,通过编程,可将A列中的任一IOC与B列中的任一IOC接通。 第8章 可编程逻辑器件及其编程技术 8.4 单元型可编程逻辑器件单元型可编程逻辑器件(FPGA) 8.4.1 FPGA8.4.1 FPGA的分类的分类1. 1. 按可编程逻辑块的大小分类按可编程逻辑块的大小分类按构成FPGA的基本逻辑单元可编程逻辑块的大小分类, FPGA可分为细粒度

46、结构和粗粒度结构。细粒度FPGA的资源利用率较高,但实现复杂逻辑功能时速度较慢。粗粒度FPGA完成复杂逻辑功能使用的逻辑块和内部连线少,因此性能较好, 但资源利用率较低。 第8章 可编程逻辑器件及其编程技术 2. 2. 按互连结构分类按互连结构分类按互连结构FPGA可分为分段互连型和连续互连型FPGA。 分段互连型FPGA中有不同长度的多种金属线,各线之间通过开关矩阵或反熔丝编程连接。这种结构走线灵活,但走线延时不可预测,设计修改会引起延时性能变化。连续互连型FPGA通常是利用贯穿于整个芯片的相同长度的金属线来实现逻辑功能块之间的互连, 因而布线延时是固定的、 可预测的。 第8章 可编程逻辑器

47、件及其编程技术 3. 3. 按编程特性分类按编程特性分类根据采用的开关元件不同,FPGA可分为一次性编程型和可重复编程型。 一次性编程型FPGA采用反熔丝型开关元件。这种器件的优点是体积小、集成度高、互连特性阻抗低、寄生电容小、速度高,但是只能一次性编程,比较适合于定型产品和大批量应用。 可重复编程型FPGA采用SRAM或快闪EPROM控制的开关元件, 其芯片中每个逻辑块的功能以及它们之间的互连模式由存储在芯片中的SRAM或快闪存储器EPROM中的数据决定。 第8章 可编程逻辑器件及其编程技术 SRAM型开关的FPGA是易失型器件。每次重新加电,FPGA都要重新装入配置数据。其优点是可重复编程

48、,系统上电时, 给FPGA加载不同的配置数据,就可实现不同的硬件功能,即实现系统功能的动态重构。 采用快闪EPROM控制开关的FPGA具有非易失性和可重复编程的双重优点。但在编程的灵活性上不如SRAM型FPGA,不能实现动态重构,其静态功耗也较大。 第8章 可编程逻辑器件及其编程技术 8.4.2 FPGA8.4.2 FPGA的基本结构的基本结构1. Xilinx1. Xilinx公司公司FPGAFPGA的结构特点的结构特点表8.4.1为Xilinx公司的XC系列产品的基本逻辑门、输入/输出模块IOB(InputOutput Block)、触发器以及可编程逻辑块CLB(Configurable

49、Logic Block)的容量。实际工作条件如表 8.4.2所示。由表可知,FPGA的逻辑容量密度大,集成度高,可大大减少印制电路板的空间,降低系统功耗,同时还可提高系统设计的工艺性和产品的可靠性。 第8章 可编程逻辑器件及其编程技术 表表8.4.1 Xilinx公司的公司的XC系列系列 第8章 可编程逻辑器件及其编程技术 表表8.4.2 XC系列的实际工作条件系列的实际工作条件 第8章 可编程逻辑器件及其编程技术 XC系列FPGA的基本结构为逻辑单元阵列 LCA(Logic Cell Array)分布结构。 LCA主要是由可配置存储器SRAM阵列、可编程逻辑块CLB矩阵及周围的输入输出模块I

50、OB、可编程内部连线PI(Programmable Interconnect)构成的。图8.4.1为 FPGA结构示意图,下面对各部分进行简单介绍。 第8章 可编程逻辑器件及其编程技术 图8.4.1 FPGA平面结构示意图 可编程输入/输出模块可编程逻辑模块可编程开关矩阵C LBCLBCLBCLBCLBCLBCLBCLBCLBCLBCLBCLBCLBCLBCLBCLB互连资源第8章 可编程逻辑器件及其编程技术 1) 可配置存储器SRAM(Static RAM)静态存储器(SRAM)以点阵形式分布于FPGA器件芯片中。 对于FPGA器件的编程,就是通过对SRAM加载不同的配置数据, 来决定和控制

51、各个CLB、IOB及PI的逻辑功能及它们之间的相互连接关系, 完成对芯片的设计。图 8.4.2示出了 FPGA中 SRAM的基本单元结构。 第8章 可编程逻辑器件及其编程技术 图8.4.2 SRAM的基本单元结构1Q配 置控 制数 据读 /写Q1第8章 可编程逻辑器件及其编程技术 2) 可编程逻辑块(CLB)CLB由可编程的组合逻辑块和寄存器组成。寄存器可由组合逻辑块或CLB的输出装入信息。寄存器的输出也可以驱动组合逻辑部分。FPGA的不同系列产品,其CLB的功能原理相同, 但结构和性能有差异。 图8.4.3(a)所示为XC4000系列的CLB结构框图, 通过对它的3个函数发生器G、F、H编程

52、可以实现图8.4.3(b)所示的三种配置模式。 第8章 可编程逻辑器件及其编程技术 图8.4.3 XC4000系列的CLB(a) 结构框图; (b) 不同配置模式 YXXG1 G4逻辑函数G4G3G2G1GF1 F4逻辑函数F4F3F2F1F逻辑函数HQDINDIN1DECRDSDR/S 控制H1 DIN S/R ECQR/S 控制Y1DECRDSD11时钟CPC1C2C3C4信号变换电路FHHFGHGHFG1H ,G ,FHFG(a)C1C1第8章 可编程逻辑器件及其编程技术 图8.4.3 XC4000系列的CLB(a) 结构框图; (b) 不同配置模式 G/FF/G4变量输入输出G/FF/

53、G5变量输入HH输出FFGG9变量输入HH输出(b)第8章 可编程逻辑器件及其编程技术 通过对CLB内部的数据选择器编程,逻辑函数发生器G、F、 H的输出可以连接到CLB内部触发器,或者直接连接到CLB的输出端X或Y。G和F均为查找表结构,其工作原理类似于ROM,其输入等效于ROM的地址。通过查找ROM中的地址可以得到相应的组合逻辑函数输出。此外,当信号变换电路设置存储器功能有效时, G和F还可以被定义为器件内的高速RAM使用。 第8章 可编程逻辑器件及其编程技术 3) 可编程输入输出模块(IOB) IOB模块分布于芯片四周,可以通过编程实现不同的逻辑功能和逻辑接口的需要。例如,XC30003

54、100和 XC4000系列器件的每个 IOB控制一个外部引脚,可以通过编程使该引脚定义为输入、输出或双向传输3种功能。XC4000系列的IOB还增加了时钟极性、输出缓冲器配置等可选择项,使逻辑设计更灵活。 图8.4.4所示为XC4000系列的IOB结构。 第8章 可编程逻辑器件及其编程技术 图8.4.4 XC4000系列的IOB结构 摆率控制上拉/下拉电阻VCCOE输出1D触发器Q输出时钟输出缓冲器I1I2Q延时输入缓冲器输入时钟1D触发锁存器I/O连至 CLBC1C1第8章 可编程逻辑器件及其编程技术 4) 可编程的内部连线(PI)在SRAM控制下,通过对PI的配置、定义,将CLB和IOB进

55、行组合以实现系统的逻辑功能。 FPGA器件的PI主要由金属线段组成。XC200030003100系列的 PI分布于CLB阵列周围,有通用连线、长线、全局连线、直接连线等几种。 通用连线主要用于CLB之间的连接;长线用于长距离和多分支信号的传送; 全局连线用于输送公共信号; 直接连线用于相邻的CLB的信号端之间的直接相连。PI通过SRAM配置控制的可编程连接点与CLB、 IOB和开关矩阵SM(Switching Matrices)相连,实现系统的布线。图8.4.5为PI布局情况。 XC4000系列的PI采用分段互连资源结构,有3种内部连线:单长线、双长线和长线,采用块与块之间对称的周边的可编程开

56、关点和开关矩阵结构的金属线连接, 因此布线方式更多、更灵活。 第8章 可编程逻辑器件及其编程技术 图8.4.5 FPGA的内部连线CLBCLBABCCLKXYDCLBSMSMSMSMSMSMSMCLBCLBCLB水平长线全局连线垂直长线垂直通用连线水平通用连线第8章 可编程逻辑器件及其编程技术 5) 晶体振荡器电路FPGA芯片内提供了一个高速反相器,用于和外接晶体振荡器相连接,形成振荡电路。其原理如图8.4.6所示。 XC4000系列中还设有分频器,把晶振信号分频,输出各种时钟信号来满足系统需要。 第8章 可编程逻辑器件及其编程技术 图8.4.6 FPGA的晶体振荡器电路 备选时钟缓冲器DQX

57、TAL1XTAL2(IN)片内片外R2R1C2C1Y111第8章 可编程逻辑器件及其编程技术 2. Altera2. Altera公司的公司的FLEXFLEX系列系列FPGAFPGA器件器件Altera公司的FLEX系列FPGA器件包括FLEX10K、 FLEX20K、 FLEX6000和FLEX8000等系列,其中FLEX10K系列是一种嵌入式可编程逻辑器件,具有密度高、成本低、功耗小等特点。该系列包括FLEX10K、 FLEX10KA、 FLEX10KB、 FLEX10KV、 FLEX10KE等5个子系列。 表8.4.3列出了FLEX10K系列典型器件的性能。 图8.4.7为FLEX10K

58、的结构框图。 下面进行简单介绍。 第8章 可编程逻辑器件及其编程技术 图8.4.7 FLEX10K的结构框图 IOEIOEIOEIOEIOEIOEIOEIOE嵌入式阵列块I/O单元(IOE)EABEAB列连线带行连线带逻辑阵列逻辑阵列块逻辑单元局部连线IOEIOEIOEIOEIOEIOEIOEIOEIOEIOEIOEIOE嵌入式阵列块逻辑阵列IOEIOEIOEIOEIOEIOEIOEIOE第8章 可编程逻辑器件及其编程技术 表表8.4.3 FLEX10K系列典型器件的性能系列典型器件的性能 第8章 可编程逻辑器件及其编程技术 1) 嵌入式阵列嵌入式阵列由一系列嵌入式阵列块(EAB, Embed

59、ded Array Block)构成。 EAB是在输入/输出口上带有寄存器的柔性(可变更)RAM块,可单独使用, 也可组合起来使用。 在要实现存储器功能时,每个EAB可提供2048个存储位来构造RAM、 ROM及双口RAM等。在要实现乘法器、 微控制器、 状态机及复杂逻辑时, 每个EAB可提供100600个门。 第8章 可编程逻辑器件及其编程技术 2) 逻辑阵列逻辑阵列由一系列逻辑阵列块(LAB)组成。每个LAB相当于96个可用逻辑门,可以构成一个中规模的逻辑块,如8位计数器、地址译码器或状态机等。也可以将多个LAB组合起来构成一个更大规模的逻辑块。 第8章 可编程逻辑器件及其编程技术 3)

60、Fast Track(快速通道)互连Fast Track是纵横贯穿整个器件长宽的一系列水平和垂直的连续式布线通道,可以灵活快速地实现器件内部信号的互连和器件引脚之间的信号互连。 4) I/O单元(IOE)IOE位于Fast Track行线和列线的两端,每个I/O引脚由一个IOE馈接。每个IOE含有一个双向缓冲器和一个可作为输入/输出/双向寄存器的触发器。IOE可提供输入信号,建立保持、输出信号延时、编程支持、摆率控制、三态缓冲和漏极开路输出等功能。 第8章 可编程逻辑器件及其编程技术 8.5 可编程逻辑器件的编程设计可编程逻辑器件的编程设计 8.5.1 8.5.1 低密度可编程逻辑器件的编程设计低密度可编程逻辑器件的编程设计1. 1. 低密度可编程逻辑器件低密度可编程逻辑器件(L

温馨提示

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

评论

0/150

提交评论