1第12章可编程逻辑器件应用2可编程逻辑系统系统设计如何入门FPGA是基于硬件可编程的器件,设计方法与CPU和DSP有本质的区别;设计者需要掌握硬件描述语言,还要具备硬件的概念和调试的经验,才能设计出高质量的FPGA系统FPGA系统涉及到:FPGA的结构原理、电路硬件设计与调试、硬件描述语言(HDL)、开发工具EDA软件、仿真验证技术以及FPGA与其他处理器的互联接口技术等。FPGA最好的入门方法---实践。初期阶段:看书+软件仿真;实践阶段:结合FPGA开发板,将自己的设计在FPGA硬件系统上运行。FPGA最小系统:含电源、下载接口,引出全部IO,用户自行设计外部电路。3可编程逻辑系统设计技术背景目前数字系统设计领域公认的基础性技术CPU、DSP、FPGAFPGA技术发展迅速,正在逐渐融合CPU和DSP的功能;FPGA已经广泛应用在如无线基站、千兆网络路由器、智能手机、便携式产品等领域。在我们的全国竞赛中,FPGA的作用主要定位在时序信号产生、前端信号采集、高速控制、数据并行处理等方面,作为辅助控制器与MSP430或DSP协同运行,不做单独的处理器来使用。4FPGA与ASICASIC:指固定的或定制的逻辑器件(专用集成电路)---如MP3专用解码芯片优点:通过固化的逻辑功能和大规模的工业化生产,芯片成本大幅度降低,可靠性高;缺点:设计周期长,投资大,风险高,设计投产后不可更改。FPGA的诞生解决了ASIC存在的这些不足,满足了快速产品开发的需要。第一片FPGA:Xilinx公司1984年推出,20多年的发展,FPGA的可用门从当初的1000余个可用门,发展到现在的1000万个以上的可用门。容量提升了1万倍。FPGA解决了电子系统小型化、低功耗、高可靠性的问题,开发周期短、投入少,芯片价格不断下降。5FPGA技术发展趋向1、基于FPGA的嵌入式系统(SoPC)技术正在成熟;2、FPGA芯片向高性能、高密度、低压和低功耗方向发展;3、基于IP库的设计方法;FPGA的设计者只需要寻找适合项目需要的IP库资源,然后将这些IP整合起来,完成顶层模块设计。整个项目的仿真和验证工作主要就是验证IP库的接口逻辑设计正确性。4、FPGA的动态可重构技术。指对于特定结构的FPGA芯片,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。61、PLD器件概述(3/3)---主流CPLD与FPGACPLD:基于乘积项结构,基本结构为“与-或阵列”;FPGA:基于查找表结构,由简单的查找表构成可编程门,再构成阵列形式(FPGA数据掉电后丢失,CPLD掉电保持)CPLDFPGA内部结构Product-termLook-upTable程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低(几十-数万门级)高(百万门级)使用场合完成逻辑控制完成比较复杂的算法速度慢快其他资源EEPROMEAB,锁相环保密性可加密一般不能加密72、CPLD的结构与可编程原理(1/2)CPLD即复杂可编程逻辑器件,是早期GAL器件的改进。Altera的MAX7000系列具有典型性,以此为例,进行简介MAX7000系列包含32-256个宏单元,每16个宏单元组成一个逻辑阵列块(LAB)每个宏单元含有一个可编程的“与”阵列和固定的“或”阵列,以及一个可配置寄存器。每个宏单元共享扩展乘积项和高速并联扩展乘积项,它们可向每个宏单元提供多达32个乘积项,以构成复杂的逻辑函数。83、FPGA的结构与工作原理---简介(1/3)多数FPGA采用基于SRAM的查找表逻辑形成结构,即利用SRAM(静态随机存储器)来构成逻辑函数发生器;一个N输入查找表(LUT)可以实现N个输入变量的任何逻辑功能;Altera的Cyclone系列器件成本低、性价比高,结构和工作原理具有典型性;Cyclone器件主要由逻辑阵列块(LAB)、嵌入式存储器块、IO单元和PLL等模块构成;每个LAB有多个LE(LogicElement,逻辑单元)构成;LE是CycloneFPGA器件的最基本可编程单元;LE主要由一个4输入的查找表LUT、进位链逻辑和一个可编程的寄存器构成。93、FPGA的结构与工作原理---结构(2/3)103、FPGA的结构与工作原理---结构(3/3)其它详细结构及工作原理请读者自行阅读教材P26-P3211芯片与外接电路的接口部分可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能用作数据存储,可配置为单端口RAM,双口RAM,FIFO等连通FPGA内部所有单元,连线长度和工艺决定信号驱动能力和传输速度通用程度较高的嵌入式功能模块,如PLL、DSP、CPU等12PLL的作用:完成时钟的高精度、低抖动的倍频、分频、占空比调整、移相等功能(可达ps精度);内嵌专用硬核:与“底层嵌入单元”有区分,指的是通用性相对较弱,不是所有FPGA都包含硬核。如Altera的StratixGX系列内部专门集成了3.1875Gbit/s的串并收发单元;134、硬件测试技术内部逻辑测试(动态测试、分析内部寄存器的状态)器件厂商在在PLD中嵌入某种逻辑功能模块;与EDA工具配合提供一种嵌入式逻辑分析仪,通过测试发现内部逻辑问题;如Altera的SignalTapII。JTAG边界扫描测试(BST)145、FPGA/CPLD厂商ALtera:高性能、高集成度、高性价比,开发工具软件丰富,且提供免费使用版本;Xilinx:追求高集成度、高速度、低价格、低功耗设计;Lattice:CPLD的开拓者,首创PLD及ISP技术;Actel:加密性好,产品广泛应用于航空航天、军事领域。156、编程与配置(1/3)CPLD/FPGA都具有在系统编程(ISP)能力ISP功能的特点:使用CPLD/FPGA进行逻辑设计时可以把芯片焊接在印制电路板上,在设计时一次又一次随心所欲地改变整个电路的硬件逻辑关系,而不必改变电路板的结构。有3种ISP方式:基于电可擦除存储单元的EEPROM或Flash技术(CPLD)---掉电数据不丢失,但编程次数有限,编程的速度慢基于SRAM查找表的编程单元(FPGA)---配置次数无限、加电时可随时更改逻辑,但掉电后数据即丢失,下次上电需要重新配置基于反熔丝编程单元(Actel的FPGA)JTAG方式的在系统编程接口167、编程与配置---PC机配置FPGA(2/3)使用PC并行口配置FPGA(传统方法,使用ByteBlasterMV或ByteBlasterII下载电缆)使用PCUSB口配置FPGA(使用USB-Blaster下载电缆)Altera的FPGA有如下几种常用编程配置方式:配置器件模式,如用EPC器件进行配置。PS(PassiveSerial被动串行)模式。JTAG模式,用于配置SRAM的SOF文件,或JTAG间接AS(ActiveSerial),这个模式是针对EPCS器件而言。177、编程与配置---FPGA配置器件(3/3)188、CPLD与FPGA的区别及应用选型(1/2)FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个CLB结合起来实现。CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。FPGA内部有丰富连线资源,CLB分块较小,芯片的利用率较高。CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线。内部资源利用率较FPGA器件低19器件的资源Altera、Xilinx:数千门~数百万门;Lattice:数万门以下资源占用以仿真的结果为准,并应留有适当的余量(20%)芯片速度:芯片速度越高,其对微小毛刺信号的反应越灵敏,系统的稳定性越差器件功耗:工作电压越高功耗越大(5V,3.3V,2.5V,1.8V等)CPLDFPGA逻辑密集型数据密集型中小规模(1000~50000)大规模设计(5000~数百万门)免费软件支持SoC设计编程数据不丢失,电路简单ASIC的设计仿真ISP特性,编程加密布线灵活,但时序特性不稳定布线延迟固定,时序特性稳定需专用的ROM进行数据配置8、CPLD与FPGA的区别及应用选型(2/2)209.FPGA设计流程电路设计与输入---采用HDL语言或原理图设计输入;大型设计中,原理图设计方法的可维护性较差,不利于模块构造与重用。主流的HDL语言:VHDL与VerilogHDL功能仿真QuartusII自带仿真;使用第三方仿真软件ModelSim21综合优化将HDL语言、原理图等设计输入翻译成与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出网表文件;QuartusII可进行综合,第三方综合工具:Synplify综合后仿真综合后检查综合结果是否与原设计一致。实现与布局布线:综合的结果本质是基本逻辑单元所组成的网表,与芯片实际的配置情况还有较大差距;使用相应软件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体FPGA/CPLD上的过程就是实现。2210、Altera典型器件简介ACEX系列FPGA:专为通信(如xDSL调制解调器、路由器)、音频处理等应用而推出的芯片系列。如ACEX1K100MAX系列CPLD:以乘积项最为基本结构单元,具有ISP编程功能,支持JTAG。如MAX7128MAXII系列CPLD:低成本、低功耗,功耗是MAX系列的十分之一,支持内部时钟频率高达300MHz,内置用户非易失性Flash存储器块,使用LUT结构。如EPM240Cyclone/II系列FPGA(低成本FPGA):平衡了逻辑、存储器、锁相环(PLL)和高级IO接口。支持NIOSII系列嵌入式处理器,支持串行、总线和网络接口及各种通信协议……如EP1C3、EP1C6……Stratix/II系列FPGA:带有专用算法功能模块,可高效地实现加法树等大计算量的功能,提供了高速I/O信号和接口。我院的多普勒天气雷达即采用它做核心运算芯片2311、主流低成本FPGA-CycloneCyclone器件采用0.13um工艺制造,其内部有锁相环、RAM块,逻辑容量从2910-20060个LE,特性如下表:CycloneFPGA中的PLL只能由全局时钟管脚CLK0-3驱动;一个PLL的输出可以驱动两个内部全局时钟网络和一个(或一对)I/O管脚;特性EP1C3EP1C4EP1C6EP1C12EP1C20LE2910400059801206020060M4KRAM1317205264锁相环12222最大用户I/O10430118524930124Cyclone中的时钟资源25CycloneFPGA的锁相环结构26CycloneFPGA的配置与IO新特性Altera公司的FPGA由于基于SRAM工艺,掉电后数据会丢失,可使用EPCS1或EPCS4加载配置数据;这种加载方式即为:主动串行模式(ActiveSerial),Cyclone器件在加载是主动发出发在时钟和其他控制信号,数据从串行加载芯片中读出,送入FPGA的片内SRAM,运行。Cyclone可支持DDR存储器接口;Cyclone器件支持高速LVDS接口,性能可以达到311Mbit/s,在这种接口下必须注意外部匹配电阻网络的接法。2712