第1章DOC-第一章可编程逻辑器件简介.docx

上传人:牧羊曲112 文档编号:2049668 上传时间:2023-01-04 格式:DOCX 页数:17 大小:568.49KB
返回 下载 相关 举报
第1章DOC-第一章可编程逻辑器件简介.docx_第1页
第1页 / 共17页
第1章DOC-第一章可编程逻辑器件简介.docx_第2页
第2页 / 共17页
第1章DOC-第一章可编程逻辑器件简介.docx_第3页
第3页 / 共17页
第1章DOC-第一章可编程逻辑器件简介.docx_第4页
第4页 / 共17页
第1章DOC-第一章可编程逻辑器件简介.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《第1章DOC-第一章可编程逻辑器件简介.docx》由会员分享,可在线阅读,更多相关《第1章DOC-第一章可编程逻辑器件简介.docx(17页珍藏版)》请在三一办公上搜索。

1、引 言电子设计的必由之路将是数字化,这已成为有目共睹的事实。在数字化的道路上,我国电子设计技术的发展经历了许多重大的变革和飞跃。从传统的应用SSI、MSI等通用的数字电路芯片构成电路系统到广泛地应用单片机,电子设计技术发生了一个巨大的飞跃。今天,随着VLSI向更高层次的发展,电子产品市场运作节奏的进一步加快,电子设计技术已迈入一个全新的阶段,即CPLD/FPGA在EDA基础上的广泛应用。它在更高层次上容纳了过去数字技术的优秀部分,但在电子设计的技术操作和系统构成上却发生了质的飞跃。CPLD/FPGA不但在逻辑实现上是无限的,而且可触及硅片电路线度的物理极限,并兼有串行、并行工作方式,高速、高可

2、靠性以及宽口径适用性等诸方面的特点。不但如此,随着EDA技术的发展和CPLD/FPGA向深亚微米领域的进军,它们与MCU、MPU、DSP、A/D、D/A、ROM和RAM等独立器件之间的功能界限将日益模糊。特别是软/硬件IP芯核产业的迅猛发展,嵌入式通用与标准CPLD/FPGA器件呼之欲出,片上系统(SOC)已近在咫尺。同时,CPLD/FPGA还打破了软硬件之间最后的屏障,使软硬件工程师有了共同的语言。可以预测,未来的电子设计将是EDA的时代,而掌握EDA这门技术无疑已成为现代每一位电子设计工程技术人员必不可少的基本技能。本篇正是鉴于这样的背景,介绍了可编程逻辑器件(PLD)CPLD/FPGA的

3、结构以及通用的硬件描述语言(VHDL),并着重介绍了Altera公司的软件平台MAX+PLUS II的使用和在此基础上的PLD基本设计原理。第一章 可编程逻辑器件简介11 PLD设计的数字系统的特点可编程逻辑器件(Programmed Logic Device),简称PLD,是一种由用户通过编程定义其逻辑功能,从而实现各种设计要求的集成电路芯片。它是70年代发展起来的新型逻辑器件,发展至今,已相继出现了PROM、EPROM、PLA、PAL、GAL和ISP等多个品种。它的出现对传统的用中小规模集成电路设计数字电路系统产生了很大的影响,相比之下,采用PLD设计数字系统具有如下特点:1 减小系统体积

4、:单片PLD具有相当高的密度,能实现的逻辑功能大约是中小规模集成电路的几倍到几十倍,高密度PLD器件甚至能大千倍。因此,使用PLD器件能大量节省空间,减小设备体积。2 增强逻辑设计的灵活性:使用PLD器件设计的系统,可以不受标准系列器件在逻辑功能上的限制。在系统设计、系统调试过程中的任何阶段都能对PLD器件的逻辑功能进行修改,给系统设计提供了很大的灵活性。3 缩短设计周期:由于PLD具有可编程特性,用它来设计一个系统所需时间比传统方式大为缩短,而且在调试和生产阶段,对PLD器件的逻辑进行调整十分简便迅速,无需重新布线和更换印制板。4 提高系统处理速度:利用PLD的与或两级结构可实现任何逻辑功能

