FPGA结构与应用.ppt
EDAEDA技术技术实用教程实用教程第第2章章FPGACPLD结构与应用结构与应用2.1.1 2.1.1 数字集成电路分类数字集成电路分类n通用型:通用型:逻辑功能比较简单,固定不变。逻辑功能比较简单,固定不变。n专用型(专用型(ASIC,Application Specific IC)为某种专门用途而设计的集成电路。为某种专门用途而设计的集成电路。n可编程逻辑器件(可编程逻辑器件(PLD,Programmable Logic Device)其逻辑功能可由用户通过对器件编程来设定。其逻辑功能可由用户通过对器件编程来设定。数字系统2.1 2.1 概概 述述图图2-1基本基本PLD器件的原理结构图器件的原理结构图乘积项乘积项逻辑可编程结构逻辑可编程结构2.1.2可编程逻辑器件的分类可编程逻辑器件的分类图图2-2PLD按集成度分类按集成度分类低密度低密度可编程逻辑可编程逻辑器件器件(LDPLD)高密度高密度可编程逻辑可编程逻辑器件器件(HDPLD)可编程逻辑器件可编程逻辑器件(PLD)PROMPLAPALGALEPLDCPLDFPGA按集成密度分:按集成密度分:按编程方式分:按编程方式分:一次性编程一次性编程OTP(OneTimeProgrammable)器件)器件可多次编程可多次编程MTP(ManyTimeProgrammable)器件)器件乘积项乘积项逻辑可编程结构(逻辑可编程结构(PLD):基本结构由与阵列和):基本结构由与阵列和或阵列组成。或阵列组成。SRAM查找表查找表逻辑可编程逻辑可编程结构(结构(FPGA):采用):采用RAM“数据数据”查找的方式,并用多个查找表构成一个阵列。查找的方式,并用多个查找表构成一个阵列。按结构特点分类:按结构特点分类:按按编程工艺分:编程工艺分:采采用用一一次次性性编编程程的的熔熔丝丝(Fuse)或或反反熔熔丝丝(Antifuse)元元件的可编程器件件的可编程器件,如,如PROM、PLA和和PAL等。等。采采用用紫紫外外线线擦擦除除、电电可可编编程程元元件件,即即采采用用EPROM、UVCMOS工艺工艺结构的可多次编程器件。结构的可多次编程器件。如如EPLD。采采用用电电擦擦除除、电电可可编编程程元元件件。其其中中一一种种是是E2PROM,另另一一种种是是采采用用快快闪闪存存储储器器单单元元(FlashMemory)结结构构的的可可多次编程器件多次编程器件。如。如GAL和和CPLD,Actel的的FPGA是是Flash。基基于于静静态态存存储储器器SRAM结结构构的的可可多多次次编编程程器器件件。目目前前多数多数FPGA是基于是基于SRAM结构结构的可编程器件。的可编程器件。2.1.3可编程逻辑器件的发展历程可编程逻辑器件的发展历程70年代年代80年代年代90年代年代PROM器器件件PAL器器件件GAL器器件件FPGA器器件件EPLD器器件件CPLD器器件件内嵌复杂内嵌复杂功能模块功能模块的的SoPCPLA器器件件2.2简单简单PLD结构原理结构原理2.2.1逻辑元件符号表示逻辑元件符号表示图图2-3两种不同版本的国际标准逻辑门符号对照两种不同版本的国际标准逻辑门符号对照IEEE1991版版IEEE1984版版图图2-4PLD的互补缓冲器的互补缓冲器图图2-5与图与图3-4等效等效图图2-6PLD中与阵列表示中与阵列表示图图2-7PLD中或阵列的表示中或阵列的表示图图2-8阵列线连接表示阵列线连接表示PLD中逻辑门符号的简化表示中逻辑门符号的简化表示2.2.2PROM(只能构建组合逻辑)(只能构建组合逻辑)图图2-9PROM基本结构基本结构W的逻辑函数:的逻辑函数:图图2-10PROM的逻辑阵列结构的逻辑阵列结构F的逻辑函数:的逻辑函数:图图2-11PROM表达的表达的PLD阵列图阵列图图图2-12用用PROM完成半加器逻辑阵列完成半加器逻辑阵列举例:用举例:用42PROM实现半加器实现半加器2.2.3PLA(Programmable Logic Array)图图2-13PLA逻辑阵列示意图逻辑阵列示意图可编程与阵列可编程或阵列可编程与阵列可编程或阵列图图2-14PLA与与PROM的比较的比较PLA利用率较高,但需要化简利用率较高,但需要化简PLA(63)PROM(83)2.2.4PAL(ProgrammableArrayLogic)图图2-15PAL结构结构图图2-16PAL的常用表示的常用表示可编程与阵列固定或阵列可编程与阵列固定或阵列图图2-17PAL16V8的部分结构图的部分结构图可编程与阵列固定或阵列可编程与阵列固定或阵列输出电路(有多种结构类型)输出电路(有多种结构类型)2.2.5GAL图图2-18GAL16V8的结构图的结构图可编程与阵列固定或阵列可编程与阵列固定或阵列OLMCGALGeneralArrayLogicDevice最多有8个或项,每个或项最多有32个与项EPLDErasableProgrammableLogicDevicePLD类型类型阵列阵列输出输出与与或或PROM固定固定可编程,一次性可编程,一次性三态三态、集电极开路集电极开路PLA可编程可编程一次性一次性可编程可编程一次性一次性三态三态、集电极开路集电极开路、寄存器寄存器PAL可编程可编程一次性一次性固定固定GAL可编程可编程多次性多次性固定固定输出逻辑宏单元输出逻辑宏单元(OLMC)组态由用户定义组态由用户定义上述四种上述四种LDPLD器件比较器件比较三态三态、I/O、寄存器寄存器、异或、异或输出、输出、互补带反馈互补带反馈2.3CPLD结构与工作原理结构与工作原理ComplexProgrammableLogicDevice基本电路结构:基本电路结构:将若干个类似于将若干个类似于GAL的功能模块和实现互连的开关矩阵集的功能模块和实现互连的开关矩阵集成于同一芯片上,就形成了成于同一芯片上,就形成了CPLD。它包含以下三个基本部分。它包含以下三个基本部分n1.宏单元宏单元(通用逻辑模块通用逻辑模块/GLB):):由可编程的与逻辑阵列、由可编程的与逻辑阵列、乘积项共享的或逻辑阵列和输出逻辑宏单元三部分构成。乘积项共享的或逻辑阵列和输出逻辑宏单元三部分构成。多个多个宏单元组成一个宏单元组成一个LAB_逻辑阵列块逻辑阵列块。n2.I/O控制块控制块(I/O单元)单元):是内部信号到:是内部信号到I/O引脚的接口部分引脚的接口部分。n3.PIA_可编程连线阵列可编程连线阵列(可编程内部连线可编程内部连线):给各通用逻辑模给各通用逻辑模块之间,以及通用逻辑模块和块之间,以及通用逻辑模块和I/O之间提供互连网络。之间提供互连网络。逻辑阵列块逻辑阵列块(LAB,LogicArrayBlock)图图3-27MAX3000的结构(的结构(Altera)可编程连线阵列可编程连线阵列(PIA,ProgrammableInterconnectArray)一个一个LAB由由16个宏单元的阵个宏单元的阵列组成。列组成。图图2-26MAX3000A系列的单个系列的单个宏单元宏单元结构结构PRNCLRNENA逻辑阵列逻辑阵列全局全局清零清零共共享享逻逻辑辑扩扩展展项项清零清零时钟时钟清零清零选择选择寄寄 存存 器器旁旁路路并并行行扩扩展展项项通通往往 I/O模模块块通往通往 PIA乘积项选择矩阵来自来自 I/O引脚引脚全局全局时钟时钟QDEN来自来自 PIA的的 36个信号个信号(ProgrammableInterconnectArray)快速输入选择快速输入选择2可编程与阵列固定或阵列可编程与阵列固定或阵列OLMC逻辑阵列乘积项选择矩阵逻辑阵列乘积项选择矩阵可编程寄存器可编程寄存器1 1、宏单元、宏单元共享扩展乘积项共享扩展乘积项图图2-28共享扩展乘积项结构共享扩展乘积项结构每个宏单元提供一个单独的乘积项,通过一个非门取反后反馈每个宏单元提供一个单独的乘积项,通过一个非门取反后反馈到逻辑阵列中,可被到逻辑阵列中,可被LAB内任何一个或全部宏单元使用和共享,内任何一个或全部宏单元使用和共享,以组成复杂的逻辑函数。每个以组成复杂的逻辑函数。每个LAB有有16个共享扩展项。个共享扩展项。图图2-29并联扩展项馈送方式并联扩展项馈送方式并联扩展乘积项并联扩展乘积项宏单元中一些没宏单元中一些没有被使用的乘积有被使用的乘积项可分配到邻近项可分配到邻近的宏单元去实现的宏单元去实现快速、复杂的逻快速、复杂的逻辑函数。允许最辑函数。允许最多多20个乘积项直个乘积项直接送到或逻辑。接送到或逻辑。2、可编程连线阵列、可编程连线阵列PIA图图2-30PIA信号布线到信号布线到LAB的方式的方式专用输入、专用输入、I/O引脚和宏单元输出都连接到引脚和宏单元输出都连接到PIA,用户,用户可编程控制可编程控制PIA把器件中任何信号连接到其目的地。把器件中任何信号连接到其目的地。3、I/O控制块控制块图图2-31MAX3000A系列系列器件的器件的I/O控制块控制块允许每个允许每个I/O引脚引脚单独被配置为输单独被配置为输入、输出和双向入、输出和双向工作方式。工作方式。五个主要部分:五个主要部分:逻辑阵列块逻辑阵列块(LAB)宏单元宏单元扩展乘积项(共享和并联)扩展乘积项(共享和并联)可编程连线阵列可编程连线阵列(PIA)I/O控制块控制块三三个个基基本本部部分分CPLD的结构:的结构:f=(A+B)C(D)=ACD+BCD f举例:举例:A、B、C、D由由PLD芯片的管脚输入后进入可编程连线阵列芯片的管脚输入后进入可编程连线阵列(PIA),在内部会产生,在内部会产生A、A非、非、B、B非、非、C、C非、非、D、D非非8个输个输出。图中每一个叉表示相连(可编程熔丝导通),所以得到:出。图中每一个叉表示相连(可编程熔丝导通),所以得到:f=f1+f2=(ACD)+(BCD)。D触发器直接利用宏单元中的可编程触发器直接利用宏单元中的可编程D触发器来实现。触发器来实现。时钟信号时钟信号CLK由由I/O脚输入后进入芯片内部的全局时钟专用通道,脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。直接连接到可编程触发器的时钟端。可编程触发器的输出与可编程触发器的输出与I/O脚相连,脚相连,把结果输出到芯片管脚。把结果输出到芯片管脚。(以上步骤均由软件自动完成,不需人为干预以上步骤均由软件自动完成,不需人为干预)此简单电路只需一个宏此简单电路只需一个宏单元即可完成。单元即可完成。对于复杂电路,需通过对于复杂电路,需通过并联扩展项和共享扩展项将并联扩展项和共享扩展项将多个宏单元相连,宏单元的多个宏单元相连,宏单元的输出也可以连接到可编程连输出也可以连接到可编程连线阵列,再做为另一个宏单线阵列,再做为另一个宏单元的输入。这样元的输入。这样PLD就可实就可实现更复杂的逻辑。现更复杂的逻辑。nCPLD的的优点优点(Advantage)q断电后数据不会丢失。断电后数据不会丢失。nCPLD的的缺点缺点(Disadvantage)q组成复杂的、特殊的数字系统时欠灵活。组成复杂的、特殊的数字系统时欠灵活。2.4FPGA结构与工作原理结构与工作原理2.4.1查找表查找表(LUT,LookUpTable)图图2-33FPGA查找表单元内部结构查找表单元内部结构图图2-32FPGA查找表单元查找表单元FieldProgrammableGateArray0000010100000101输入输入 A 输入输入 B 输入输入C 输入输入D 查查找找表表输输出出16x1RAM查找表原理查找表原理多路选择器多路选择器函数发生器函数发生器一个一个N输入查找表输入查找表(LUT,Look Up Table)可以实现可以实现N个输入变量个输入变量的任何逻辑功能,如的任何逻辑功能,如 N输入输入“与与”、N输入输入“异或异或”等。等。输入多于输入多于N个的函数、方程必须分开用几个查找表(个的函数、方程必须分开用几个查找表(LUT)实现实现输出输出查黑查黑找盒找盒表子表子输入输入1输入输入2输入输入3输入输入4什么是查找表什么是查找表?基于查找表的结构模块基于查找表的结构模块基于查找表的结构模块基于查找表的结构模块 .IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOCEABEAB嵌入式嵌入式阵列块阵列块快速通道互连快速通道互连逻辑单元逻辑单元逻辑阵列块逻辑阵列块(LAB)FPGA内部结构示意图内部结构示意图嵌入式乘法器嵌入式乘法器锁相环(锁相环(PLL)LELUT可编程可编程FF进位链级联链(寄存器链)进位链级联链(寄存器链)1、逻辑单元、逻辑单元LE(LogicElement)普通模式普通模式算术模式算术模式2、逻辑阵列块、逻辑阵列块LABLogicArrayBlock LAB16个个LE进位链进位链/寄存器链寄存器链/直通互连直通互连局部互连局部互连/行互连行互连/列互连列互连/图图2-38LAB阵列间互连阵列间互连连续布线连续布线=每次设计重复的可预测性和高性能每次设计重复的可预测性和高性能连续布线连续布线(Altera 基于查找表(基于查找表(LUT)的的 FPGA)LABLE3、行、行/列互连列互连(快速通道)(快速通道)分段布线分段布线=每次设计不重复的难预测性,性能降低每次设计不重复的难预测性,性能降低4、I/O单元与专用输入端口单元与专用输入端口IO单元结构图单元结构图5、嵌入式存储器:、嵌入式存储器:由数十个由数十个M9K的存储器块构成,每个的存储器块构成,每个M9K存储器块具有很强的伸缩性,可实现存储器块具有很强的伸缩性,可实现8192位位RAM、ROM、移位、移位寄存器、寄存器、FIFO。还可通过多种连线与可编程资源实现连接,大。还可通过多种连线与可编程资源实现连接,大大增强了大增强了FPGA的性能,扩大了其应用范围。的性能,扩大了其应用范围。用用M9K构成不构成不同结构的同结构的RAM和和ROM输输出出时时钟钟DRAM/ROM256x321024x84096x28192x1DDD写写脉脉冲冲电电路路输输出出宽宽度度32,8,2,1 数数 据据 宽宽 度度3 2,8,2,1地址宽度地址宽度 8,10,12,13 写使能写使能输输入入时时钟钟6、乘法器、乘法器、PLL下面是一个下面是一个4 4输入与门的例子输入与门的例子实际逻辑电路LUT的实现方式a,b,c,d输入逻辑输出地址RAM中存储的内容00000000000001000010.0.01111111111举例:举例:仍以上述电路为例:仍以上述电路为例:A、B、C、D由由FPGA芯片的管脚输入后进入快速通道,芯片的管脚输入后进入快速通道,然后作为地址线连到然后作为地址线连到LUT,LUT中已经事先写入了所有可能中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。该电路中合逻辑就实现了。该电路中D触发器是直接利用触发器是直接利用LUT后面后面D触发器来实现。触发器来实现。时钟信号时钟信号CLK由由I/O脚输入后进入芯片内部的时钟专用脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。通道,直接连接到触发器的时钟端。触发器的输出与触发器的输出与I/O脚脚相连,把结果输出到芯片管脚。相连,把结果输出到芯片管脚。(以上步骤都是由软件自动完成的,不需要人为干预以上步骤都是由软件自动完成的,不需要人为干预)nFPGA的的优点优点(Advantage)q在组成一些复杂的、特殊的数字系统时显得更加灵活。在组成一些复杂的、特殊的数字系统时显得更加灵活。nFPGA的的缺点缺点(Disadvantage)qFPGA中大多采用基于静态随机存储器(中大多采用基于静态随机存储器(SRAM)的)的查找表结构,所以查找表结构,所以断电后数据便随之消失断电后数据便随之消失。FPGA/CPLD多电压兼容系统内核电压内核电压 3.3V、2.5V/1.8V/1.2V接接受受 2.5V、3.3V 或或 者者 5.0V 输输 入入输输 出出 电电 位位标准标准 Vccio 嵌入式逻辑分析仪嵌入式逻辑分析仪将一种高效的硬件测试手段和传统将一种高效的硬件测试手段和传统的系统测试方法相结合的系统测试方法相结合,它可以随设计文件一并下载于目标它可以随设计文件一并下载于目标芯片中,用以捕捉目标芯片内部信号节点处的信息芯片中,用以捕捉目标芯片内部信号节点处的信息,而又,而又不影响原硬件系统的正常工作。不影响原硬件系统的正常工作。在实际监测中,在实际监测中,Quartus II Quartus II中的中的SignalTap IISignalTap II将测得将测得的样本信号暂存于目标器件中的嵌入式的样本信号暂存于目标器件中的嵌入式RAMRAM(如(如ESBESB、M4KM4K)中,然后中,然后通过器件的通过器件的JTAGJTAG端口将采得的信息传出端口将采得的信息传出,送入计,送入计算机进行显示和分析。算机进行显示和分析。嵌入式逻辑分析仪嵌入式逻辑分析仪SignalTap IISignalTap II允许对设计中的所有允许对设计中的所有层次的模块的信号节点进行测试,可以使用多时钟驱动,层次的模块的信号节点进行测试,可以使用多时钟驱动,而且还能通过设置以确定前后触发捕捉信号信息的比例。而且还能通过设置以确定前后触发捕捉信号信息的比例。2.5FPGA/CPLD测试技术测试技术2.5.1内部逻辑测试内部逻辑测试(重复进行硬件系统的测试)(重复进行硬件系统的测试)P110_4.3嵌入式逻辑分析仪嵌入式逻辑分析仪2.5.2JTAG(JointTestActionGroup)边界扫描测试边界扫描测试图图2-43边界扫描电路结构边界扫描电路结构BoardScanTest2.5FPGA/CPLD测试技术测试技术2.5.2JTAG边界扫描测试边界扫描测试表表2-1边界扫描边界扫描IO引脚功能引脚功能使用四个使用四个I/O引脚和一个可选引脚作为引脚和一个可选引脚作为JTAG引脚引脚2.6FPGA/CPLD产品概述产品概述其他其他PLD公司:公司:ATMEL公司:公司:ATF1500AS系列、系列、40MXCYPRESS公司公司QUIKLOGIC公司公司SOMUCHIC!FPGACPLD两大生产厂商产品两大生产厂商产品FPGA:Cyclone、CycloneStratix、Stratix等等CPLD:MAX7000、MAX3000系列(系列(EEPROM工艺工艺)Altera:FPGA:Spartan系列(低成本设计)系列(低成本设计)Virtex系列(高端设计)系列(高端设计)CPLD:XC9500系列(系列(Flash工艺工艺)Xilinx:编程和配置:编程和配置:1、基于电可擦除存储单元的、基于电可擦除存储单元的E2PROM或或FLASH技术,技术,掉电后保留信息,掉电后保留信息,CPLD一般一般采用这种编程工艺,称为采用这种编程工艺,称为编程编程。(。(基于反熔丝技术的也称为编程。)基于反熔丝技术的也称为编程。)2、基于基于SRAM查找表的技术,掉电后不保留信息,大部查找表的技术,掉电后不保留信息,大部分分FPGA采用这种编程工艺,称为采用这种编程工艺,称为配置配置。2.7CPLD和和FPGA的编程与配置的编程与配置此接口既可作编此接口既可作编程下载口,也可作程下载口,也可作JTAG接口接口 ALTERA 的的 ByteBlaster(MV)下载接口下载接口2.7CPLD和和FPGA的编程与配置的编程与配置10芯下载口芯下载口表表2-3上图接口各引脚信号名称上图接口各引脚信号名称THEENDTHEENDEDA实验的实验的3个层次个层次1 1、逻辑行为的实现、逻辑行为的实现 (特点:非特点:非EDA技术及相技术及相关器件也能实现,无法体现关器件也能实现,无法体现EDA技术的优势)技术的优势)主要包括原数字电路中的实验项目,如:简主要包括原数字电路中的实验项目,如:简单译码器、简单计数器、红绿交通灯控制、表决单译码器、简单计数器、红绿交通灯控制、表决器、显示扫描器、电梯控制、乒乓球游戏、数字器、显示扫描器、电梯控制、乒乓球游戏、数字钟表、普通频率计等等纯逻辑行为实现方面的电钟表、普通频率计等等纯逻辑行为实现方面的电路的设计,时钟频率低。路的设计,时钟频率低。EDA实验的3个层次2、控制与信号传输功能的实现(特点:必须(特点:必须使用使用EDA技术才也能实现,能体现技术才也能实现,能体现EDA技术的优技术的优势,是电子设计竞赛赛题最有可能出题的功能范围,势,是电子设计竞赛赛题最有可能出题的功能范围,值得重视!)值得重视!)如:高速信号发生器(含高速如:高速信号发生器(含高速D/A输出)、输出)、PWM、FSK/PSK、A/D采样控制器、数字频率采样控制器、数字频率合成、数字合成、数字PLL、FIFO、RS232或或PS/2通信、通信、VGA显示控制电路、逻辑分析仪、存储示波器、显示控制电路、逻辑分析仪、存储示波器、虚拟仪表、图像采样处理和显示、机电实时控制虚拟仪表、图像采样处理和显示、机电实时控制系统、系统、FPGA与单片机综合控制等电路的设计。与单片机综合控制等电路的设计。3 3、算法的实现、算法的实现(特点:使用硬件方式取代由(特点:使用硬件方式取代由传统传统CPU完成的许多算法功能,实现高速性能)完成的许多算法功能,实现高速性能)如:离散如:离散FFT变换、数字滤波器、浮点乘法变换、数字滤波器、浮点乘法器、高速宽位加法器、数字振荡器、器、高速宽位加法器、数字振荡器、DDS、编、编码译码和压缩、调制解调器、以太网交换机、码译码和压缩、调制解调器、以太网交换机、高频端高频端DSP(现代(现代DSP)、基于)、基于FPGA的嵌入式的嵌入式系统、系统、SOPC/SOC系统、实时图象处理、大信系统、实时图象处理、大信息流加解密算法实现等电路的设计,嵌入式息流加解密算法实现等电路的设计,嵌入式ARM、含、含CPU软核软核Nios的软硬件联合设计。时的软硬件联合设计。时钟频率一般在钟频率一般在50MHz以上。以上。.EDA实验的3个层次补充内容:补充内容:应用于嵌入式系统的微嵌入式系统的微处理器主要有处理器主要有MCU、MPU、DSP FPGA+DSP的的应用举例应用举例n思考思考qP61_2-22-6n预习预习q第一次实验:第一次实验:p139_4-38位全加器(要求:用原位全加器(要求:用原理图输入法和文本理图输入法和文本VHDL输入法两种方法设计)输入法两种方法设计)n边实验边全面复习边实验边全面复习