1、数字逻辑1n本章主要介绍可编程逻辑器件的基本知识,包括PLD的发展和分类、PLD的逻辑表示方法及目前主流 的 两 种 P L D 器 件 复 杂 可 编 程 逻 辑 器 件(Complex Programmab1e Logic Device,CPLD)和现场可编程门阵列(Field Programmable Gate Array,FPGA)的基本结构及逻辑实现原理等。数字逻辑2数字逻辑3数字逻辑4n几乎与此同时,几乎与此同时,Xilinx公司于公司于1985年推出了现场可编程年推出了现场可编程门阵列门阵列FPGA。FPGA是一种采用单元型结构的新型是一种采用单元型结构的新型PLD器件,它采用器
2、件,它采用CMOS、SRAM工艺制作,在结构上与阵工艺制作,在结构上与阵列型列型PLD不同:其内部由许多独立的可编程逻辑单元构不同:其内部由许多独立的可编程逻辑单元构成,各逻辑单元之间可以灵活地相互连接,具有密度高、成,各逻辑单元之间可以灵活地相互连接,具有密度高、速度快、编程灵活、可重新配置等优点。速度快、编程灵活、可重新配置等优点。FPGA是当前是当前主流的主流的PLD器件之一。器件之一。n复杂可编程逻辑器件复杂可编程逻辑器件CPLD是从是从EPLD改进而来的,采用改进而来的,采用EEPROM工艺制作。与工艺制作。与EPLD相比,相比,CPLD增加了内部增加了内部连线,对逻辑宏单元和连线,
3、对逻辑宏单元和I/O单元也有重大的改进,因而性单元也有重大的改进,因而性能更好、使用更方便。尤其在能更好、使用更方便。尤其在Lattice公司提出了在系统公司提出了在系统编程(编程(In System Programmable,ISP)技术后,相继)技术后,相继出现了一系列具备出现了一系列具备ISP功能的功能的CPLD器件。器件。CPLD是当前是当前另一种主流的另一种主流的PLD器件。器件。数字逻辑5nPLD的技术仍处在不断的发展变革中。由于的技术仍处在不断的发展变革中。由于PLD器件在其发展过程中出现了很多种类,且器件在其发展过程中出现了很多种类,且不同公司生产的不同公司生产的PLD,其工艺
4、和结构也各不相,其工艺和结构也各不相同,因此就产生了不同的分类方法以对众多的同,因此就产生了不同的分类方法以对众多的PLD器件进行划分。目前,较为常见的分类方器件进行划分。目前,较为常见的分类方法有按集成度分类、按编程特点分类及按结构法有按集成度分类、按编程特点分类及按结构特点分类等三种。特点分类等三种。188)(nmiiiOO数字逻辑6n集成度是集成度是PLD器件的一项重要技术指标。根据芯器件的一项重要技术指标。根据芯片集成度和结构复杂度的不同,片集成度和结构复杂度的不同,PLD器件可分为器件可分为低密度低密度PLD(LDPLD)和高密度)和高密度PLD(HDPLD)两大类。其中,低密度两大
5、类。其中,低密度PLD器件也称为简单器件也称为简单PLD器件(器件(SPLD)。典型的)。典型的SPLD是指内部包含是指内部包含600个以下等效门电路的个以下等效门电路的PLD器件,而器件,而HDPLD则有则有几千到几十万个等效门电路。几千到几十万个等效门电路。数字逻辑7n通常情况下,以通常情况下,以GAL22V10作为作为SPLD和和HDPLD的分水岭。凡是集的分水岭。凡是集成度比成度比GAL22V10低或相当于低或相当于GAL22V10的的PLD器件,都归类于器件,都归类于SPLD。而集成度高于。而集成度高于GAL22V10的的PLD器件,则称为器件,则称为HDPLD。如。如果按照这个标准
6、进行为类,则果按照这个标准进行为类,则PROM、PLA、PAL和和GAL属于属于SPLD,而,而CPLD和和FPGA则属于则属于HDPLD。PLD按芯片集成度分类的按芯片集成度分类的如图如图7-1所示。所示。数字逻辑8数字逻辑9n其中,输入缓冲电路用以产生输入变量的原变量和反变量,并提供足够的驱动能力;与阵列用以产生输入变量的各乘积项;或阵列执行或运算,即将输入的某些乘积项相加;输出缓冲电路因器件的不同而有所不同,但总体可分为固定输出和可组态输出两大类。由于任何逻辑函数都可用“与-或”表达式描述,因此,这种结构可以实现任意组合逻辑函数。n根据与阵列、或阵列和输出结构的不同,SPLD又可分为四种
7、基本类型:PROM、PLA、PAL和GAL等。数字逻辑10nPROM采用与阵列固定、或阵列可编程的结构,采用与阵列固定、或阵列可编程的结构,具有成本低、编程容易等特点。对于有大量输入具有成本低、编程容易等特点。对于有大量输入信号的信号的PROM,比较适合于作为存储器,存储数,比较适合于作为存储器,存储数据和表格。而对于较少输入信号的据和表格。而对于较少输入信号的PROM,也可,也可以很方便地实现任意组合逻辑函数。以很方便地实现任意组合逻辑函数。nPROM采用熔丝工艺编程,只能写一次,不可以采用熔丝工艺编程,只能写一次,不可以擦除或重写。随着技术的发展和应用上的需求,擦除或重写。随着技术的发展和
8、应用上的需求,又出现了一些可多次擦除使用的存储器件,如又出现了一些可多次擦除使用的存储器件,如EPROM(紫外线擦除可编程只读存储器)和(紫外线擦除可编程只读存储器)和EEPROM(电擦除可编程只读存储器)。(电擦除可编程只读存储器)。数字逻辑11nPLA在结构上由可编程的与阵列和可编程的或阵列构成,在结构上由可编程的与阵列和可编程的或阵列构成,其输出电路固定、阵列规模小、编程麻烦,因而并没得其输出电路固定、阵列规模小、编程麻烦,因而并没得到广泛的应用。与到广泛的应用。与PROM相比,相比,PLA具有如下特点:具有如下特点:n PROM是与阵列固定、或阵列可编程,而是与阵列固定、或阵列可编程,
9、而PLA是与和是与和或阵列全可编程。或阵列全可编程。 n PROM与阵列是全译码的形式,而与阵列是全译码的形式,而PLA是根据需要产是根据需要产生乘积项,从而减小了阵列的规模。生乘积项,从而减小了阵列的规模。n PROM实现的逻辑函数采用最小项表达式来描述;而实现的逻辑函数采用最小项表达式来描述;而用用PLA实现逻辑函数时,运用简化后的最简与或式,即实现逻辑函数时,运用简化后的最简与或式,即由与阵列构成乘积项,根据逻辑函数由或阵列实现相应由与阵列构成乘积项,根据逻辑函数由或阵列实现相应乘积项的或运算。乘积项的或运算。n 在在PLA中,对多输入、多输出的逻辑函数可以利用公中,对多输入、多输出的逻
10、辑函数可以利用公共的与项,因而提高了阵列的利用率。共的与项,因而提高了阵列的利用率。数字逻辑12nPAL是在是在PROM和和PLA的基础上发展起来的一种可编程的基础上发展起来的一种可编程逻辑器件。具有比逻辑器件。具有比PROM使用灵活、更易于完成多种逻使用灵活、更易于完成多种逻辑功能的特点,同时又比辑功能的特点,同时又比PLA工艺简单,易于实现。是工艺简单,易于实现。是第一种真正得到广泛应用的第一种真正得到广泛应用的PLD器件。器件。nPAL由可编程的与阵列、固定的或阵列和输出电路组成,由可编程的与阵列、固定的或阵列和输出电路组成,采用双极型熔丝工艺,一次性编程。通过对与阵列的编采用双极型熔丝
11、工艺,一次性编程。通过对与阵列的编程,可以获得不同形式的组合逻辑函数。在有些型号的程,可以获得不同形式的组合逻辑函数。在有些型号的PAL器件中,输出电路中设置有触发器和从触发器输出器件中,输出电路中设置有触发器和从触发器输出到与阵列的反馈线,这种到与阵列的反馈线,这种PAL可以很方便的构成各种时可以很方便的构成各种时序逻辑电路。根据输出电路和反馈结构的不同,序逻辑电路。根据输出电路和反馈结构的不同,PAL器器件又可细分为件又可细分为5种不同的基本类型。种不同的基本类型。数字逻辑13n专用输出结构n输出电路为具有互补结构的专用输出,输出端无反馈,只能用作输出。适用于实现组合逻辑函数,常见产品有P
12、AL10H8、PAL12L6等。n带反馈的可编程I/O结构n也称为异步可编程I/O结构。输出端带有反馈电路,通过编程,可使输出端的数据反馈到与阵列作为输入信号,常见产品有PAL16L8、PAL20L10等。数字逻辑14n寄存器输出结构寄存器输出结构n输出端带有输出端带有D触发器构成的寄存器,结合反馈通路,可触发器构成的寄存器,结合反馈通路,可以很方便地接成各种时序电路。这种结构使以很方便地接成各种时序电路。这种结构使PAL构成了构成了典型的时序网络结构。这类电路的典型产品是典型的时序网络结构。这类电路的典型产品是PAL16R8。n异或输出结构异或输出结构n在寄存器输出结构的基础上增加了一个异或
13、门,利用异在寄存器输出结构的基础上增加了一个异或门,利用异或门可以实现对输出函数的求反,也可以实现对寄存器或门可以实现对输出函数的求反,也可以实现对寄存器状态的保持操作。这类电路的典型产品是状态的保持操作。这类电路的典型产品是PAL16RP8。n算术选通反馈结构算术选通反馈结构n在综合前几种在综合前几种PAL结构特点的基础上,增加了反馈选通结构特点的基础上,增加了反馈选通电路,使之能够实现多种算术运算的功能。这类电路的电路,使之能够实现多种算术运算的功能。这类电路的典型产品是典型产品是PAL16A4。数字逻辑15n通用阵列逻辑通用阵列逻辑GAL是在是在PAL的基础上发展起来的的基础上发展起来的
14、一种可编程逻辑器件,采用一种可编程逻辑器件,采用EEPROM工艺。相工艺。相对于对于PAL的双极型工艺、一次性编程方式,的双极型工艺、一次性编程方式,GAL具有电可擦除、可重新编程等优点。同时,具有电可擦除、可重新编程等优点。同时,GAL的输出端采用可编程的输出逻辑宏单元的输出端采用可编程的输出逻辑宏单元(Output Logic Macro Cell,OLMC)结构。)结构。通过编程,可将通过编程,可将OLMC设置成不同的工作状态设置成不同的工作状态(可组态),这样就可以用同一型号的(可组态),这样就可以用同一型号的GAL器件器件来实现来实现PAL器件各种输出电路的工作模式,使得器件各种输出
15、电路的工作模式,使得电路的逻辑设计更加灵活。电路的逻辑设计更加灵活。数字逻辑16 数字逻辑17n复杂可编程逻辑器件CPLD属于中规模可编程ASIC。集成度大于PAL22V10或GAL22V10的PLD都可视为CPLD。如Lattice公司的ispLSI/pLSI 1000系列和MACH5系列,Xilinx公司的XC9500系列,Altera公司的MAX7000系列和MAX9000系列等都是CPLD的代表性产品。CPLD在集成度和结构上的特点是:具有更大的与阵列和或阵列,增加了大量的宏单元和布线资源,触发器的数量明显增加等。高速译码器、多位计数器、寄存器、时序状态机、网络适配器、总线控制器等较大
16、规模的逻辑设计可选用CPLD来实现。近年来各芯片生产厂家又纷纷推出了规模更大的CPLD。如Lattice公司的ispLSI/pLSI3256,其集成度达14000个等效PLD门、寄存器数量达480个。而Lattice公司的ispLSI6000系列,其集成度更是达到25000个等效PLD门、具有320个宏单元。Altera公司的MAX9000最高集成度可达24000个等效PLD门、逻辑宏单元达1024个。因此,具有复杂算法的数字滤波器等数字信号处理单元的逻辑设计可选用这些具有更高集成度的CPLD来实现。数字逻辑18(现场可编程门阵列FPGA属大规模可编程ASIC,是集成度和结构复杂度最高的可编程
17、逻辑器件。Xilinx公司的XC4000/5000系列、Actel公司的ACT系列、Altera公司的FLEX8000、FLEXl0K和APEX20K系列等是FPGA的代表产品。其中,Xilinx公司的XC4025拥有2.5万个等效PLD门、XC4085拥有8.5万个等效PLD门,其最新推出的低电压FPGA XCV1000,最大门数可达100万个等效PLD门;Actel公司第二代Anti-fuse FPGA集成度为2万个等效PLD门;Altera公司的FPGAAPEX20K1000E的集成度为100万个等效PLD门。运算器、乘法器、数字滤波器、二维卷积器等具有复杂算法的逻辑单元和信号处理单元的
18、逻辑设计可选用FPGA实现。Xilinx公司和Altera公司最新开发的先进IP CORE(IP核),为FPGA在数字系统设计和DSP(Digital Signal Processing)技术领域的应用提供了范例。数字逻辑19nPLD器件按照重复编程的次数可以分为两类:器件按照重复编程的次数可以分为两类:n 一次性编程器件(一次性编程器件(One Time Programmable,OTP)。只允许对器件编程一次,不能修改。)。只允许对器件编程一次,不能修改。n 可重复编程器件。允许对器件多次编程,适合可重复编程器件。允许对器件多次编程,适合于在科研与开发中使用。于在科研与开发中使用。数字逻辑
19、20nPLD器件的可编程特性主要通过器件的可编程元件来实器件的可编程特性主要通过器件的可编程元件来实现,按照编程元件和编程工艺的不同来划分,现,按照编程元件和编程工艺的不同来划分,PLD器件器件可分为下面几类:可分为下面几类:n 采用熔丝(采用熔丝(Fuse)编程的器件。早期的)编程的器件。早期的PROM器件采器件采用此类编程结构,编程过程就是根据设计的熔丝图文件用此类编程结构,编程过程就是根据设计的熔丝图文件来烧断对应的熔丝以达到编程的目的。来烧断对应的熔丝以达到编程的目的。n 采用反熔丝(采用反熔丝(Antifuse)编程的器件。反熔丝编程也)编程的器件。反熔丝编程也称熔通编程,是对熔丝技
20、术的改进。这类器件采用反熔称熔通编程,是对熔丝技术的改进。这类器件采用反熔丝作为开关元件,未编程时,开关元件处于开路状态。丝作为开关元件,未编程时,开关元件处于开路状态。编程时,在需要连接的反熔丝开关两端加上编程电压,编程时,在需要连接的反熔丝开关两端加上编程电压,使反熔丝由高阻变为低阻,从而实现两点间的导通。使反熔丝由高阻变为低阻,从而实现两点间的导通。数字逻辑21n EPROM型器件。采用紫外线擦除、电可编程的方式编程。n EEPROM型器件。采用电擦除、电编程方式编程,目前多数的CPLD采用此类编程方式。与EPROM型器件相比,它用电擦除取代了紫外线擦除,提高了使用的方便性。n 闪速存储
21、器(Flash)型。n 采用静态存储器(SRAM)结构的器件,即采用SRAM查找表结构的器件,大多数的FPGA采用此类结构。数字逻辑22n一般将采用前5类编程工艺的器件称为非易失型器件。这类器件在编程后,配置的数据将一直保持在器件内,直至被擦除或重写;而采用第6类编程工艺的器件则称为易失型器件,这类器件在掉电后配置的数据会丢失,因而在每次上电时需要重新进行配置。n采用熔丝或反熔丝编程工艺的器件属于OTP类器件,只能一次性编程。这种PLD是不能重复擦写的,所以用于开发会比较麻烦,费用相对也较高。但反熔丝技术也有许多优点:布线能力强、系统速度快、功耗低、同时抗辐射能力强、耐高低温、可以加密等,适合
22、在一些有特殊要求的领域运用,如军事及航空航天。数字逻辑23数字逻辑24 数字逻辑25数字逻辑26n(1) PLD中阵列交叉点的逻辑表示中阵列交叉点的逻辑表示nPLD逻辑阵列中的交叉点采用图7-3所示的几种逻辑表示。其中,图7-3(a)在交叉点处打上黑点表示实体连接,也就是行线和列线在这个交叉点处是实际连接、不可编程的,即不可编程交叉点。图7-3(b)的交叉点表示可编程连接点,无论或都表示该符号所在的行线和列线交叉点处是一个可编程点,具有一个可编程单元。在采用熔丝工艺的PLD器件中,器件出厂后用户编程前,所有可编程点处的熔丝都处于接通状态,习惯上都用或表示熔丝接通,因此在所有可编程点外都打或。用
23、户编程后,可编程点上的熔丝有的烧断,有的接通。接通处的编程点仍打,不过此时的表示可编程点被编程后熔丝接通。熔丝烧断的可编程点上消失,行线和列线相交不相连,如图7-3(c)所示。数字逻辑27 数字逻辑28n(2) PLD中与阵列的逻辑表示中与阵列的逻辑表示n一个简单的可编程与阵列如图7-4所示。其中,图7-4(a)表示可编程的与阵列。为实现用户的现场可编程,在二极管与门各支路的输入与输出之间接入了熔丝。编程时,编程者可以有选择地对某支路施加大电流以烧断熔丝,使该支路的输入与输出断开成为无效输入,而熔丝保留的各支路则是有效输入,编程后的与阵列如图7-4(c)所示。图中,输出函数F是保留熔丝各支路输
24、入的与逻辑函数。n图7-4(b)是图7-4(a)中与阵列的PLD表示。图7-4(b)中,通过1条行线、6条列线、6个交叉点(图中画有)和1个国外常用的与门符号表示PLD的与阵列逻辑。6个表示未编程或编程后熔丝全部保留,输出函数F为: 。 0CCBBAAC)B,F(A,数字逻辑29 CBAC)B,F(A,数字逻辑30n(3) PLD中或阵列的逻辑表示图中或阵列的逻辑表示图7-5 输入缓冲器和反相缓输入缓冲器和反相缓冲器冲器n图7-6(a)是一个可编程的或阵列,其构成原理与可编程与阵列基本相同。图7-6(b)是图7-6(a)所示或阵列的PLD表示。或阵列的输入通常就是与阵列的乘积项输出,而或阵列的
25、输出则是编程后保留熔丝各支路输入乘积项的逻辑或。图7-6(c)和图7-6(d)分别给出了实现f(p1,p2,p3)=p1+p3的可编程或阵列及其PLD表示。数字逻辑31n(1) 输入缓冲器和反馈缓冲器输入缓冲器和反馈缓冲器n在PLD中有两种特殊的缓冲器输入缓冲器和反馈缓冲器。这两种缓冲器具有相同的电路构成,在PLD中的表示形式也一样,如图7-5所示。它们都是单输入、双输出的缓冲器单元:一个输出为高电平有效,即同极性输出端;另一个输出为低电平有效,即反极性输出端。与第二章曾经讨论过的三态输出缓冲器不同的是,虽然三态输出缓冲器也有3个端,但只有一个输入端和一个输出端,另一个则是使能控制端。数字逻辑
26、32n原则上说,三态输出缓冲器有两个输入端和一个输出端,使用PLD设计逻辑电路时,要注意两者之间的区别。输人缓冲器和反馈缓冲器的输出只有“0”和“1”两种逻辑状态,而三态输出缓冲器的输出除了有“0”和“1”这两个逻辑状态外,还有一个高阻(Z)状态。数字逻辑33n(2) 输出极性可编程的异或门输出极性可编程的异或门n在PLD中为了实现输出极性的可编程,常采用图7-7(a)所示的异或门结构。当编程后熔丝烧断时,异或门反极性输出,即Q0=P 1=,图7-7(c)是编程后反极性输出的PLD表示。若编程后熔丝不烧断,则异或门同极性输出,即Q0=P 0=P,图7-7(b)是编程后熔丝保留,输出同极性的PL
27、D表示。数字逻辑34n(3) 可编程数据选择器的可编程数据选择器的PLD表示表示地址选择可编程数据选择器的PLD表示如图7-8所示。其中,图7-8(a)为地址选择可编程二选一数据选择器(MUX)的PLD表示,图7-8(b)为地址选择可编程四选一数据选择器(MUX)的PLD表示。地址选择端被编程后,若列线与行线相连且接地,其输入为逻辑“0”。否则列线与行线断开,其输人为逻辑“1”。根据编程情况,四选一数据选择器的地址选择端的输入有00、01、10、11等4种情况。数字逻辑35n(4) 可编程数据分配器的逻辑表示可编程数据分配器的逻辑表示n在可编程逻辑器件中可编程数据分配器也经常被使用,可编程数据
28、分配器的PLD逻辑表示如图7-9所示。在图7-9中,其核心部分是可编程数据分配器,根据可编程熔丝S1S0的不同编程情况,乘积项簇分别被分配到n号、n+1号、n-1号、n-2号宏单元。熔丝1正常情况下(默认状态)不熔断,乘积项簇的信号传不到n号宏单元。若编程后熔丝1熔断,则乘积项簇的信号可以传到n号宏单元。熔丝2为又一个可编程点,如果熔丝2熔断,异或门反极性传输,否则异或门同极性传输,n号宏单元接收的信号与乘积项簇信号同相。数字逻辑36n(5) 激励方式可编程的时序记忆单元的激励方式可编程的时序记忆单元的PLD表示表示n时序记忆单元有两种锁存器和触发器。输出状态只受输入激励信号控制的时序记忆单元
29、是锁存器;只有在时钟信号控制下才能得到受输入激励信号决定的相应输出状态的时序记忆单元是触发器。两种时序记忆单元的根本区别是:输出状态的变化是否取决于时钟信号的控制。图7-10是激励方式可编程的时序记忆单元的PLD表示,由图7-10可以看出:通过编程,若使R/L端为“0”,则Q端的输出状态只与激励信号有关并由输入D来决定,此时图7-10所示电路为D锁存器;若通过编程使R/L端为1,则图7-10所示电路只有在时钟脉冲信号CLK的驱动下,Q端的状态变化才由D端激励信号决定。因此该电路具有D触发器功能。数字逻辑37n(6) PLD中与阵列的默认表示中与阵列的默认表示n在PLD器件的与阵列中常看到图7-
30、11中给出的几种表示。图中,输出为Z1的与门其4个输入变量被编程后全部输入,4个交叉点均画。因此,。输出为Z2的与门4个输入变量被编程后同样是全部输入,即。但此时的阵列交叉点上均未画,而是在与门符号内画有,这是前一种情况的简化表示(默认为此种表示)。输出为Z3的与门其输入阵列交叉点上无,与门符号内也无,这是PLD浮动状态的逻辑表示。浮动输入状态代表与阵列被编程后熔丝全部熔断,所有输入全部不与与门相接,相当于与门输入全悬空。此时与门输出为高电平,即输出逻辑“1”。数字逻辑38n20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的复杂可编程逻辑器件 CPLD和与标准门阵列类
31、似的现场可编程门阵列FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC相比,它们又具有设计开发周期短、制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000片以下)之中。几乎所有使用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。因此,这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。输出缓冲器的使能端控制信号。由于各阵列交叉点没有一个,呈悬浮状态,
32、则n+1号与门的输出为逻辑“1”。或阵列输出的Sm加在IOm引脚上,作为输出信号。另一方面,IOm信号又通过反馈缓冲器被反馈到与阵列。这个输出带反馈的组态方式其PLD表示如图7-12(b)所示。数字逻辑39n在可编程ASIC的发展过程中,不同厂家的叫法不尽相同。Xilinx公司把基于查找表技术、SRAM工艺的可编程ASIC叫做FPGA,把基于乘积项技术、Flash工艺的可编程ASIC叫CPLD;而Altera公司则把自己的MAX系列(乘积项技术、EEPROM工艺)、FLEX系列(查找表技术、SRAM工艺)都叫作CPLD。但由于FLEX系列也是采用SRAM工艺、基于查找表技术,用法和Xilinx
33、的FPGA一样,所以很多人把Altera的FELX系列产品也叫做FPGA。对用户而言,虽然CPLD和FPGA的内部结构有些差别,但功能基本相同,所以多数情况下不加以区分。数字逻辑40nFPGA/CPLD芯片都是特殊的芯片都是特殊的ASIC芯片,它们除了具有芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:的特点之外,还具有以下几个优点:n 随着随着VLSI(Very Large Scale IC,超大规模集成电路),超大规模集成电路)生产工艺的不断提高,芯片的集成也越来越高,生产工艺的不断提高,芯片的集成也越来越高,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已芯片的规模也越
34、来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,甚至可以达到上百万门,它所能实现的功能也越来越强,甚至可以实现单一芯片内的系统集成。实现单一芯片内的系统集成。n FPGA/CPLD芯片在出厂之前都做过百分之百的测试,芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以,使用最终功能设计。所以,使用FPGA/CPLD设计系统资金投设计系统资金投入小,节省了许多潜在的花费。入小,节
35、省了许多潜在的花费。数字逻辑41n 用户可以反复编程、擦除,或者在外围电路不变的情况下通过不同的编程软件实现不同的功能。所以,用FPGA/CPLD 试制样片,能以最快的速度占领市场。FPGA/CPLD软件包中有各种输入、仿真、版图设计和编程器等开发套件,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。当电路只需较少改动时,更能显示出FPGA/CPLD的优势。电路设计人员使用FPGA/CPLD进行电路设计时,不需要具备专门的IC(集成电路)深层次知识,基于FPGA/CPLD的开发软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场。 数字逻
36、辑42n1. 基于乘积项(基于乘积项(Product-Term)的的CPLD基本结基本结构及逻辑实现原理构及逻辑实现原理n(1) 基于乘积项(基于乘积项(Product-Term)的的CPLD基本结基本结构构n采用这种结构的芯片有:Altera的MAX7000、MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice、Cypress的大部分产品(EEPROM工艺)。图7-15是MAX7000系列的总体结构。数字逻辑43n这种器件可分为三块结构:宏单元(Marocell)、可编程连线(PIA)和I/O控制块。宏单元是器件的基本结构,由它来实现基本的
37、逻辑功能。图7-15中深色部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。可编程连线负责信号传递、连接所有的宏单元。I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出、摆率控制、三态输出等。图7-15左上的INPUT/GCLK1、INPUT/GCLRn、INPUT/OE1、INPUT/OE2是全局时钟、清零和输出使能信号,这几个信号有专用连线与器件中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。数字逻辑44数字逻辑45数字逻辑46n (2) 基于乘积项(基于乘积项(Product-Term)的的CPLD逻辑实现原理逻辑实现原理n 下面以一个简单的四输入逻辑电路
38、为例,说明基于乘积项结构的CPLD是如何实现相应逻辑功能的,其原理电路如图7-17所示。数字逻辑47n图7-17所示电路只是一个很简单的例子,只需一个宏单元就可以完成。但若是较复杂的电路,一般情况下一个宏单元是不可能实现的。这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程的与阵列,再做为另一个宏单元的输入,这样就可以实现更复杂逻辑功能。数字逻辑48n2. 基于查找表(基于查找表(Look-Up-Table)的的FPGA基本结构及逻辑基本结构及逻辑实现原理实现原理n(1) 查找表(查找表(Look-Up-Table)的基本原理的基本原理n采用这种结构的可编程A
39、SIC芯片称为FPGA,如Altera的ACEX、APEX系列,Xilinx的Spartan、Virtex系列等。n查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。 目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的161的RAM。 当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。数字逻辑49数字逻辑50n(2) 基于查找表(基于查找表(LUT)的的FPGA的基本结
40、构的基本结构n以以Xilinx Spartan-II为例了解一下为例了解一下FPGA的内部结构,如的内部结构,如图图7-19所示。所示。Spartan-II系列系列FPGA采用了常规的灵活可采用了常规的灵活可编程架构,包括可配置逻辑块(编程架构,包括可配置逻辑块(CLB)和环绕在)和环绕在CLB四周四周的可编程输入的可编程输入/输出模块(输出模块(IOB),并通过多用途布线资源),并通过多用途布线资源形成强大的互连体系。形成强大的互连体系。nFPGA主要包括可配置逻辑块(主要包括可配置逻辑块(CLB)、输入)、输入/输出模块输出模块(IOB)、片内)、片内RAM块和可编程连线(块和可编程连线(
41、PI)等。其中,)等。其中,CLB是是FPGA的基本逻辑单元,能够完成用户指定的逻辑的基本逻辑单元,能够完成用户指定的逻辑功能,还可配置成功能,还可配置成RAM等形式。等形式。CLB一般由函数发生器、一般由函数发生器、数据选择器、触发器和信号变换电路等部分组成。输入数据选择器、触发器和信号变换电路等部分组成。输入/输出模块输出模块(IOB)分布于芯片内部四周,在内部逻辑与外部分布于芯片内部四周,在内部逻辑与外部引脚之间提供一个可编程接口。引脚之间提供一个可编程接口。IOB主要由输入触发器、主要由输入触发器、输入缓冲器和输出触发输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个锁存器、输出缓冲器
42、组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向控制一个引脚,它们可被配置为输入、输出或双向I/O功能。功能。ABAAB数字逻辑51数字逻辑52n可编程连线(PI) 由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。提供高速可靠的内部连线,将CLB之间、 CLB和IOB之间连接起来构成复杂逻辑。nSpartan-II CLB的基本构造单元是逻辑单元(LC)。一个LC包括一个四输入函数发生器、进位逻辑和一个存储单元。 每个LC中函数发生器的输出同时驱动CLB输出和触发器的D输入端。 每个Spartan-II CLB包含四个LC,两两组合成两个同样的Slice。Spartan-II函数发生器采用4输入查找表(LUT)实现,如图7-20所示。数字逻辑53n本章主要介绍可编程逻辑器件的基本知识。首先介绍了可编程逻辑器件的产生和发展,然后较详细地介绍了PLD的分类方法及各种PLD的结构特点,随后介绍了PLD区别于常规数字逻辑器件独特逻辑表示方法,最后介绍了目前常用的两种主流PLD器件CPLD和FPGA的基本结构和逻辑实现原理。本章的编写,旨在让学习者对PLD器件(包括SPLD、CPLD和FPGA等)的常识性知识有一定了解,并掌握PLD器件的逻辑表示方法,为今后利用PLD器件开发属于自己的数字系统打下一定的基础。