5、,比用中小规模器件所需的逻辑级数少。这不仅简化了系统设计,而且减少了时延,提高了系统处理速度。5 降低系统成本:采用PLD器件设计的系统,虽然单片PLD器件要比单片中小规模芯片贵得多,但由于PLD集成度高,而且测试与装配的工作量大大减少,加上避免了改变逻辑带来的重新设计和修改等一系列问题,有效地降低了成本。6 提高系统的可靠性:用PLD器件设计的系统减少了芯片和印制板的数量及相互间的连线,从而增加了系统的平均寿命和抗干扰能力,提高系统的可靠性。7 系统具有加密功能:某些PLD器件,如GAL或高密度的可编程逻辑器件本身就具有加密功能。设计者在设计时选中加密项,可编程逻辑器件就被加密,器件的逻辑功

6、能无法被读出,有效地防止逻辑系统被抄袭。因而,使用可编程逻辑器件设计的系统具有保密特性。 目前,使用可编程逻辑器件来设计电路需要依靠相应的开发软件平台和编程器。可编程逻辑器件开发软件和相应的编程器多种多样,特别是一些较高级的软件平台,其功能更加灵活,具有图形输入、语言输入和波形输入等多种输入方法;且具有功能分析、时序分析、电路划分、布局连线、编程等多种功能。一个系统除了方案设计和输入电路外,都可用编程软件自动完成。可编程逻辑器件设计电路过程如下图所示,它和传统的采用中小规模集成电路设计方法主要的区别在于增加了“编程”和“计算机参与”。设计输入优化电路选择器件编程器件功能时序检测电路设计方案 图

7、1-1 PLD设计逻辑电路的基本过程现在,PLD器件已被广泛应用于计算机硬件、工业控制、智能仪表、通讯设备和医疗电子仪器等多个领域。12 普通可编程逻辑器件1.2.1 普通PLD的基本结构输 入电 路与 门阵 列或 门阵 列输入信 号 反馈输入信号互补输入 乘积项和 项输出函 数 数数输出电路 PLD的基本结构如图1-2所示。图中虚线框内是PLD的主体,它由与阵列和或阵列构成。与阵列产生有关与项,或阵列将所有与项构成“与或”的形式。由于任何组合逻辑函数均可化成与或的形式,而任何时序电路均可由组合逻辑电路加上存储元件(触发器)构成,所以PLD的与或结构对实现数字电路具有普遍意义。 图1-2 PL

8、D基本结构图1.2.2 普通PLD的分类 根据PLD的基本结构,一般可分为以下几类:1 可编程只读存储器PROM(Programmable Read-only Memory):PROM由固定的与阵列和可编程的或阵列组成,大多用来存储计算机程序和数据。此时,固定的输入用作存储器的地址,输出是存储器单元的内容。2 可编程逻辑阵列PLA(Programmable Logic Array):PLA由可编程的与阵列和可编程的或阵列构成,是灵活性最高的可编程逻辑器件。由于它的与或阵列均可编程,因而在实现函数时,只须形成所需的乘积项,再以或的形式输出,从而使得阵列的规模比相同数目输入信号的PROM小得多。但

9、目前PLA的编程缺乏高质量的支持软件和编程工具,且器件的价格偏高,门的利用率不高,因而使用不广泛。3 可编程阵列逻辑PAL(Programmable Array Logic):PAL由可编程的与阵列和固定的或阵列构成,它结合了PLA的灵活性和PROM的廉价和易编程的特点,是早期实现可编程专用集成电路(ASIC)的主要器件。4 通用逻辑阵列GAL(Generic Array Logic)GAL继承了PAL器件的与-或结构,并在这一基础上有了新的突破,增加了输出逻辑宏单元OLMC(Output Logic Macro Cell)结构。由于GAL具有高可靠性、可擦除性及输出逻辑可组态的特性,故是一种

