单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,湖南科技大学 计算机学院 戴祖雄,*,可编程逻辑器件,1,2.1 可编程逻辑器件概述,PLD是可编程逻辑器件(Programmable Logic Devices)的英文缩写,是EDA得以实现的硬件基础,通过编程,可灵活方便地构建和修改数字电子系统。,2.1.1 PLD开展历程,(1)20世纪70年代,熔丝编程的PROM和可编程逻辑阵列(Programmable Logic Array,PLA)器件是最早的可编程逻辑器件。,(2)20世纪70年代末,对PLA进行了改进,AMD公司推出可编程阵列逻辑(Programmable Array Logic,PAL)器件。,(3)20世纪80年代初,Lattice公司创造了通用阵列逻辑(Generic Array Logic,GAL)器件,GAL比PAL使用更加灵活。,(4)20世纪80年代中期,Xilinx公司提出现场可编程概念,同时生产出世界上第一片FPGA器件。同一时期,Altera公司推出EPLD(Erasable Progammable Logic Device)器件,较GAL器件有更高的集成度,可以用紫外线或电擦除,但内部互连能力比较弱。,(5)20世纪80年代末,Lattice公司提出了在系统可编程(In System Programmable,ISP)技术。此后推出了一系列具有在系统可编程能力的CPLD器件,CPLD增加了内部互连线,改进了内部结构体系,比EPLD性能更好,设计更加灵活。,(6)进入20世纪90年代后,高密度PLD在生产工艺、器件的编程和测试技术等方面都有了飞速开展。器件的可用逻辑门数超过了百万门,并出现了内嵌复杂功能模块的SoPC(System on Programmalbe Chip)。,2.1.2 可编程逻辑器件的特点,(1)减小系统体积,(2)增强逻辑设计的灵活性,(3)缩短设计周期,降低了系统本钱,(4)提高系统处理速度,(5)提高系统的可靠性,(6)系统具有加密功能,2.1.3 可编程逻辑器件的分类,(1)按集成度分,简单PLD,逻辑门数500门以下,包括PROM、PLA、PAL、GAL等器件。,复杂PLD,芯片集成度高,逻辑门数500门以上,一般以GAL22V10作参照,集成度大于GAL22V10的称为复杂PLD,包括EPLD、CPLD、FPGA等器件。,(2)按编程结构分,乘积项结构PLD,其根本结构为“与或,包括PROM、PLA、PAL、GAL、EPLD、CPLD等器件。,查找表结构PLD,由简单的查找表组成可编程门,再构成阵列形式,FPGA属此类器件。,(3)按互连结构分,确定型PLD。,确定型PLD提供的互连结构,每次用相同的互连线布线,其时间特性可以确定预知(如由数据手册查出),是固定的,如CPLD。,统计型PLD。,统计型结构是指设计系统时,其时间特性是不可以预知的,每次执行相同的功能时,却有不同的布线模式,因而无法预知线路的延时,如Xilinx公司的FPGA器件。,(4)按编程工艺分,熔丝型PLD。,反熔丝型PLD。,EPROM型PLD。,EEPROM型PLD,SRAM型PLD,2.2 简单PLD原理,2.2.1 PLD中阵列的表示方法,图2.1 输入缓冲器,图2.2 PLD中“与阵列表示,图2.3 PLD的连接方式,2.2.2 PROM,图2.4 PROM结构示意图,图2.5 用PROM完成半加器逻辑阵列,2.2.3 PLA器件,图2.6 PLA结构示意图,图2.7 PLA与PROM的比较,2.2.4 PAL,图2.8 PAL结构,2.2.5 GAL器件,图2.9 GAL16V8D的外部引脚结构图,图2.10 CPLD结构示意图,2.3 CPLD的结构与工作原理,2.3.1 CPLD的根本结构,2.3.2 Altera公司MAX系列CPLD简介,图2.11 MAX7128S内部结构图,1逻辑阵列块,对于每个LAB有以下输入信号:,(1)来自通用逻辑输入的PIA的36个信号;,(2)用于存放器辅助功能的全局控制信号;,(3)从I/O引脚到存放器的直接输入通道。,2宏单元,每个可编程的触发器可以按3种不同方式实现时钟控制:,(1)全局时钟模式。全局时钟输入直接和存放器的CLK端相连,实现最快的输出。,(2)全局时钟带高电平有效时钟使能信号模式。这种模式提供每个触发器的时钟使能信号,由于仍使用全局时钟,输出速度较快。,(3)乘积项时钟模式。在这种模式下,时钟来自I/O引脚或隐埋的宏单元,输出速度较慢。,3扩展乘积项,(1)共享扩展项,图2.13 共享扩展项,(2)并联扩展项,图2.14 并联扩展项,4可编程连线阵列,图2.15 PIA与LAB连接方式,5I/O控制块,图2.16 EPM7128S器件的I/O控制块使能,2.4 FPGA结构与工作原理,2.4.1 FPGA的根本结构,图2.17 FPGA的结构原理,2.4.2 Xilinx公司XC3000系列的结构,1可配置逻辑块,图2.18 XC3000的CLB结构,2输入输出模块IOB,图2.19 XC3000系列的IOB,3配置存储单元,图2.20 配置存储单元,4可编程互连,互连线有3种:,(1),通用互连,(General Purpose Interconnect,GPI),是夹在CLB之间的5根金属连线,有横线和纵线,相交处有转接矩阵,可编程互连。,(2),直接互连,(Direct Interconnect),提供相邻CLB之间或CLB与IOB之间的直接连接。,(3),长线,(Longlines),是夹在CLB之间不通过转接矩阵的连续金属连线,与IOB相邻时还有附加的长线。,2.5 常用FPGA/CPLD产品简介,2.5.1 ALTERA公司的FPGA/CPLD器件系列,(1)FLEX器件系列FPGA,(2)APEX和APEX II器件系列FPGA,(3)ACEX器件系列FPGA,(4)Stratix器件系列FPGA,(5)MAX系列CPLD,2.5.2 Lattice公司CPLD器件系列,下面主要介绍常用的ispLSI/MACH系列。,(1)ispLSI1000系列,(2)ispLSI2000系列,(3)ispLSI3000系列,(4)ispLSI5000系列,(5)ispLSI6000系列,(6)ispLSI8000系列,(7)ispMACH4000系列,(8)ispLSI5000VE/ispMACH5000系列,(9)ispXPLDTM 5000MX系列,2.5.3 Xilinx公司的FPGA/CPLD器件系列,(1)Virtex器件系列FPGA,(2)Virtex E和Virtex Pro器件系列FPGA,(3)Spartan 器件系列FPGA,(4)XC9500器件系列CPLD,2.6 FPGA/CPLD的测试技术,2.6.1 内部逻辑测试,FPGA/CPLD的内部逻辑测试是为了保证设计的正确性和可靠性。由于设计时总有可能考虑不周,在设计完成后,必须经过测试,而为了对复杂逻辑进行测试,在设计时就必须考虑用于测试的逻辑电路,即进行可测性设计(Design For Test,DFT),在设计完成后用来测试关键逻辑。,2.6.2 JTAG边界测试技术,表2.1 边界扫描I/O引脚功能,图2.21 JTAG BST电路内部结构图,内部存放器组包括以下存放器:,(1)指令存放器(Instruction Register),(2)旁路存放器(Bypass Register),(3)边界扫描存放器(Board Scan Register),(4)器件ID存放器,(5)ISP/ICR存放器,(6)其它存放器,TAP控制器的命令模式有:,(1)SAMPLE/PRELOAD模式。该指令模式允许在不中断器件正常工作状态的情况下捕获器件内部数据。,(2)EXTEST模式。该指令模式主要用于器件外部引脚的测试。,(3)BYPASS模式。该指令模式是TAP控制器缺省的测试数据的串行移位模式,数据信号在TCK上升沿进入,通过Bypass存放器,在TCK下降沿输出。,(4)IDCODE模式。该指令模式用来标识IEEE Std1149.1链中的器件。,(5)USERCODE模式。该指令模式用来标识IEEE Std1149.1l链中的用户器件的用户电子标签UES(User Electronic Signature)。,2.7 FPGA和CPLD的比较,(1)编程单元。查找表型FPGA的编程单元为SRAM结构,可以无限次编程,但它属于易失性元件,掉点后芯片内信息要丧失;而CPLD则采用EEPROM编程单元,不仅可无限次编程,且掉电后片内信息不会丧失。,(2)逻辑功能块。FPGA的CLB阵列在结构形式上克服了CPLD中那种固定的“与-或逻辑阵列结构的局限性,在组成一些复杂的、特殊的数字系统时现得更加灵活。,(3),内部连线结构。,CPLD的信号汇总于编程内连矩阵,然后分配到各个CLB,因此信号通路固定,系统速度可以预测。而FPGA的内连线分布在CLB的周围,且编程的种类和编程点很多,使布线相当灵活。但由于每个信号的传输途径各异,传输延迟时间是不确定的,这不仅会给设计工作带来麻烦,而且也限制了器件的工作速度。,(4),芯片逻辑利用率。,由于FPGA的CLB的规模小,可分为组合和时序两个独立的电路,又有丰富的内部连线,系统综合时可进行充分的优化,芯片的逻辑利用率比CPLD要高。,(5)内部功耗。CPLD的功耗一般在0.5W2.5W之间,而FPGA的功耗只有0.25mW5mW,静态时几乎没有功耗。,(6)应用范围。鉴于FPGA和CPLD在结构上的上述差异,其适用范围也有所不同。一般FPGA主要用于数据通路、多I/O口及多存放器的系统;而CPLD则使用于高速总线接口、复杂状态机等对速度要求较高的系统。,(7)CPLD保密性好,FPGA保密性差。,(8)CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。,