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