10、理想的低密度可编程逻辑器件。1.2.3 普通PLD的编程单元 可编程逻辑器件中用来存放数据的基本单元称之为编程单元,它分为易失性和非易失性两种。易失性单元:这种基本单元采用SRAM(静态存储器)结构,其特点是掉电以后信息会丢失,但编程速度快,且可无限次编程。非易失性单元:这种基本单元的特点是掉电后信息不会丢失,其结构有多种:1 利用熔丝开关、反熔丝开关进行的一次性编程单元。2 利用紫外线擦除、电编程的UV EPROM编程单元。3 利用电擦除、电编程的EEPROM编程单元。4 闪烁存储器构成(Flash)的EEPROM编程单元。UV EPROM和EEPOM的编程单元均采用浮栅技术生产,是一种能多

11、次编写的ROM结构单元。它是利用绝缘栅场效应管中的存储电荷使开启电压发生变化来记忆信息的。 1.3 新型可编程逻辑器件从PROM到GAL的所有低密度可编程逻辑器件,由于过于简单的结构,使得它们仅能实现规模较小的电路,通常只有几百门。因为在这些器件中,电路是用乘积项来描述的,而如果乘积项的数目太多,器件中的互连结构将变得十分复杂,这是工艺条件所不允许的。为了弥补这一缺陷,世界上各大集成电路厂商纷纷推出新一代的可编程逻辑器件高密度可编程逻辑器件HDPLD(High Density Programmable Logic Device)。目前,国外各大VLSI厂商推出的HDPLD品种繁多,如AMD公司

12、推出了6种MACH系列的ispLSI产品;Xilinx公司推出了多种高性能的XC系列FPGA芯片;Altera公司MAX系列的CPLD、FPGA可谓品种繁多,功能各异,其最大密度已达10万门/片;而作为世界最早发明GAL等可编程逻辑器件的Lattice公司也推出了多种系列的ispLSI器件。与此相适应,各大公司还推出了与自己的器件相关的开发软件平台,如Lattice公司的Synario;Xilinx公司的Foundation ;Altera公司的MAX+PLUS II等等。这种新型的可编程逻辑器件,在结构上延续GAL的结构原理,仍是电擦写、电编程的EPLD,但其内部结构规划更合理、更紧凑,单片

13、的密度即可达上万门,可适用于大规模数字逻辑系统的设计。更具突破性的是,这种器件可以实现在系统编程(In-system Programmable,简称ISP)。在这种技术的支持下,对芯片编程时无需将芯片从板上取下,只需用五根口线通过并行口和计算机相连,即可对芯片编程。若板上存在若干片ISP器件,只需通过ISP器件独有的菊花链接法,将所有在系统可编程芯片串联在一起,即可同时对这些芯片编程。根据门阵列编程单元的结构不同,HDPLD又可分为CPLD(Complicated Programmable Logic Device)和FPGA(Field Programmable Gate Array)两种。

14、CPLD具有掉电后信息不易丢失的特点,而FPGA则包含了两种结构:1 SRAM-查找表类型。采用SRAM结构的编程单元,掉电后信息易丢失。2 反熔丝的多路开关类型。由于反熔丝是一种双端非丢失的一次性可编程单元,故此类FPGA是具有非丢失性的一次性可编程器件。1.3.1 CPLD的组成及内部结构 尽管世界上各大VLSI厂商生产的各系列CPLD的结构不尽相同,但其基本组成是一致的,都由多个相似的逻辑阵列块(Logic Arrary Block,简称LAB)、一个可编程连线阵列(Programmable Interconnect,简称PI)、多个输入输出控制块(I/O Block)三部分构成。其结构

