EDA技术与VHDL第2章PLD硬件特性与编程技术2.1PLD概述图2-1基本PLD器件的原理结构图输入缓冲电路与阵列或阵列输出缓冲电路输入输出……数字电路的基本组成任何组合电路都可表示为所有输入信号的最小项的和或者最大项的积的形式。时序电路包含可记忆器件(触发器),其反馈信号和输入信号通过逻辑关系再决定输出信号。输入电路输出电路或阵列与阵列输入项乘积项或项说明组成功能输入控制输入缓冲器产生输入变量的原变量和反变量与阵列与门阵列产生输入变量的与项(乘积项)或阵列或门阵列将与阵列输出的乘积项有选择的进行或运算,形成与或式,实现函数输出控制三态门寄存器产生输出信号,提供反馈信号2.1.1PLD的发展历程熔丝编程的PROM和PLA器件AMD公司推出PAL器件GAL器件FPGA器件EPLD器件CPLD器件内嵌复杂功能模块的SoPC20世纪70年代20世纪70年代末20世纪80年代初20世纪80年代中期20世纪80年代末进入20世纪90年代后2.1PLD概述2.1.2PLD的分类可编程逻辑器件(PLD)简单PLD复杂PLDPROMPALPLAGALCPLDFPGA图2-2按集成度(PLD)分类2.1PLD概述2.1.2PLD的分类1.熔丝(Fuse)型器件。2.反熔丝(Anti-fuse)型器件。3.EPROM型。称为紫外线擦除电可编程逻辑器件。4.EEPROM型。5.SRAM型。6.Flash型。2.1PLD概述从编程工艺上划分:第一类是与阵列固定、或阵列可编程的PLD器件。这类PLD器件以可编程只读存储器PROM为代表。第二类是与阵列和或阵列均可编程的PLD器件,以可编程逻辑阵列PLA为代表。第三类是以可编程阵列逻辑PAL为代表的与阵列可编程、或阵列固定的PLD器件。第四类是具有可编程输出逻辑宏单元的通用PLD器件,以通用型可编程阵列逻辑GAL器件为主要代表。根据PLD器件的与阵列和或阵列的编程情况以及输出形式,低密度可编程逻辑器件通常可分为四类。2.2低密度PLD可编程原理2.2低密度PLD可编程原理2.2.1电路符号表示图2-3常用逻辑门符号与现有国标符号的对照2.2.1电路符号表示图2-4PLD的互补缓冲器图2-5PLD的互补输入图2-6PLD中与阵列表示图2-7PLD中或阵列的表示图2-8阵列线连接表示2.2.2PROM图2-9PROM基本结构地址译码器存储单元阵列………0A1A1nA0W1W1pW0F1F1mFnp22.2低密度PLD可编程原理2.2.2PROM0111201110110...AAAWAAAWAAAWnnnnPROM中的地址译码器是完成PROM存储阵列的行的选择,其逻辑函数是:2.2低密度PLD可编程原理2.2.2PROM行单元的值列是存储单元阵列第而,其中1121,1pmMpmpn2.2低密度PLD可编程原理01,011,111,1101,011,111,1100,010,110,10WMWMWMFWMWMWMFWMWMWMFmmpmpmpppp……...…2.2.2PROM与阵列(不可编程)或阵列(可编程)………0A1A1nA0W1W1pW0F1F1mFnp2图2-10PROM的逻辑阵列结构2.2低密度PLD可编程原理2.2.2PROM图2-11PROM表达的PLD阵列图与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F1010AACAAS2.2低密度PLD可编程原理2.2.2PROM图2-12用PROM完成半加器逻辑阵列01110100AAFAAAAF与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F2.2低密度PLD可编程原理PROM(EPROM)可编程存储器I2I1I0Q0Q1Q2或门阵列(可编程)与门阵列(固定)PROM结构与阵列为全译码阵列,器件的规模将随着输入信号数量n的增加成2n指数级增长。因此PROM一般只用于数据存储器,不适于实现逻辑函数。EPROM和EEPROM用PROM实现组合逻辑电路功能实现的函数为:BABAF1BABAF2BAF3固定连接点(与)编程连接点(或)PROM(EPROM)可编程存储器特点•与阵列固定,全译码形式,产生输入变量的全部最小项•或阵列可编程•输入变量数增加,与阵列规模迅速增加,价格上涨•组合型结构,无触发器2.2.3PLA图2-13PLA逻辑阵列示意图与阵列(可编程)或阵列(可编程)0A1A1A1A0A0A1F0F2.2低密度PLD可编程原理2.2.3PLA图2-14PLA与PROM的比较0A1A1F0F2A2F0A1A1F0F2A2F2.2低密度PLD可编程原理2.2.4PAL图2-15PAL结构图2-16PAL的常用表示0A1A1F0F0A1A1F0F2.2低密度PLD可编程原理PAL可编程阵列逻辑I2I1I0Q0Q1Q2或门阵列(固定)与门阵列(可编程)PAL结构与阵列可编程使输入项增多,或阵列固定使器件简化。或阵列固定明显影响了器件编程的灵活性。BnAn“或”阵列(固定)SnCn+1“与”阵列(可编程)CnnnnnnnnnnnnnnnnnnnnnCBCABACCBACBACBACBAS1AnBnCnAnBnCnAnBnCnAnBnCnAnBnAnCnBnCn用PAL实现全加器图2-17一种PAL16V8的部分结构图11100100R11100100RQQD11100100R11100100RVccSG1SL07SL17SG0SL0619I/O711100100R11100100RQQD11100100R11100100RVccSG1SL06SL16SG1SL0618I/O61CLK/I02I13I2078150347812111516192023242728312.2.5GAL2.2低密度PLD可编程原理GAL即通用阵列逻辑器件,首次在PLD上采用了EEPROM工艺,使得GAL具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。GAL在“与-或”阵列结构上沿用了PAL的与阵列可编程、或阵列固定的结构,但对PAL的输出I/O结构进行了较大的改进,在GAL的输出部分增加了输出逻辑宏单元OLMC(OutputMacroCell)。•与阵列可编程•或阵列固定•输出端集成输出逻辑宏单元(OLMC)•编程容易,结构简单,应用最广泛GAL通用可编程阵列逻辑特点GAL器件的OLMCOutputLogicMacroCell每个OLMC包含或阵列中的一个或门组成:异或门:控制输出信号的极性D触发器:适合设计时序电路4个多路选择器输出使能选择反馈信号选择或门控制选择输出选择GAL结构GAL器件与PAL器件的区别在于用可编程的输出逻辑宏单元(OLMC)代替固定的或阵列。可以实现时序电路。逻辑宏单元OLMC复杂高密度PLD的基本结构复杂高密度PLD包括:可擦除可编程逻辑器件EPLD复杂的可编程逻辑器件CPLD(ComplexProgrammableLogicDevice)现场可编程门阵列FPGA(FieldProgrammableGateArray)可擦除可编程逻辑器件EPLD一般来说,世界著名的半导体公司,如Altera、Xilinx、AMD、Lattice和Atmel等公司均生产EPLD产品,但是这些产品的结构差异很大。通常,EPLD的基本结构主要包括可编程的与逻辑阵列、固定的或逻辑阵列和输出逻辑宏单元三个部分。为了提高集成度,同时又保持EPLD传输时间可预测的优点,生产厂商将若干个类似PAL的功能模块和实现互连的开关矩阵集成在同一芯片上,这样就形成了复杂的可编程逻辑器件CPLD(ComplexProgrammableLogicDevice)。一般而言,CPLD在集成度和结构上呈现出来的特点是:与或阵列的规模更大,触发器的数目更多,同时增加了大量的逻辑宏单元和布线资源。不同器件公司的CPLD产品结构不同。但是任何芯片公司的CPLD的基本结构都应该包括三个部分:可编程逻辑宏单元、可编程I/O单元和布线池,只不过不同公司具有不同的表示形式而已。逻辑阵列模块I/O单元连线资源逻辑阵列模块中包含多个宏单元2.3CPLD的结构与可编程原理图2-19MAX7128S的结构1.逻辑阵列块(LAB)2.3CPLD的结构与可编程原理2.宏单元全局时钟信号全局时钟信号由高电平有效的时钟信号使能用乘积项实现一个阵列时钟2.3CPLD的结构与可编程原理逻辑阵列MAX7000系列中的宏单元乘积项选择矩阵可编程寄存器2.3CPLD的结构与可编程原理图2-18MAX7000系列的单个宏单元结构(2)宏单元内部结构乘积项逻辑阵列乘积项选择矩阵可编程触发器3.扩展乘积项局部连线共享扩展项提供的“与非”乘积项宏单元的乘积项逻辑宏单元的乘积项逻辑图2-20共享扩展乘积项结构2.3CPLD的结构与可编程原理共享扩展项3.扩展乘积项图2-22并联扩展项馈送方式并联扩展项4.可编程连线阵列(PIA)图2-22PIA信号布线到LAB的方式2.3CPLD的结构与可编程原理5.I/O控制块图2-23EPM7128S器件的I/O控制块1、工作电源的类型和接入要求2、编程口(JTAG、PS、AS)3、各种端口的电气性能与使用方法4、内部的嵌入式模块5、配置器件硬件特性的5个方面:2.4FPGA的结构与工作原理FPGA的结构与生产厂家有关,其一般由下面几部分组成:基本可编程逻辑单元可编程输入/输出单元布线资源嵌入式RAM底层嵌入功能单元内嵌专用硬核(1)FPGA结构2.4FPGA的结构与工作原理(1)FPGA结构(AlteraCycloneseries)LABLELE1LE2LE3LE4LE5LE6LE7LE8LE10LE9LE1LE2LE3LE4LE5LE6LE7LE8LE10LE94444444444控制信号局部互连LAB输入信号LUT链和寄存器链LE反馈信号连线FPGA中的逻辑阵列块(LAB)LE内部结构2.4.1查找表逻辑结构图2-24FPGA查找表单元查找表LUT输入1输入2输入3输入4输出2.4FPGA的结构与工作原理2.4.1查找表逻辑结构图2-25FPGA查找表单元内部结构查找表的基本原理实际逻辑电路LUT的实现方式a,b,c,d输入逻辑输出地址RAM中存储的内容00000000000001000010....0...01111111111N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多个输入的查找表采用多个逻辑块级连的方式查找表的基本原理N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多于输入的查找表采用多个逻辑块级连的方式查找表与门查找表与门查找表与门d[3..0]d[7..4]d[11..0]FPGA中的嵌入式阵列(EAB)可灵活配置的RAM块用途实现比较复杂的函数的查找表,如正弦、余弦等。可实现多种存储器功能,如RAM,ROM,双口RAM,FIFO,Stack等灵活配置方法:256×8,也可配成512×4嵌入式阵列块EAB(EmbeddedArrayBlock)参见原图2.4.2Cyclone系列器件的结构与原理图2-26CycloneLE结构图2.4.2Cyclone系列器件的结构与原理图2-27CycloneLE普通模式data1addnsubdata2data34-inputLUT4-inputLUTcindata4RegRegsloadsclearaloadclockenaaclr行、列直连线布线LUT链寄存器链行、列直连线布线行、列直连线布线寄存器链输入同步装载清零逻辑寄存器两个2输入LUT(进位)寄存器控制信号寄存器链输入Data1Data2Data3行、列和直连线布线局部布线两个2输入LUT(和)寄存器链输出addnsub进位输出逻辑进位输入逻辑LAB进位输入进位输入0进位输入1进位输出1进位输出02.4.2Cycl