您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 第二章PLD硬件特性
可编程逻辑器件(ProgrammableLogicDevice)PLD是70年代发展起来的一种数字逻辑集成器件,是大规模集成电路技术发展的产物,是一种半定制的集成电路。结合EDA技术可以快速方便地构建数字电路系统。CPLD和FPGA是两大类大规模可编程逻辑器件。是EDA技术的对象。数字电路系统都是由基本逻辑门来构成,由基本门电路可以构成两类数字电路。组合逻辑电路,输出是当前输入状态的函数。时序逻辑电路,输出是前一状态和当前输入的函数含有存储元件。基本逻辑门电路有多种,比如与门,非门,或门,传输门,与非门,或非门等等。事实上不是所有的基本门电路都是需要的,任何组合逻辑函数都可以化简成“与-或”表达式,即任何组合电路都可以用“与门-或门”二级电路实现。同样任何时序逻辑电路都可以由组合电路加上存储元件即“锁存器、触发器”构成。PLD器件就是基于这一点提出的可编程电路结构,即乘积项逻辑可编程结构,如上图。PLD概述“与-或”结构组成的PLD器件的功能比较简单。ROM存储电路是一种给出地址信号得到输出数据,存储单元存储的信息不同,地址单元输出的数据就不同,这也是一种输入输出逻辑关系,是通过给地址“查表”来实现的。多个查表构成查表阵列,即可编程门阵列(ProgrammableGateArray)乘积项可编程结构和查表可编程结构分别是CPLD和FPGA的基本工作原理。PROM(ProgrammableReadOnlyMemory)PAL(ProgrammableLogicArray)PAL(PAL(ProgrammableArrayLogic)可重复编程的GAL(GenericArayLogic)EPLD:大规模PLD可编程逻辑器件种类多,各PLD供应商都提供有自身特点的PLD器件1、按照集成度来区分不同PLD器件低级程度:可用逻辑门数在500门以下PROM,PAL,PLA,GAL高集成度:CPLD,FPGA都属于复杂PLD2、从结构上分类乘积项结构器件:大部分简单PLD和CPLD查找表结构器件:有简单查找表构成可编程门,再构成阵列FPGA3、编程即根据设计熔丝图文件烧断对应熔丝OTP器件通过击穿漏层使两点之间导通较高的编程电压,紫外光擦除电擦除SRAM查表结构,大多数FPGA采用,编程信息由SRAM保存断电丢失需上电重新配置。可多次编程断电不丢失编程信息习惯上把掉电后重新上电后能保持编程逻辑的是CPLD否则为FPGA简单PLD,结构上由简单的“与-或”门阵列和输入输出单元组成。简单的PLD有:PROM,PLA,PAL,GAL等先熟悉下常用的逻辑电路符号EDA软件中原理图一般用“常用符号”描述PLD结构特殊,逻辑门符号用一种约定的符号来简化图表示PLD内部输入缓冲电路,互补结构图2-6是PLD中的与阵列简化图,表示可以选择ABCD中任一组或者全部输入与门,形象的表示与阵列,具体硬件实现时与门可能根本不存在。图2-7是或阵列简化图形表示。阵列关系中交叉线表示两线未连接,黑点表示固定连接,交叉点打叉表示该点可编程,它的连接可以编程改变。可编程只读存储器,除了做存储器外,还可以做PLD用一个ROM器件主要由地址译码部分,ROM单元阵列和输出缓冲部分构成。从可编程逻辑器件的角度来分析PROM这些式子都可以看做逻辑与运算,也就是可以把地址译码部分看做是一个与阵列对于存储单元阵列的输出,可以用下列逻辑关系来表示。显然可以认为上式是一个或阵列,与上面的与阵列不同的是这里的Mx,y是可以编程。从前面的分析我们可以把PROM的结构表示成一个不可编程的与阵列和一个可编程的或阵列。表示成PLD阵列的图的PROM直观清晰地表示PROM中固定的与阵列和可编程的或阵列,PROM的地址线是与阵列的n个输入变量,经过不可编程的与陈列产生2n个最小项(乘积项),再经过可编程或阵列产生m个输出函数,m位PROM输出数据位宽。已知半加器逻辑表达式:用4*2PROM编程实现这两个式子是右图所示结构的布尔表达式,是“乘积项”方式的,A0A1分别是加数和被加数,F0为和,F1为进位。反之根据逻辑关系就可以得到阵列点连接关系从而可以形成阵列点文件,这个文件对于一般的PLD器件称为熔丝图文件(FuseMap),对于PROM则是存储单元的编程数据文件。PROM只适合用于组合逻辑电路的可编程,输入变量增加会引起存储容量增加。PROM实现组合逻辑函数时,存储单元利用率低,它的与阵列全译码,产生全部的最小项,实际应用中组合逻辑函数并不需要所有最小项,PLA是对PROM进行的改进,它的与阵列和或阵列都是可编程的。任何组合函数都可以采用PLA实现,实现时需把逻辑函数化简成最简单的与或表达式,然后用可编程的与阵列构成与项,用可编程的或阵列构成与项的或运算。PLA上图是一个6*3PLA与8*3PROM的比较,二者在大部分实际应用中可以实现相同的逻辑功能。PLA相比较与PROM可以节省乘积相线,在PLA规模增大时优势明显。PLA的利用率高,但是需要逻辑的与或最简表达式,对于多输入函数涉及的算法比较复杂,两个阵列均可编程会是编程后器件运行速度减慢。因此使用受到限制,只在小规模逻辑上应用。可编程阵列逻辑PAL也包含与阵列和或阵列,但是或阵列固定与阵列可编程,它可以避免PLA的一些问题,运行速度有所提高。PAL各个逻辑函数输出化简,不必考虑公共乘积项,送或门的乘积项数目是固定的可大大化简设计算法,同时使单个输出的乘积项数有限。PROM,PLA,PAL这些可编程结够只能解决组合逻辑可编程,时序逻辑电路是由组合电路家存储单元(锁存器,触发器,RAM)组成,在PAL加上输出寄存器单元后就可以实现时序电路的可编程。1985年由Lattice在PAL基础上设计出GAL器件GAL的OLMC有多种组态,可配置成专用组合输入输出双向I/O寄存器输入输出可以简化电路板的布局布线,和大多数PAL器件兼容,它仍然被广泛应用。现在超大规模集成电路制造以CPLD、FPGA为主流行的CPLD中,Altera的MAX7000系列器件具有典型性,它包含32-256个宏单元,上图为每个宏单元的结构。每16个宏单元组成一个逻辑阵列块(LAB)。MAX7000系列每个宏单元包含一个可编程的“与阵列”和固定的“或”阵列,以及一个可配置寄存器,每个宏单元共享扩展乘积项和高速并联扩展乘积项它们向每个宏单元提供32个乘积项,以构成复杂逻辑函数。MAX7000结构中包含有5个主要部分:逻辑阵列块,宏单元,扩展乘积项(共享和并联),可编程连线阵列和I/O控制块。LAB由16个宏单元的阵列组成,MAX7000结构主要由多个LAB组成的阵列以及它们之间的连线构成,多个LAB通过可编程连线阵列(PIA)和全局总线连接在一起。对每个LAB,输入信号来自3部分:作为通用逻辑输入的PIA的36个信号;来自全局控制信号,用于寄存器辅助功能;从I/O引脚到寄存器的直接输入通道。它们可单独配置为时序逻辑和组合逻辑工作方式逻辑阵列:实现组合逻辑给每个宏单元提供5个乘积项。乘积项选择矩阵:分配乘积项作为到或门和异或门的主要逻辑输入,实现组合逻辑函数。或者把这些成积项作为宏单元中寄存器的辅助输入:清零,置位,时钟,时钟使能控制。宏单元可编程寄存器:可单独被配置为带有可编程时钟控制的D,T,JK,SR触发器工作方式实现时序逻辑功能。也可以将寄存器旁路掉,以实现组合逻辑电路工作方式。每个寄存器支持异步清零和异步置位功能由乘积项选择矩阵分配。每个寄存器复位可由低电平有效的全局专用引脚信号来驱动。每个可编程寄存器可按照3种时钟输入模式:可编程寄存器的3种时钟输入模式全局时钟信号:能实现最快的时钟到输出性能,全局时钟输入直接连向每一个寄存器的CLK端。全局时钟由高电平有效的时钟信号使能:提供每个触发器的时钟使能信号。用乘积项实现一个阵列的时钟:触发器来自隐埋的宏单元或I/O引脚的信号进行控制,其速度较慢。复杂的逻辑函数需要附加乘积项,利用宏单元提供所需的逻辑资源,MAX7000还可以利用共享和并联扩展乘积项,作为附加的乘积项直接送到本LAB中任一宏单元中。共享扩展项:每个LAB有16个,由每个宏单元提供一个单独的乘积项通过一个非门反馈到逻辑阵列中,可被LAB内任一宏单元使用和共享。并联扩展项:是宏单元中一些没有被使用的乘积项,可分配到邻近的宏单元(借用)去实现快速复杂的逻辑函数。不同的LAB通过在可编程连线阵列PIA上布线,以相互连接构成所需的逻辑,这个全局总线是一种可编程通道。MAX7000内部的专用输入,I/O引脚和宏单元输出都连接到PIA,由PIA把这些信号送到器件内的各个地方。I/O控制块允许每个I/O引脚单独被配置为输入输出和双向工作方式。所有I/O引脚都有一个三态缓冲器,它的控制信号来自一个多路选择器,可选择用全局输出使能信号其中之一进行控制或者接地或电源。器件引脚I/O控制块引脚的三态缓冲控制端接地时,输出高阻,这时可以做专用输入引脚。三态缓冲控制端接电源时,输出一直使能,为普通输出引脚。MAX7000结构提供双I/O反馈。当I/O引脚被配置成输入引脚时,与其相联的宏单元可以作为隐埋逻辑使用。MAX7000的I/O控制块还提供减缓输出缓冲器的电压摆率选择项,以降低工作速度要求不高的信号在开关瞬间产生的噪声。MAX7000为了降低功耗,提供可编程的速度或功率优化,应用设计中可以关键部分全功率状态而其余部分可工作在低功率状态。I/O工作电压,E,S系列5伏电压,A和AE系列为3.3伏混合工作电压,B系列2.5伏工作电压。除CPLD外另一类大规模可编程逻辑器件FPGA使用的是另一种可编程逻辑形成方法,即可编程查表(LookUpTable,LUT)结构LUT是可编程的最小逻辑构成单元。大部分FPGA采用基于用SRAM构成逻辑函数发生器,一个N个输入的LUT可以实现N个输入变量的任何逻辑功能。一个N输入的查找表,需要SRAM存储N个输入构成的真值表,需要2N个位的SRAM单元,所有N不可能很大,否则LUT的利用率很低。多于N个输入的逻辑函数分几个查找表分开实现。Xlinx公司的XC4000系列,Spartan系列,Altera公司的FLEX10K、ACEX、APEX、Cyclone系列都是采用SRAM查找表构成,是典型的FPGA器件。Cyclone系列是一款低成本高性价比的典型的FPGA器件。Cyclone器件主要由:逻辑阵列块(LAB)、嵌入式存储块、I/O单元和PLL等模块构成,各模块之间存在丰富的互联线和时钟网络。Cyclone器件的可编程资源主要来自逻辑阵列块LAB,每个LAB都是由多个LE(LogicElement)逻辑单元来构成。它是基本的可编程单元。上图LE主要由一个4输入的查找表LUT、进位链逻辑和一个可编程的寄存器构成。4输入LUT可完成任意4输入1输出的组合逻辑功能,进位链逻辑带进位选择,可灵活构成加法或减法逻辑。每个LE输出都可以连接到局部布线,行列,LUT链寄存器链等布线资源。LE中每个可编程寄存器可配置成D,T,JK,SR寄存器模式。都具有数据,异步数据装载,时钟,时钟使能,清零和异步置位/复位输入信号。在只需组合逻辑的场合可以将寄存器旁路。LE有3个输出驱动内部互连,一个LE中的触发器和LUT能够用来完成不相关的功能。Cyclone的LE可以工作在两种操作模式:普通模式;动态算术模式普通模式下LE适合通用逻辑应用和组合逻辑的实现,来组LAB局部互连的4个输入将作为4输入1输出的LUT的输入端口,LE的输入信号可以作为LE中寄存器的异步转载信号。动态算术模式下可以更好的实现加法器,计数器,累加器,比较器。单个LE内有4个2输入LUT,可以被配置成动态的加法/减法器。LAB结构LABLAB(逻辑阵列块)由一系列相邻的LE构成,每个LAB包含10LE,LE进位与级联链,控制信号,LAB局部互连,LUT链和寄存器链。LE排列成LAB阵列,构成了FPGA丰富的编程资源。局部互连用来在同一个LAB中的LE之间传
本文标题:第二章PLD硬件特性
链接地址:https://www.777doc.com/doc-51287 .html