15、示意如图1-3所示: 逻辑块 逻辑块 逻辑块 逻辑块 O/I O/I /O O/I /O逻辑块内编程连线图1-3 CPLD结构示意图 下面我们以Lattic公司的ispLSI1032芯片为例,具体介绍CPLD的内部结构。ispLSI1032芯片是电可擦CMOS器件,为84引脚的PLCC封装,其中72个为I/O引脚,集成密度为6000门,每片含192个D触发器,引脚到引脚的延时为低于10ns。图1-4是ispLSI1032芯片的电路结构框图,它由32个通用逻辑模块(Generic Logic Block,简称GLB)、64个输入/输出单元(I/O Cell,简称IOC)、可编程的内部连线区和编程

16、控制电路组成。其中8个GLB、16个I/O单元、1个输出布线池(Output Routing Pool,简称ORP)和两个专用输入连接在一起构成一个巨型块(Megablock),四个结构相同的巨型块分布在全局布线池(Global Routing Pool,简称GRP)的四周。各部分之间的关系和实现的功能如图1-5所示。1通用逻辑模块(GLB):图1-6是通用逻辑模块的电路结构图。由图可见,它由可编程的与逻辑阵列、乘积项共享的或逻辑阵列、可重配置寄存器、控制功能四部分组成。 与阵列由20个乘积项构成,这些乘积项来自于GLB的18个任何输入的乘积,这18个输入中的16个来自全局布线池,是从GLB或

17、外部的I/O单元反馈过来的信号,其余2个输入直接来自于专用输入引脚。图1-4 ispLSI1032芯片的电路结构框图输出可灵活配置4个专用时钟输入4648传输延迟时间可预知高速通道6464I/O单元(64)全局布线区(GRP)通用逻辑模块(32)输出布线区(ORP)输出输入专用输入64个I/O引脚时钟网络输出引脚灵活分配图1-5 ispLSI1032芯片逻辑功能划分框图乘积共享阵列的输入和输出关系是可编程的,四个输入F0-F3中任何一个都可以送到四个D触发器当中任何一个的输入端,每个输入又可以同时送给几个触发器,四个输入还可以再组合成更大规模的与或逻辑函数送到任何一个触发器的输入端。通过编程,

18、可以将GLB配置成5种连接模式:标准模式(如图1-6所示)、高速旁路模式、异或逻辑模式、单乘积项模式和多重模式,如图1-7。 图1-6 通用逻辑模块(GLB)的电路结构 图1-7GLB的其他几种组态模式 (a)高速旁路模式 (b)异或逻辑模式 (c)单乘积项模式 在高速旁路模式中,为了减少传输延迟时间,越过了乘积项共享的编程阵列,将与或输出F0-F3直接与D触发器相连,如图1-7(a)所示。 在异或逻辑模式中,乘积项共享或阵列的输出与D触发器之间串进了异或门,异或门的一个输入来自F0-F3,另一个输入来自与逻辑阵列的乘积项,如图1-7(b)所示。 在单乘积项模式中,每个D触发器的输入取自与逻辑

19、阵列一个单乘积项的输出,如图1-7(c)所示。这种结构模式可以获得最快的信号传输速度。 在多重模式中,每个GLB中4个D触发器的输入可分别采用上述几种不同的模式进行组合。 可重配置的寄存器由四个D触发器组成,输入端接有一异或门。GLB中的异或门可以被用来作为一个逻辑元素,用来重配置D型触发器,从而可以仿真一J-K或T型触发器。这在很大程度上简化了计数器、比较器和ALU型函数的设计。如果用户需要一个组合逻辑输出,寄存器可以被旁路。每个寄存器输出被带回全局布线池,同时通过输出布线池带到I/O单元。当使用四个乘积项旁路功能时,可重配置的寄存器不能再被利用。 控制GLB输出操作的各种信号由控制函数所驱

