您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 第2章FPGA-CPLD结构原理XXXX第1讲
1/89CPLD/FPGA实用教程第2章PLD/CPLD/FPGA/硬件结构2/89可编程逻辑器件(PLD):ProgrammableLogicDevicePLD是大规模集成电路技术发展的产物,是半定制的集成电路,拥有自主设计的广泛空间。PLD的应用和发展简化了电路设计、降低了成本,提高了系统的可靠性和保密性,推动了EDA工具的发展,而且改变了数字系统的设计方法。3/892.1概述基本门组合电路时序电路任何的组合逻辑函数都可以化为“与-或”表达式任何的组合电路可以用“与门-或门”二级电路实现任何的时序电路都可由组合电路加上存储元件(锁存器、触发器)构成4/892.1概述输入缓冲电路与阵列或阵列输出缓冲电路输入输出……基本PLD器件的原理结构图5/892.1概述2.1.1可编程逻辑器件的发展历程PROM(ProgrammableReadOnlyMemory)PLA(ProgrammableLogicArray)PAL(ProgrammableArrayLogic)GAL(GenericArrayLogic)EPLDCPLDFPGA6/892.1概述2.1.2可编程逻辑器件的分类可编程逻辑器件(PLD)简单PLD复杂PLDPROMPALPLAGALCPLDFPGAPLD按集成度分类低集成度(低密度)芯片:可用逻辑门数大约在1000以下,称简单PLD,如PLA、PAL、GAL高集成度(高密度)芯片:CPLD、FPGA芯片,称复杂PLD按集成度分类7/89乘积项结构器件(CPLD)查找表结构器件(FPGA)熔丝型器件:一次性器件反熔丝型器件:一次性器件EPROM型器件:紫外线擦除电可编程EEPROM型器件:电可擦写编程SRAM型器件:查找表结构的器件Flash型器件:多次可编程,掉电后不需重配置按结构分类按编程工艺分类第一代第四代8/892.2简单可编程逻辑器件原理2.2.1电路符号表示常用逻辑门符号与现有国标符号的对照原理图一般用图中的常用符号来描述表示;比较复杂的逻辑结构,用一套简化的符号来表示(1991标准符号)。9/892.2简单可编程逻辑器件原理2.2.1电路符号表示PLD的互补缓冲器PLD的互补输入PLD中与阵列表示PLD中或阵列的表示阵列线连接表示10/892.2简单可编程逻辑器件原理2.2.2PROMPROM表达的PLD阵列图与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F主要特点:与阵列固定,或阵列可编程;与阵列是全译码器,产生了全部最小项,有n个输入则有2n个乘积项;出厂时或阵列的交叉处有熔丝连接,当编程此处为‘0’时,通过大电流将熔丝烧断。11/892.2简单可编程逻辑器件原理2.2.2PROM用PROM完成半加器逻辑阵列与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F半加器的逻辑函数:和:F0=A1A0+A1A0进位:F1=A1A012/892.2简单可编程逻辑器件原理2.2.3PLAPLA逻辑阵列示意图与阵列(可编程)或阵列(可编程)0A1A1A1A0A0A1F0F与阵列不是全译码,n个输入时,乘积项小于2n,减小了芯片规模。与阵列和或阵列都可编程,提高了利用率,增加了灵活性;主要特点:20世纪70年代中期出现。13/892.2简单可编程逻辑器件原理2.2.3PLAPLA与PROM的比较0A1A1F0F2A2F0A1A1F0F2A2F6个乘积项23个乘积项14/89PLA不需要包含输入变量每个可能的最小项,仅仅需包含的是在逻辑功能中实际要求的那些最小项。从而缓解规模的增加。虽然PLA利用率较高,但其软件算法比较复杂,多输入变量和多输出的逻辑函数,处理上更困难。2.2简单可编程逻辑器件原理15/892.2简单可编程逻辑器件原理2.2.4PALPAL的常用表示PAL结构0A1A1F0F0A1A1F0F与阵列可编程,或阵列固定的PAL避免了PLA的问题,运行速度有所提高。从PAL的结构可知,各个逻辑函数输出化简,不必考虑公共的乘积项。送到或门的乘积项数目是固定的,从而简化设计算法,使单个输出的乘积项为有限。20世纪70年代后期,美国MMI公司推出。16/89PAL16V8的部分结构图11100100R11100100RQQD11100100R11100100RVccSG1SL07SL17SG0SL0619I/O711100100R11100100RQQD11100100R11100100RVccSG1SL06SL16SG1SL0618I/O61CLK/I02I13I207815034781211151619202324272831可编程结构能解决组合逻辑的可编程问题。时序电路是由组合电路及存储单元(锁存器、触发器、RAM)构成。PAL加上输出寄存器,可实现时序电路的可编程17/892.2.5GAL首次在PLD上采用EEPROM工艺。沿用与阵列可编程、或阵列固定的结构。对I/O结构进行了较大的改进,输出部分增加了输出逻辑宏单元(OLMC)。OLMC单元设有多种组态,可配置称成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。1985年,Lattice在PAL的基础上设计出GAL器件(通用阵列逻辑器件)。主要特点:2.2简单可编程逻辑器件原理18/89207190347812111516192023242728311381518OLMCOLMC41623175243116OLMCOLMC63239157404714OLMCOLMC84855139566312OLMCOLMC11I/CLKIIIIIIIII/OEI/O/QI/O/QI/O/QI/O/QI/O/QI/O/QI/O/QI/O/QCLKOEGAL结构2.2.5GAL时钟信号输入逻辑宏单元输入输出口固定或阵列可编程与阵列三态控制输入OLMC输出逻辑宏单元GAL有4个多路选择器,通过不同的选择方式可以产生多种输出结构,分别属于三种模式。一旦确定了某种模式,所有的OLMC都将工作在同一种模式下。19/89(1)寄存器模式:1.寄存器输出结构(异或门输出经D触发器至三态门,触发器的时钟端CLK连公共CLK引脚,三态门的使能端OE连公共OE引脚)2.寄存器模式组合输出双向口结构(输出三态门受控,输出反馈至本单元,组合输出无触发器)寄存器输出结构寄存器模式组合输出双向口结构20/89(2)复合模式组合输出双向口结构组合输出结构组合输出双向结构复合型组合输出结构21/89(3)简单模式反馈输入结构输出反馈结构输出结构反馈输入结构输出反馈结构简单模式输出结构22/89简单PLD器件在实用中已经被淘汰,主要因为:阵列规模较小,资源不够用于数字系统。片内寄存器资源不足,且寄存器的结构限制较多,难以构成丰富的时序电路。I/O不够灵活,限制了片内资源的利用率。编程不便,需用专用的编程工具。取而代之的是CPLD/FPGA,(例:Altera的EPM7128S、Xilinx的XC95108)。23/892.3CPLD的结构与工作原理2.3.1基于乘积项的CPLD结构EPM7128S的结构:宏单元(Macrocell),它是CPLD的基本结构,可实现基本的逻辑功能,多个宏单元可以组成逻辑阵列块(LAB);可编程连线(PIA),连接所有的宏单元,负责信号的传递;I/O控制块(I/OControlBlock),控制输入、输出的电气特性,比如OC输出、三态输出等;系统控制信号,如全局时钟、清零控制、输出使能等。24/892.3CPLD的结构与工作原理25/891、逻辑阵列块(LAB)1个LAB由16个宏单元的阵列组成。多个LAB组成阵列多个LAB通过可编程连线阵PIA和全局总线链接在一起。26/89单个宏单元的结构包括:可编程的与阵列和固定的或阵列(乘积项选择矩阵),可编程寄存器。含共享扩展乘积项和高速并行扩展乘积项。2、宏单元(Macrocell)27/89MAX3000A系列中的宏单元可编程逻辑阵列乘积项选择矩阵可编程寄存器三种时钟输入模式全局时钟信号全局时钟信号由高电平有效的时钟信号使能用乘积项实现一个阵列时钟可编程逻辑阵列实现组合逻辑,可实现逻辑函数及宏单元寄存器的辅助输入,也可以被单独地配置为时序逻辑和组合逻辑工作方式。A可编程逻辑阵列、乘积项选择矩阵与可编程寄存器28/89共享扩展乘积项结构B扩展乘积项局部连线共享扩展项提供的“与非”乘积项宏单元的乘积项逻辑宏单元的乘积项逻辑复杂的逻辑函数需要附加乘积项,可利用其他宏单元以提供逻辑资源,称为扩展(乘积)项。共享扩展项由每个宏单元提供一个单独的乘积项,通过一个非门取反后反馈到逻辑阵列中,可被LAB内任何一个或全部宏单元使用和共享。29/89并联扩展项馈送方式并联扩展项宏单元中一些没有被使用的乘积项,被分配到邻近的宏单元。允许最多20个乘积项直接送到宏单元的或逻辑。30/893、可编程连线阵列(PIA)PIA信号布线到LAB的方式不同的LAB通过在可编程连线阵列PIA上布线,以相互连接构成所需逻辑。31/894、I/O控制块器件的I/O控制块I/O控制块允许每个IO引脚单独被配置为输入、输出和双向工作模式。所有IO引脚都有一个三态缓冲器,控制信号来自多路选择器,可以选择用信号、GND和VCC控制。32/895、系统控制信号INPUT/GLCK1:全局时钟;INPUT/GCLRn:系统清零;INPUT/OE1、INPUT/OE2:输出使能;33/892.3CPLD的结构与工作原理2.3.1基于乘积项的CPLD结构XC95108的结构:功能模块(FB),每个功能模块由18个独立的宏单元组成,提供36个输入和18个输出,每个宏单元可实现一个组合电路或寄存器的功能;快速连接开关矩阵,通过编程选择I/O模块和功能模块的连接方式,每个功能模块最多可以接收36个来自开关矩阵的信号;I/O模块,内部逻辑电路到用户I/O引脚之间的接口,每个I/O口包括一个输入缓冲器、输出驱动器、输出使能数据选择器和用户可编程接地控制;JTAG控制器在系统可编程控制器。34/89XC95108的结构:35/89功能模块:36/89宏单元:可以被单独配置成组合逻辑或时序逻辑功能。37/892.3CPLD的结构与工作原理2.3.2乘积项结构的可编程实现原理见课本38/892.4FPGA的结构与工作原理2.4.1查找表逻辑结构FPGA查找表单元查找表LUT输入1输入2输入3输入4输出主要特点:大部分FPGA采用基于SRAM的查找表结构,用SRAM来构成逻辑函数发生器。一个N输入的LUT可以实现N个输入变量的任何逻辑。一个N输入的LUT,需要SRAM存储N个输入构成的真值表,需要2的N次幂个位的SRAM单元。由Xilinx公司发明,基于查表结构(LUT)39/89000001010000010116×1RAM输入A输入B输入C输入D查找表输出多路选择器FPGA查找表单元内部结构4输入16×1SRAM存储真值表事先写入结果查表地址输出40/89...IOCIOCIOCIOC......IOCIOC...IOCIOC...IOCIOC...IOCIOC逻辑单元LE...IOCIOC...IOCIOCIOCIOC...快速通道互连逻辑阵列块(LAB)IOCIOC...41/8942/89逻辑单元的内部结构43/89CPLD与FPGA的区别CPLDFPGA内部结构Product-termLook-upTable程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源-EAB,锁相环保密性可加密一般不能保密44/89FPGA与CPLD的区别FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CP
本文标题:第2章FPGA-CPLD结构原理XXXX第1讲
链接地址:https://www.777doc.com/doc-51143 .html