您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第六章FPGA导论.
第六章FPGA简介什么是FPGAFPGA:FieldProgrammableGateArray(现场可编程门阵列)IOBPICCLB包含多个逻辑单元FPGA是可用来进行大规模数字系统设计的一种编程器件。6.1可编程逻辑器件简介逻辑器件:用来实现某种特定逻辑功能的电子器件,最简单的逻辑器件是与、或、非门(74LS00,74LS04等),在此基础上可实现复杂的时序和组合逻辑功能。可编程逻辑器件(PLD--ProgrammableLogicDevice):器件的功能不是固定不变的,而是可根据用户的需要而进行改变,即由编程的方法来确定器件的逻辑功能。PLD:实际上是一种电路的半成品芯片,这种芯片按一定排列方式继集成了大量的门和触发器等基本逻辑元件,出厂时不具有特定的逻辑功能,需要用户对其编程,使芯片内部的可编程连接点进行电路连接,使之完成某个逻辑电路或系统的功能。产生背景通用IC:中小规模IC专用IC:ASIC集成度低功能固定设计周期长投资大PLD灵活性好集成度高=1&≥11&≥1与或非与非或非异或门电路符号中美对照表6.2PLD逻辑表示方法及图形符号PLD的逻辑表示方法固定连接编程连接不连接熔丝或其他开关器件PLD的图形符号缓冲门AAA&1AAAABCY与门AY&BCABCY或门AY1BCABCYAY&B可编程连接或不连接实现的函数为:BABAF1BABAF2BAF3举例练习6.3PLD的分类与结构(1)与固定、或编程:ROM和PROM(2)与或全编程:PLA(3)与编程、或固定:PAL、GAL1)与固定、或编程:PLD基本结构大致相同,根据与或阵列是否可编程分为三类:ROM/PROM全译码2)与或全编程:PLAO2O1O0I2I1I0输出输入AND阵列可编程OR阵列可编程举例:用PLA实现三八译码器三八译码器真值表0120AAAY0121AAAY0127AAAY……A2A1A0A2A1A0A2A1A0Y0Y1Y7A2A1A0000只=0Y0001只=0Y1111只=0输出Y73)与编程、或固定:PAL、GAL逻辑宏单元OLMCGAL与PAL的不同:PAL寄存器输出结构可编程结构专用输出结构异或输出结构运算反馈结构GAL:OLMC结构•每个OLMC包含或阵列中的一个或门•组成:–异或门:控制输出信号的极性–D触发器:适合设计时序电路–4个多路选择器输出使能选择反馈信号选择或门控制选择输出选择OLMC结构图专用输入模式专用组合输出模式反馈组合输出模式时序电路中的组合输出模式寄存器输出模式根据OLMC的结构,可以设置它的5种工作模式。只要给GAL器件写入不同的结构控制字,就可以得到不同的输出结构,这些电路结构完全可以取代PAL器件的各种输出电路结构。(1)PROM(2)PLA(3)PAL(4)GAL简单较复杂特点:可以实现速度较好的逻辑功能限制:因结构简单,只能实现规模较小的电路PLD:可编程逻辑器件(ProgramableLogicDevice)6.4PLD的发展20世纪70年代中期,PLA(可编程逻辑阵列),由可编程的与阵列和或阵列组成,价格昂贵,编程复杂,支持PLA的开发软件有一定难度,器件资源利用率低,因而没有得到广泛应用。20世纪70年代末期,PAL(可编程阵列逻辑),由可编程的与阵列和固定的或阵列组成,采用熔丝编程方式,由于输出的种类多,设计灵活,器件的工作速度好,得到普遍应用。20世纪80年代初期,GAL(通用阵列逻辑),由Lattice公司发明,与PAL相比,GAL增加了输出逻辑宏单元,并且具有可擦电写,可重复编程、可设置加密位的优点。GAL器件对PAL器件仿真具有100%的兼容性,所以几乎完全替代了PAL,得到广泛应用。20世纪80年代中期,EPLD(可擦除PLD),由Altera公司推出,基本单元是宏单元(由可编程的与阵列、可编程寄存器、可编程I/O组成),集成密度大大提高,内部连线相对固定,延时小,有利于器件在高频下工作,但内部互连能力十分弱。1985年,FPGA(现场可编程门阵列),由Xilinx公司推出,内部由许多独立的可编程模块组成,模块之间可以灵活的相互连接。20世纪80年代末期,CPLD(复杂PLD),由Lattice公司在EPLD的基础上改进,增加了内部连线,宏单元和I/O也有所改进。有的还集成了RAM、FIFO等,以适应DSP的要求。20世纪末期,SOPC(片上可编程系统),将EDA技术、计算机系统、嵌入式系统、数字逻辑系统、DSP等融为一体,涵盖了嵌入式系统设计技术的全部内容。6.5FPGA/CPLD简介CPLD和FPGA分别是Altera公司和Xilinx公司在20世纪80年代中期推出的高密度PLD(1)PROM(2)PLA(3)PAL(4)GALFPGACPLD结构简单功能受到限制生产FPGA/CPLD的三大厂商主要产品有:MAX3000/7000,FLEX10K,APEX20K,ACEX1K,Stratix,Cyclone等。开发软件为QuartusII。主要产品有:XC9500,Coolrunner,Spartan,Virtex等开发软件为ISE。主要产品有ispMACH4000,EC/ECP,XO,XP以及可编程模拟器件等FLEX6000/8000/10KAPEX20K、ACEX1K、APEXⅡMercury、Excalibur和StratixFPGASpartan-Ⅱ、Spartan-ⅡEVirtex-Ⅱ、Virtex-ⅡProXilinxAltera代表产品:CPLDXilinxXC9500系列CoolRunner系列AlteraMax7000系列Max5000系列FPGA和CPLD结构各有特点和长处,但概括起来,都由三大部分组成。逻辑阵列块:用于实现用户定义的基本逻辑功能输入输出单元:实现内部逻辑与器件封装引脚之间的接口可编程内部连线:完成模块间的信号传递6.5.1FPGA的结构◆内部结构称为LCA(LogicCellArray)由三个部分组成:•可配置逻辑块CLB(ConfigurableLogicBlock)•可编程输入输出模块(IOB)•可编程内部连线PIC(ProgrammableInterConnet)IOBPICCLB包含多个逻辑单元Spartan-Ⅱ和Spartan-ⅡE系列产品内部结构◆CLBs◆I/O块◆RAM块◆可编程连线(未标出)Spartan-II主要包括可配置逻辑模块CLB在Spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。Slices可以看成是Spartan-II实现逻辑的最基本结构。●简称为LUT,本质上是一个RAM。查找表(Look-Up-Table)●目前多使用4输入的LUT,所以每个LUT可以看成一个有4位地址线的16x1的RAM。●当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。LUT举例:4-输入与门实际逻辑电路LUT的实现方式a,b,c,d输入逻辑输出地址RAM中存储的内容00000000000001000010....0...01111111111Spartan-Ⅱ和Spartan-ⅡE切片(Slice)结构进位逻辑控制时钟允许信号每个CLB包含4个LUT,其中每个LUT的输出都可以通过CLB内部的可编程布线资源连接到其他3个LUT的输入端,以减少在连线上的延迟。RegisterLogicRegisterLogicRegisterRegisterLogic可编程输入输出模块(IOB)可编程延迟(ProgrammableDelay)可编程输出缓冲器(ProgrammableOutputBuffer)可编程输入缓冲器(ProgrammableInputBuffer)偏置和ESD网络(Bias&ESDNetwork)内部基准(InternalReference)到下一个I/O的连接(ToNextI/O)到另一个BankVREF输入端的连接(ToOtherExternalVREFInputsofBank)I/O等输入输出直接连接到封装引脚端(PackagePin)IOB模块提供FPGA内部逻辑与外部封装管脚之间的接口。IOB内部包含有:Spartan-Ⅱ和Spartan-ⅡE的IOB内部结构内部基准偏置和ESD网络在IOB模块中,三个内部寄存器共享一个时钟信号(CLK)和置位/复位信号(SR),具有独立的使能信号OCE、TCE和ICE,可以实现D触发器和锁存器功能。输入输出单元主要分为三个通道:输出通道、输入通道和三态控制通道。通过编程可以使输入/输出管脚分别定义成输入信号、输出信号、寄存器输入信号、寄存器输出信号、三态信号。可编程内部连线(PIC)PIC是连接CLB、IOB的通道。布线资源主要由金属连线和可编程开关矩阵PSM(ProgrammableSwitchMatrix)组成。连线有3种类型:连线:每个CLB在垂直和水平方向上有8根连线,用于连接局部区域之间的信号双倍长连线:长度是连线的2倍,跨越2个CLB,主要连接中长距离的信号长连线:长线不通过转接矩阵而直接贯通整个芯片,适宜于距离长、延时要求小的高扇出网络(如时钟网络等)。通过可编程开关,可分为两根长连线BACADABBCBDBBCCCDC开关矩阵通用互连的金属网格线可编程开关矩阵PSM的开关由晶体管完成,每个水平连线和垂直连线的交汇点处,有6个晶体管,实现信号的连接51617181920151413121167891043211612345109876111213171814152019PSM内部互连BlockRAM在Spartan-Ⅱ和Spartan-ⅡE系列产品中,BlockRAM是一个完全同步的双端口RAM,端口的数据宽度可独立配置。通过级联多个BlockRAM可以实现FPGA内部的大容量数据存储。BlockRAM示意图◆BlockRAM单位容量为4Kbit◆不同型号的产品,BlockRAM数量不同双口RAM是在一个存储器上具有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统同时对该存储器进行随机性的访问,即共享式多端口存储器。BlockRAM端口纵横比延迟锁相环DLL(DelayLockedLoop)在Spartan-Ⅱ和Spartan-ⅡE系列产品中,Xilinx公司一直采用数字延迟锁相环技术进行FPGA内部的时钟控制。◆消除时钟相位偏移◆变换时钟频率(倍频或分频)◆调整时钟输出相位DLL结构示意图DLL不支持任意系数分频,其分频系数可以是1.5、2、2.5、3、4、5、8或者16。每个全局时钟缓冲器都与数字延迟锁相环(DLL)相连,每个DLL可以驱动两个全局时钟网络。通过监控输入时钟信号和分布时钟信号,DLL可以自动调整并消除输入时钟信号与FPGA内部分布时钟信号之间的相位偏移,从而保证到达内部触发器的时钟边沿与时钟输入管脚的信号同步。◆调整时钟输出相位◆变换时钟频率为保证FPGA在启动前获得正确的时钟,下载配置过程可以在DLL锁定时钟信号后结束。6.5.2CPLD器件结构一.基于乘积项(Product-Term)的PLD结构采用这种结构的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工艺)Xilinx的XC9500系列(Flash工艺)Lattice,Cypress的大部分产品(EEPROM工艺)CPLD内部结构(Altera的MAX7000S系列)逻辑阵列模块中包含多个宏单元这种PLD可分为三块结构:宏单元(Marocell)宏单元是PLD的基本结构,由它来实现基本的逻辑功能可编程连线(PIA)可编程连线负责信号传递,连接所有的宏单元。I/O控制块I/
本文标题:第六章FPGA导论.
链接地址:https://www.777doc.com/doc-6711819 .html