20、动。寄存器的时钟可以来自于时钟分布网络中的3种时钟源中的任意一个,也可来自于GLB的一个乘积项。GLB的复位信号可以来自于全局复位引脚(RESET)或来自于GLB中某一个乘积项复位信号,一个激活的复位信号总将寄存器置为逻辑零状态。与GLB相关联的I/O单元的输出使能信号也来自于乘积项,用于控制函数的该乘积项,使其不能再用于另一个逻辑项。至全局布线区IOCLK0IOCLK1自全局复位I/OVCC有源上位VCCMux1自OE MUX自输出布线区旁路通道自输出布线区Mux3Mux2Mux4Mux3Mux6PinD QR/L注: 代表E2COMS单元1 I/O单元:图1-8 输入/输出单元的电路结构

21、ispLSI1032的输入输出单元的电路结构如图1-8所示,它由三态输出缓冲器、输入缓冲器、输入寄存器/锁存器和几个可编程的数据选择器组成。触发器有两种工作方式:当R/L为高电平时,它被设置成边沿触发器;而当R/L为低电平时,它被设置成锁存器。MUX1用于控制三态输出缓冲器的工作状态,MUX2用于选择输出信号的传送通道,MUX3用来选择输出极性。MUX4用于输入方式的选择:在异步输入方式下,输入信号直接经输入缓冲器送到全局布线区的输入端;在同步输入方式下,输入信号加到触发器的输入端,必须等时钟信号ICLOCK到达后才能被存入触发器,并经过输入缓冲器加到全局布线区。MUX5和MUX6用于时钟信号

22、的来源和极性的选择。根据这些数据选择器编程状态的组合,得到各种可能的I/O单元组态如图1-9所示。引脚输入缓冲器Pin引脚输出缓冲器Pin引脚锁存输入村IOCLKPinD QLE引脚寄存器输入IOCLKPinD Q引脚反向输出缓冲器Pin引脚三态输出缓冲器Pin(输入单元)(输出单元)(双向单元)引脚双向I/O引脚PinIOCLK引脚带寄存器输入的双向I/O引脚PinD Q图1-9 I/O单元的各种组态3可编程的内部连线区:ispLSI1032有一个全局布线区(GRP)和四个输出布线区(ORP),其中GRP是一个专用的内部互连结构,在完全连接情况下可提供很快的可预测的速度。这些布线区都是可编程

23、的矩阵网络,每条纵线和每条横线的交叉点接通与否受一位编程单元状态的控制。通过对GRP的编程,可以实现32个GLB间的互相连接及I/O单元与GRP的连接。通过对ORP的编程,可以使每个大模块中任何一个GLB能与任何一个I/O单元相连。4编程控制电路: ispLSI ispNE SCLK MODE SDI SDO 图1-10 ispLSI器件的编程接口ispLSI的编程是在计算机的控制下进行的。计算机根据用户编写的源程序运行开发系统软件,产生相应的编程数据和编程命令,通过五线编程接口与ispLSI连接,如图1-10所示。其中ispEN是编程使能信号, ispEN =1时ispLSI 器件为正常工作

24、状态;ispEN=0时所有I/O单元的输出三态缓冲器均被置成高阻态,并允许器件进入编程工作状态。MODE是模式控制信号。SCLK是串行时钟输入,它为片内接受输入数据的移位寄存器以及控制编程操作的时序逻辑电路提供时钟信号。SDI是串行数据和命令输入端,SDO是串行数据输出端。ispLSI器件内部设有控制编程操作的时序逻辑电路,它的状态转换受MODE和SDI信号控制。计算机运行结果得到的编程数据和命令以串行方式从SDI送入ispLSI。在写入数据的同时,又以串行方式将写入的数据从SDO读出并送回计算机,以便进行校验和发出下面的数据和命令。计算机的并行口和ispLSI之间的连接除了上述的5条信号线以

