HYIT1第二讲可编程逻辑器件PLDHYIT2内容提要出现背景各可编程器件简介基本结构和原理HYIT3数字电路课程的回顾布尔函数--数字系统数学基础(卡诺图)数字电路设计的基本方法:组合电路设计问题逻辑关系真值表化简逻辑图时序电路设计列出原始状态转移图和表状态优化状态分配触发器选型求解方程式逻辑图HYIT4使用中、小规模器件设计电路(74、54系列)编码器(74LS148)译码器(74LS154)比较器(74LS85)计数器(74LS193)移位寄存器(74LS194)………HYIT5设计方法的局限卡诺图只适用于输入比较少的函数的化简。采用“搭积木”的方法的方法进行设计。必须熟悉各种中小规模芯片的使用方法,从中挑选最合适的器件,缺乏灵活性。设计系统所需要的芯片种类多,且数量很大。采用中小规模器件的局限电路板面积很大,芯片数量很多,功耗很大,可靠性低--提出提高芯片的集成度的需要设计比较困难--提出方便地发现设计错误的需要电路修改很麻烦--提出提供方便的修改手段的需要HYIT6PLD:ProgrammableLogicDevices可编程器件HYIT7电路集成度不断提高SSIMSILSIVLSI计算机技术发展使EDA技术得到广泛应用设计方法的发展自下而上自上而下用户需要设计自己需要的专用电路专用集成电路(ASIC-ApplicationSpecificIntegratedCircuits)开发周期长,投入大,风险大可编程器件PLD:开发周期短,投入小,风险小出现背景HYIT8基本结构和原理PLD基本理论依据(P19)任何组合电路都可表示为其所有输入信号的最小项的和或者最大项的积的形式。时序电路包含可记忆器件(触发器),其反馈信号和输入信号通过逻辑关系再决定输出信号。HYIT9符号HYIT10PLD的基本电路模块互补输入与阵列模块或阵列的模块输出反馈电路模块查找表模块HYIT11PLD的互补输入PLD中或阵列的模块PLD中与阵列模块HYIT12阵列线连接表示HYIT13PLD器件的基本模型HYIT14PLD输出反馈电路模块DQ到输入来自或逻辑输出组合逻辑输出时序逻辑输出HYIT15查找表LUTLook-UpTable实际逻辑电路LUT的实现方式a,b,c,d输入逻辑输出地址RAM中存储的内容00000000000001000010....0...01111111111HYIT16各可编程器件简介PLD器件的分类——按编程工艺PLD器件的分类——按集成度关于可编程数字电子系统的实现方式HYIT17PLD器件的分类——按编程工艺熔丝编程器件:由可以用电流熔断的熔丝组成。反熔丝编程器件——主要通过击穿介质达到连通线路的目的。Actel的FPGA器件体积小,集成度高,速度高,易加密,抗干扰,耐高温。只能一次编程,在设计初期阶段不灵活SRAM型——大多数公司的FPGA器件可反复编程,实现系统功能的动态重构每次上电需重新下载,实际应用时需外挂EEPROM用于保存程序EEPROM型——大多数CPLD器件可反复编程不用每次上电重新下载,但相对速度慢,功耗较大HYIT18PLD器件的分类——按集成度可编程逻辑器件低密度可编程逻辑器件(LDPLD)PROMPLAPALGALEPLDCPLDFPGA高密度可编程逻辑器件(HDPLD)HYIT19PROMPROM表达的PLD图阵列与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F用PROM完成半加器逻辑阵列与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F01110100AAFAAAAF(ProgrammableReadOnlyMemory)HYIT20PROM与阵列为全译码阵列,器件的规模将随着输入信号数量n的增加成指数级增长。因此PROM一般只用于数据存储器,不适于实现逻辑函数。EPROM和EEPROMHYIT21PLA可编程逻辑阵列,它由一个“与”平面和一个“或”平面构成,两个平面均可编程的。PLA的内部结构在简单PLD中有最高的灵活性。软件算法复杂,编程后器件运行速度慢BA或阵列(可编程)YZ与阵列(可编程)(ProgrammableLogicArray)HYIT22PAL与阵列可编程使输入项增多,或阵列固定使器件简化。简化了编程算法,提高了运行速度。输出I/O方式单一;一次可编程。(ProgrammableArrayLogic)HYIT23GAL与PAL器件的区别:用可编程的输出逻辑宏单元(OLMC)代替固定的或阵列,可实现输出方式编程;采用EEPROM工艺,能够电擦除重复编程GAL16V8,GAL22V10(GenericArrayLogic)逻辑宏单元OLMCHYIT24GAL器件的OLMCOutputLogicMacroCell每个OLMC包含或阵列中的一个或门组成:异或门:控制输出信号的极性D触发器:适合设计时序电路4个多路选择器输出使能选择反馈信号选择或门控制选择输出选择HYIT25PT1CLKG2PTTXOEOLMC(n)+VCCG411100100TSMUXAC0AC1(n)01PTMUXG1AG3与阵列FXXOR(n)DQ01OMUXQOXI/O(n)至邻近宏单元(n=15及16时无此线)10x11x0x10x0FMUXAC0AC1(m)AC1(n)CLKOEI/O(m):n=13~18时,来自邻近宏单元OMPXHYIT26早期PLD器件特点可以实现速度特性较好的逻辑功能简单的结构也使它们只能实现规模较小的电路解决出路:Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD(ComplexProgrammab1eLogicDvice)和与标准门阵列类似的FPGA(FieldProgrammableGateArray)HYIT27二十世纪八十年代中期,ALTERA(阿特喇)公司推出了EPLD(ErasablePLD)器件,EPLD器件比GAL器件有更高的集成度,采用EPROM工艺或EEPROM工艺,可用紫外线或电擦除,适用于较大规模的可编程电路,也获得了广泛的应用。EPLD(ErasablePLD)HYIT28CPLDCPLD是基于乘积项(Product-Term)技术,EEPROM(或Flash)工艺。EEPROM工艺的CPLD密度小,多用于5,000门以下的小规模设计,适合做复杂的组合逻辑,如译码。(ComplexProgrammableLogicDevice)HYIT29CPLD内部结构(Altera的MAX7000S系列)逻辑阵列模块I/O单元连线资源逻辑阵列模块中包含多个宏单元HYIT30乘积项逻辑阵列乘积项选择矩阵可编程触发器MAX7000系列的宏单元结构图HYIT31宏单元(Marocell)宏单元是PLD的基本结构,由它来实现基本的逻辑功能。图中蓝色部分是多个宏单元的集合。可编程连线(PIA)可编程连线负责信号传递,连接所有的宏单元。I/O控制块I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。HYIT32Altera公司MAX7000系列基本系列:低密度系列EPM7032/V、7064、7096增强型系列:高密度系列EPM7128E、7160E、7196E、7256E增强型系列:高密度带ISP功能系列EPM7032S、7064S、7128S、7160S、7196S、7256SHYIT33FPGA基于查找表(Look-UpTable)技术,SRAM工艺。SRAM工艺的FPGA,密度高,触发器多,多用于10,000门以上的大规模设计,适合做复杂的时序逻辑,如数字信号处理和各种算法。(FieldProgrammableGateArray)HYIT34FLEX10K系列的框图HYIT35FLEX10K的结构组成EAB(包括RAM块)I/O块LAB可编程行/列连线—快速互联通道(FastTrack)HYIT36EAB嵌入式阵列块:是在输入/输出口上带有寄存器的RAM块。嵌入式阵列块(EAB)主要有RAM/ROM、触发器、数据选择器等组成。存储器的地址线、数据线以及控制存储器的写入端都可以经过数据选择器来决定是否经过触发器。IOEI/O块:是内部逻辑资源和外部逻辑器件之间的接口。通过编程,可以被配置成输入、输出或双向I/O。LAB逻辑阵列块:每个逻辑阵列块由8个逻辑单元(LE)相连的进位链和级联链、LAB控制信号以及LAB局部互连线组成。逻辑单元(LogicElement)是FLEX10K器件的最小单元。FastTrack快速互连通道:由遍及整个FLEX10K器件长、宽的一系列行和列构成的连续式布线通道组成。采用这种布线结构使设计的布线延时成为可预测的。HYIT37LE的组成1个查找表(LookUpTable,LUT)1个可编程触发器可以配置成D、T、JK、RS等触发器1个进位链(CarryChain)用来实现逻辑单元之间快速进位功能。1个级联链(CascadeChain)级联链是用来实现大于4个输入变量逻辑函数的结构。级联链通过逻辑与和逻辑或将相邻的逻辑单元的输出连接起来。HYIT38LE(逻辑单元)的框图HYIT39在FLEX10K中,一个LAB包括8个逻辑单元(LE),每个LE包括一个LUT,一个触发器和相关的相关逻辑。LE是FLEX10K芯片实现逻辑的最基本结构。LE的结构图如下一页图所示。HYIT40CPLD与FPGA的区别CPLDFPGA内部结构Product-termLook-upTable程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源-EAB,锁相环保密性可加密一般不能保密HYIT41FPGA与CPLD的区别FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EEPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。HYIT42FPGA与CPLD的区别FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个CLB结合起来实现。CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。HYIT43FPGA与CPLD的区别FPGA为细粒度结构,CPLD为粗粒度结构。FPGA内部有丰富连线资源,CLB分块较小,芯片的利用率较高。CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此CPLD利用率较FPGA器件低。HYIT44FPGA与CPLD的区别FPGA为非连续式布线,CPLD为连续式布线。FPGA器件在每次编程时实现的逻辑功能一样,但走的路线不同,因此延时不易控制,要求开发软件允许工程师对关键的路线给予限制。CPLD每次布线路径一样,CPLD的连续式互连结构利用具有同样长度的一些金属线实现逻辑单元之间的互连。连续式互连结构消除了分段式互连结构在定时上的差异,并在逻辑单元之间提供快速且具有固定延时的通路。CPLD的延时较小。HYIT45使用FPGA/CPLD设计时,应该对芯片内部的各种底层硬件资源,和可用的设计资源有一个较深刻的认识。比如FPGA一般触发器资源比较丰富,而CPLD组合逻辑资源更丰富一些,这点直接影响着两者使用的编码风格。一般来说实时性要求高、频率快的功能模块适合使用FPGA/CPLD实现。HYIT46主要PLD生产厂家•www.altera.com–最大的PLD供应商之一•www.xilinx.com–FPGA的发明者,最大的PLD供应商之一•www.latticesemi.com–ISP技术的发明者•www.ac