您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 第2章可编程逻辑器件设计方法
可编程逻辑器件设计方法湖南大学电气与信息工程学院叶佳卓2014.4可编程逻辑器件设计方法-本章概述可编程逻辑器件(ProgrammableLogicDevice,PLD)产生于上世纪70年代,是在专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)基础上发展起来的一种新型逻辑器件,是当今数字系统设计的主要硬件平台,其主要特点就是由用户通过硬件描述语言和相关电子设计自动化软件对其进行配置和编程。可编程逻辑器件设计方法-PLD芯片制造工艺1、熔丝连接技术最早的允许对器件进行编程的技术是熔丝连接技术。在这种技术的器件中,所有逻辑的连接都是靠熔丝连接的。熔丝器件是一次可编程的,一旦编程,永久不能改变。ab逻辑1&ab逻辑1&图2.1熔丝未编程的结构图2.2熔丝编程的结构可编程逻辑器件设计方法-PLD芯片制造工艺2、反熔丝连接技术反熔丝技术和熔丝技术相反,在未编程时,熔丝没有连接。如果编程后,熔丝将和逻辑单元连接。反熔丝开始是连接两个金属连接的微型非晶硅柱。未编程时,成高阻状态。编程结束后,形成连接。反熔丝器件是一次可编程的,一旦编程,永久不能改变。ab逻辑1&ab逻辑1&图2.3熔丝未编程的结构图2.4熔丝编程的结构可编程逻辑器件设计方法-PLD芯片制造工艺3、SRAM技术基于静态存储器SRAM的可编程器件,值被保存在SRAM中时,只要系统正常供电信息就不会丢失,否则信息将丢失。SRAM存储数据需要消耗大量的硅面积,且断电后数据丢失。但是这种器件可以反复的编程和修改。可编程逻辑器件设计方法-PLD芯片制造工艺4、掩膜技术ROM是非易失性的,系统断电后,信息被保留在存储单元中。掩膜器件可以读出,但是不能写入信息。ROM单元保存了行和列数据,形成一个阵列,每一列有负载电阻使其保持逻辑1,每个行列的交叉有一个关联晶体管和一个掩膜连接。这种技术代价比较高,基本上很少使用。可编程逻辑器件设计方法-PLD芯片制造工艺5、PROM技术PROM是非易失性的,系统断电后,信息被保留在存储单元中。PROM器件可以编程一次,以后只能读数据而不能写入新的数据。PROM单元保存了行和列数据,形成一个阵列,每一列有负载电阻使其保持逻辑1,每个行列的交叉有一个关联晶体管和一个掩膜连接。如果可以多次编程就成为EPROM,EEPROM技术。可编程逻辑器件设计方法-PLD芯片制造工艺6、FLASH技术FLASH技术的芯片的檫除的速度比PROM技术要快的多。FLASH技术可采用多种结构,与EPROM单元类似的具有一个浮置栅晶体管单元和EEPROM器件的薄氧化层特性。可编程逻辑器件结构-CPLD芯片内部结构CPLD由完全可编程的与/或阵列以及宏单元库构成。与/或阵列是可重新编程的,可以实现多种逻辑功能。宏单元则是可实现组合或时序逻辑的功能模块,同时还提供了真值或补码输出和以不同的路径反馈等额外的灵活性。下面给出了CPLD的内部结构图。可编程逻辑器件结构-CPLD芯片内部结构可编程逻辑器件结构-CPLD芯片内部结构(功能块)FB内部的逻辑使用积之和SOP描述。36个输入提供了72个真和互补信号到可编程的“与”阵列来生成90个乘积项。最多可用的90个乘积项可以通过乘积项分配器分配到一个每个宏单元。可编程逻辑器件结构-CPLD芯片内部结构(宏单元)图2.7宏单元的内部结构触发器资源组合逻辑资源可编程逻辑器件结构-CPLD芯片内部结构(宏单元)从数字电路的知识知道,任何一个数字系统是由组合逻辑电路和时序电路构成的.所以宏单元应该是CPLD芯片最重要的功能单元.因为数字系统的逻辑功能是在宏单元内实现的.可编程逻辑器件结构-CPLD芯片内部结构(快速连接矩阵)快速连接开关矩阵的内部结构快速连接矩阵可编程逻辑器件结构-CPLD芯片内部结构IO块内部逻辑可编程逻辑器件设计方法-FPGA芯片的内部结构现场可编程门阵列(FieldProgrammableGateArray,FPGA)是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展起来的,它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。可编程逻辑器件设计方法--FPGA芯片的内部结构(查找表)由布尔代数理论可知,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果,所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。可编程逻辑器件设计方法--FPGA芯片的内部结构(4输入查找表)实际逻辑电路LUT实现方式a,b,c,d输入逻辑输出RAM地址RAM中存储内容00000000000001000010…..….1111111111可编程逻辑器件设计方法--FPGA芯片的内部结构(4输入查找表)查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。可编程逻辑器件设计方法--FPGA芯片的内部结构(4输入查找表)LUT具有和逻辑电路相同的功能。实际上,LUT具有更快的执行速度和更大的规模。LUT具有下面的特点:1)LUT实现组合逻辑的功能由输入决定,而不是由复杂度决定;2)LUT实现组合逻辑有固定的传输延迟;多年以来,四输入LUT一直是业界标准。但是,在65nm工艺条件下,相较于其它电路(特别是互连电路),LUT的常规结构大大缩小。一个具有四倍比特位的六输入LUT(6-LUT)仅仅将CLB面积提高了15%-但是平均而言,每个LUT上可集成的逻辑数量却增加了40%。更高的逻辑密度通常可以降低级联LUT的数目,并且改进关键路径延迟性能。可编程逻辑器件设计方法--FPGA芯片的内部结构(6输入查找表)可编程逻辑器件设计方法--FPGA芯片的内部结构(6输入查找表)新一代的FPGA提供了真正的6-LUT,可以将它用作逻辑或者分布式存储器,这时LUT是一个64位的分布式RAM(甚至双端口或者四端口)或者一个32位可编程移位寄存器。每个LUT具有两个输出,从而实现了五个变量的两个逻辑函数,存储32x2RAM比特,或者作为16x2-bit的移位寄存器进行工作。可编程逻辑器件设计方法--FPGA芯片的内部结构(6输入查找表)4/6输入LUT实现8:1多路复用器的原理可编程逻辑器件设计方法--FPGA芯片的内部结构(6输入查找表)XilinxSpartan-6FPGA芯片的内部版图结构,随着FPGA集成度的不断增加,其功能不断的增强,新一代的FPGA芯片内部结构包含:GTP收发器CLB单元PCI-E块IO组存储器控制块块存储器DSP模块时钟管理模块等资源。可编程逻辑器件设计方法--FPGA芯片的内部结构(CLB)可配置的逻辑块(ConfigurableLogicBlock,CLB)是主要的逻辑资源,用于实现顺序和组合逻辑电路。每个CLB连接到一个开关矩阵用于访问通用的布线资源。一个CLB包含一对切片Slice。这两个切片没有直接的相互连接,每个切片通过列组织在一起。对于每个CLB,CLB底下的切片标号为SLICE(0),CLB上面的切片标号为SLICE(1)。可编程逻辑器件设计方法--FPGA芯片的内部结构(CLB)X后面的数字标识切片对内每个切片的位置,以及切片列的位置。X编号计算切片位置从底部以顺序0,1开始计算(第1列CLB);2,3(第2列CLB)。Y编号后的数字标识切片的行位置。图中的4个CLB位于硅片的左下角的位置。可编程逻辑器件设计方法--FPGA芯片的内部结构(SLICE)LUT进位链触发器复用器触发器可编程逻辑器件设计方法--FPGA芯片的内部结构(时钟资源)Spartan-6的FPGA时钟资源包含下面四种类型的连接:全局时钟输入引脚(GCLK);全局时钟复用开关(BUFG,BUFGMUX)I/O时钟缓冲区(BUFIO2,BUFIO2_2CLK,BUFPLL)水平的时钟布线缓冲区(BUFH)Spartan-6的FPGA包含两种类型的时钟网络:提供了16个高速,低抖动的全局时钟资源来优化性能。这些资源通过EDA软件工具自动的使用。提供了40个超高速、低抖动的I/O区域时钟资源。用于服务本地的I/O串行/解串行电路。可编程逻辑器件设计方法--FPGA芯片的内部结构(时钟资源)DCM的符号可编程逻辑器件设计方法--FPGA芯片的内部结构(BRAM)大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为:1)单端口RAM;2)双端口RAM;3)内容地址存储器(CAM);4)FIFO等常用存储结构。可编程逻辑器件设计方法--FPGA芯片的内部结构(BRAM)单片块RAM的容量为18k比特,即位宽为18比特、深度为1024,可以根据需要改变位宽和深度,但要满足:1)修改后的容量(位宽深度)不能大于18k比特;2)位宽最大不能超过36比特;当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。可编程逻辑器件设计方法--FPGA芯片的内部结构(布线资源)互联是FPGA内用于在功能元件,比如IOB,CLB,DSP和BRAM,的输入和输出信号通路的可编程网络。互联也称为布线,被分段用于最优的连接。Spartan-6FPGACLB在FPGA内以规则的阵列排列。如下图,每个到开关矩阵的连接用来访问通用的布线资源。可编程逻辑器件设计方法--FPGA芯片的内部结构(布线资源)图2.20FPGA内的布线资源可编程逻辑器件设计方法--FPGA芯片的内部结构(存储器控制器)Spartan-6FPGA内集成了硬的存储器控制器,FPGA内集成的硬存储器控制器减少了设计的时间,并且支持DDR,DDR2,DDR3&LPDDR。特点具体体现高性能最大800Mbps低成本节约软件逻辑,较小的晶圆低功耗专用的逻辑容易设计时间收敛不再是一个问题可配置的多端口用户接口核生成器/MIG向导&EDK支持可编程逻辑器件设计方法--FPGA芯片的内部结构(DSP核)DSP模块内部结构分析其结构..和DSP算法的关系可编程逻辑器件设计方法--FPGA芯片的内部结构(输入/输出块)可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。思考问题?可编程逻辑器件的可编程主要体现在哪些方面?1)CLB的功能分配2)连线的控制3)IO块的控制可编程逻辑器件设计方法-CPLD和FPGA的比较FPGA和CPLD都是可编程逻辑器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:1、CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。2、CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式
本文标题:第2章可编程逻辑器件设计方法
链接地址:https://www.777doc.com/doc-51190 .html