25、外,还需要一条地线和一条对ispLSI所在系统电源电压的监测线,所以实际需要用7根连接线。1.3.2 FPGA的组成及内部结构在前述的CPLD电路中,采用的是与-或逻辑阵列加上输出逻辑单元的结构形式,而FPGA的电路结构形式则完全不同,它由若干独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接成所需要的数字系统。典型的FPGA系列产品主要有两类逻辑功能块的构造:SRAM-查找表类型和反熔丝的多路开关类型。下面我们分别加以介绍:一SRAM-查找表型FPGA结构:不同公司产品的查找表类型的FPGA的结构各有特点,但可编程逻辑器件单元基本上都是查找表的静态存储器(SRAM)构成的函数发生器,并

26、由它去控制执行FPGA应用函数的逻辑。如果有N个输入,那么就将有N个输入的逻辑函数真值表存储在一个2N1的SRAM中。SRAM的地址线起输入作用。SRAM的输出作为逻辑函数的值,由此输出状态去控制传输门或多路开关信号的通断,实现与其他功能块的可编程连接。查找表结构的优点很多。N个输入的查找表可以实现N个任意函数,这样的函数高达22个。但是,这也将带来一些问题,如若有多于5个输入,则由于5个输入查找表的存储单元数是25,它可以实现的函数数目增加的太多,而这些附加的函数在逻辑设计中又经常用不到,并且也很难让逻辑综合工具去开发利用。所以在实际的产品中,一般查找表型FPGA的查找输入N5。 Xilin

27、x公司的XC2000系列、XC3000系列、XC4000系列以及Altera公司的FLEX8000系列都是典型的SRAM-查找表结构的FPGA器件。尽管它们在阵列规模、内部基本结构及内部的连线方式上有所不同,但其基本组成大致相似。下面我们以Xilinx公司生产的XC2064为例,介绍此种FPGA的组成及内部结构。XC2064是Xilinx公司FPGA器件中结构比较简单的一种,图1-11是其结构示意图。由图可知,它主要有三个基本组成部分:可配置逻辑模块CLB(Configurable Logic Block)、输入/输出模块I/OB(Input/Output Block)、可编程连线PI(Pro

28、grammable Interconect)和由它组成的编程开关矩阵PSM(Programmable Switch Matrix)。可配置逻辑块CLB以方阵的形式排列在器件的中央,它本身包含多种逻辑功能部件,使其能实现组合逻辑电路和时序逻辑电路,有些系列产品(如XC4000系列)还可实现包括静态RAM的各种运算电路。输入/输出模块I/OB分布在芯片的四周,它是提供外部封装引脚和内部信息的接口电路,该接口电路通过设计编程可以分别组态为输入引脚、输出引脚和双向引脚,并且具有控制速率、降低功耗等功能。可编程连线PI分布在CLB周围和CLB及I/OB之间,主要是完成CLB之间逻辑连接以及将信息传递到I

29、/OB。 图1-11 FPGA的结构示意图1 可配置逻辑模块(CLB): 在XC2064中有64个CLB,排列成8X8的矩阵。每个CLB的电路中包含组合逻辑电路、存储电路和由一些数据选择器组成的内部控制电路,如图1-12所示。输入输出YXclkSRABCD组合逻辑D Q图1-12 XC2064的CLB示意图组合逻辑电路部分是有4个输入端、2个输出端的通用逻辑模块。根据设计的需要可以将组合逻辑部分设置成3种不同的组态。第一种组态如图1-13(a)所示,通过编程可以产生任何形式的四变量组合逻辑函数。第二种组态如图1-13(b)所示,可以产生两个三变量的任何形式的逻辑函数。第三种组态如图1-13(c

30、)所示,可以产生包含五变量的逻辑函数。(b)BFGDACQ三变量的任意函数MUXDACQ三变量的任意函数FDABCQ三变量的任意函数GDABCQ三变量的任意函数(c)(a)ABCDGFQ四变量的任意函数 (a)四变量任意函数 (b)两个三变量任意函数 (c)五变量逻辑函数图1-13 XC2064中CLB的三种组态这种通用逻辑模块由N沟道MOS管或CMOS反相器组成,输出与输入之间的逻辑函数关系由一组编程控制信号决定。将编程信号与函数对应关系列成函数表,在编程过程中通过查表即可找出所需的编程数据。MUX1MUX2GCCLKFSRD QMUX3FAMUX4GD图1-14 XC2064中CLB的存储

31、电路CLB中存储电路的结构如图1-14所示,它只包含一个触发器(在XC3000和XC4000系列的FPGA器件中,每个CLB中有两个触发器)。根据设计要求,这个触发器可以编程为边沿触发的D触发器,也可以编程为电平触发的D型锁存器。触发器的D端接收组合电路部分的输出F。时钟信号由数据选择器MUX1给出,既可以选择片内公共时钟CLK作为时钟信号,工作在同步方式;又可以选择组合电路的输出G或输入变量C作为时钟信号,工作在异步方式。而且,用数据选择器MUX2还可以选择用时钟的上升沿或下降沿(或高电平和低电平)触发。触发器的异步置位信号由数据选择器MUX3给出,异步置位信号可以从输入变量A和组合电路输出

32、F当中选择。异步置零信号由数据选择器MUX4给出,既可以选组合电路输出G作为异步置零信号,也可以选输入变量D作为异步置零信号。2. 输入/输出模块(I/OB):=程序控制的数据选择器OEMUX2G2G1I/OI/O CLK输入三态控制ONOFF(VCC)MUX1D Q输出图1-15 XC2064的I/OB电路XC2604共有56个可编程的I/O端口。由图1-15的电路结构图可见,每个I/O模块由输出三态缓冲器G1、触发器、输入缓冲器和两个数据选择器MUX1、MUX2组成。在图中所用的数据选择器符号上只标出了数据输入端和数据输出端,省略了地址输入端。实际上每个数据选择器都应当有输入地址代码,这些

33、代码都存放在FPGA内部的编程数据存储器中。 输出三态缓冲器的控制信号OE由MUX1给出。MUX1输出低电平时,I/OB工作在输出状态,FPGA内部产生的信号通过G1送至I/O端。MUX1输出高电平时,G1为高阻态,I/OB工作在输入状态。 MUX2用于输入方式的选择。当MUX2的输出选中输入缓冲器G2的输出时,为异步输入方式,加到I/O端的输入信号立刻就通过G2、MUX2送往FPGA内部。当MUX2的输出选中触发器的输出时,为同步输入方式。在同步输入方式下,必须等到时钟信号I/O CLK到达后,加到I/O端的输入信号才能经过MUX2送往内部电路。 输入缓冲器G2的阈值电平是可编程的,既可设置

34、为TTL电路的阈值电平(1.4V),也可以设置为高速CMOS电路的阈值电平(2.2V)。在XC2064中,所有I/OB的时钟信号是共用的。3. FPGA的互连资源:为了能将FPGA中数目很大的CLB和I/OB连结成各种复杂的系统,在布线区内布置了丰富的连线资源。这些互连资源可以分为三类:金属线、开关矩阵SM(Switching Matrices)、可编程连接点PIP(Programmable Interconnect Points)。图1-16展示了这些互连资源的布局状况。 图1-16 FPGA内部的互连资源布线区里的金属线分为水平通用连线、垂直通用连线、水平长线、垂直长线、全局连线和直接连线

35、等几种。这些金属线经可编程的连接点与CLB、I/OB和SM相连。其中的通用连线主要用于CLB之间的连接,长线主要用于长距离或多分支信号的传送,全局连线则用于输送一些公共信号等。图1-17中给出了开关矩阵和可编程连接点的布置图。开关矩阵的作用如同一个可以实现多根导线转接的接线盒,通过对开关矩阵编程,可以将来自任何方向上的一根导线转接至其他方向的某一根导线上。图1-17中还列出了开关矩阵在不同编程情况下的连接状况。图1-18中以粗线示出了经过编程后的一种连线情况,CLB(1)输出X经过开关矩阵分别送到了CLB(2)的D端、CLB(3)的A端和CLB(4)的C端。此外,为了减少传输延迟时间和简化编程

36、,在相邻的CLB中间还设置了直接连线,如图1-19所示。每个CLB的输出端X可以与下边一个CLB的输入端A、B和上边一个CLB的输入端C、D直接相连;输出端Y可以和右边一个CLB的输入端B直接相连。使用这些直接连线连接时,可以不经过开关矩阵和通用连线,只要对信号接收端的开关点编程即可。全局网两条垂直长线图1-17 开关矩阵和可编程连接点 图1-18 利用水平和垂直通用连线及 图1-19用直接连线实现连接 开关矩阵实现连接二反熔丝多路开关型FPGA结构:多路开关型FPGA的基本模块是一个多路开关的配置。在多路开关的每个输入端接上固定的电平或输入信号时,即可实现不同的逻辑功能。fS1xwzyS2f

37、S1xwS2zy图1-20 基本的ACTEL 图1-21 第二类ACTEL 多路开关型逻辑块 多路开关型逻辑块如果把大量的多路开关和逻辑门连接起来,即可构成大量函数的逻辑块。ACTEL公司的ACT-1就是由三个两输入端多路开关和一个或门组成的基本模块,如图1-20所示。这个基本模块可称为“宏单元”,具有八个输入和一个输出,输出表达式为:当设置每个变量为一个输入信号或一个固定电平时,可实现702种逻辑函数。图1-21给出ACT-2组合逻辑块的结构图。它是第二类ACTEL多路开关型的逻辑块,类似于ACT-1,仅在第一行的两个多路选择器选择端接到一个两输入的与门。它执行四到一线的多路开关作用,可以实

38、现766种函数。 多路开关型FPGA的输入/输出模块、可编程连线及编程开关矩阵均与查找表型FPGA类似,在此不再累述。1.3.3 CPLD与FPGA的比较纵观CPLD与FPGA的结构及组成,两者之间各有千秋,下面我们把两者之间的差异罗列如下:1 编程单元:查找表型FPGA的编程单元为SRAM结构,可以无限次编程,但它属于易失性元件,掉点后芯片内信息要丢失;而CPLD则采用EEPROM编程单元,不仅可无限次编程,且掉电后片内信息不会丢失。2 逻辑功能块:FPGA的CLB阵列在结构形式上克服了CPLD中那种固定的与-或逻辑阵列结构的局限性,在组成一些复杂的、特殊的数字系统时现得更加灵活。同时,由于

39、FPGA中触发器的数目多于CPLD,故FPGA在实现时序电路时要强于CPLD。另外,由于FPGA加大了可编程I/O端的数目,也使得各引脚信号的安排更加方便和合理。3 内部连线结构:CPLD的信号汇总于编程内连矩阵,然后分配到各个GLB,因此信号通路固定,系统速度可以预测。而FPGA的内连线分布在CLB的周围,且编程的种类和编程点很多,使布线相当灵活。但由于每个信号的传输途径各异,传输延迟时间是不确定的,这不仅会给设计工作带来麻烦,而且也限制了器件的工作速度。4 芯片逻辑利用率:由于FPGA的CLB的规模小,可分为组合和时序两个独立的电路,又有丰富的内部连线,系统综合时可进行充分的优化,芯片的逻辑利用率比CPLD要高。5 内部功耗:CPLD的功耗一般在0.5W2.5W之间,而FPGA的功耗只有0.25mW5mW,静态时几乎没有功耗。6 应用范围:鉴于FPGA和CPLD在结构上的上述差异,其适用范围也有所不同。一般FPGA主要用于数据通路、多I/O口及多寄存器的系统;而CPLD则使用于高速总线接口、复杂状态机等对速度要求较高的系统。17

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号