1 / 37

第 12 章 可编程逻辑器件应用

第 12 章 可编程逻辑器件应用. 可编程逻辑系统系统设计如何入门. FPGA 是基于硬件可编程的器件,设计方法与 CPU 和 DSP 有本质的区别; 设计者需要掌握硬件描述语言,还要具备硬件的概念和调试的经验,才能设计出高质量的 FPGA 系统 FPGA 系统涉及到: FPGA 的结构原理、电路硬件设计与调试、硬件描述语言( HDL )、开发工具 EDA 软件、仿真验证技术以及 FPGA 与其他处理器的互联接口技术等。 FPGA 最好的入门方法 --- 实践。 初期阶段:看书 + 软件仿真; 实践阶段:结合 FPGA 开发板,将自己的设计在 FPGA 硬件系统上运行。

Download Presentation

第 12 章 可编程逻辑器件应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第12章 可编程逻辑器件应用

  2. 可编程逻辑系统系统设计如何入门 • FPGA是基于硬件可编程的器件,设计方法与CPU和DSP有本质的区别; • 设计者需要掌握硬件描述语言,还要具备硬件的概念和调试的经验,才能设计出高质量的FPGA系统 • FPGA系统涉及到: • FPGA的结构原理、电路硬件设计与调试、硬件描述语言(HDL)、开发工具EDA软件、仿真验证技术以及FPGA与其他处理器的互联接口技术等。 • FPGA最好的入门方法---实践。 • 初期阶段:看书+软件仿真; • 实践阶段:结合FPGA开发板,将自己的设计在FPGA硬件系统上运行。 • FPGA最小系统:含电源、下载接口,引出全部IO,用户自行设计外部电路。

  3. 可编程逻辑系统设计技术背景 • 目前数字系统设计领域公认的基础性技术 • CPU、DSP、FPGA • FPGA技术发展迅速,正在逐渐融合CPU和DSP的功能; • FPGA已经广泛应用在如无线基站、千兆网络路由器、智能手机、便携式产品等领域。 • 在我们的全国竞赛中,FPGA的作用主要定位在时序信号产生、前端信号采集、高速控制、数据并行处理等方面,作为辅助控制器与MSP430或DSP协同运行,不做单独的处理器来使用。

  4. FPGA与ASIC • ASIC:指固定的或定制的逻辑器件(专用集成电路)---如MP3专用解码芯片 • 优点:通过固化的逻辑功能和大规模的工业化生产,芯片成本大幅度降低,可靠性高; • 缺点:设计周期长,投资大,风险高,设计投产后不可更改。 • FPGA的诞生解决了ASIC存在的这些不足,满足了快速产品开发的需要。 • 第一片FPGA:Xilinx公司1984年推出,20多年的发展,FPGA的可用门从当初的1000余个可用门,发展到现在的1000万个以上的可用门。容量提升了1万倍。 • FPGA解决了电子系统小型化、低功耗、高可靠性的问题,开发周期短、投入少,芯片价格不断下降。

  5. FPGA技术发展趋向 • 1、基于FPGA的嵌入式系统(SoPC)技术正在成熟; • 2、FPGA芯片向高性能、高密度、低压和低功耗方向发展; • 3、基于IP库的设计方法; • FPGA的设计者只需要寻找适合项目需要的IP库资源,然后将这些IP整合起来,完成顶层模块设计。 • 整个项目的仿真和验证工作主要就是验证IP库的接口逻辑设计正确性。 • 4、FPGA的动态可重构技术。 • 指对于特定结构的FPGA芯片,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。

  6. 1、PLD器件概述(3/3)---主流CPLD与FPGA • CPLD:基于乘积项结构,基本结构为“与-或阵列”; • FPGA:基于查找表结构,由简单的查找表构成可编程门,再构成阵列形式( FPGA数据掉电后丢失,CPLD掉电保持)

  7. 2、CPLD的结构与可编程原理(1/2) • CPLD即复杂可编程逻辑器件,是早期GAL器件的改进。 • Altera的MAX7000系列具有典型性,以此为例,进行简介 • MAX7000系列包含32-256个宏单元,每16个宏单元组成一个逻辑阵列块(LAB) 每个宏单元含有一个可编程的“与”阵列和固定的“或”阵列,以及一个可配置寄存器。每个宏单元共享扩展乘积项和高速并联扩展乘积项,它们可向每个宏单元提供多达32个乘积项,以构成复杂的逻辑函数。

  8. 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、进位链逻辑和一个可编程的寄存器构成。

  9. 3、FPGA的结构与工作原理---结构(2/3)

  10. 3、FPGA的结构与工作原理---结构(3/3) • 其它详细结构及工作原理请读者自行阅读教材P26-P32

  11. 芯片与外接电路的接口部分 可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能 通用程度较高的嵌入式功能模块,如PLL、DSP、CPU等 用作数据存储,可配置为单端口RAM,双口RAM,FIFO等 连通FPGA内部所有单元,连线长度和工艺决定信号驱动能力和传输速度

  12. PLL的作用:完成时钟的高精度、低抖动的倍频、分频、占空比调整、移相等功能(可达ps精度);PLL的作用:完成时钟的高精度、低抖动的倍频、分频、占空比调整、移相等功能(可达ps精度); • 内嵌专用硬核:与“底层嵌入单元”有区分,指的是通用性相对较弱,不是所有FPGA都包含硬核。如Altera的Stratix GX系列 内部专门集成了3.1875 Gbit/s的串并收发单元;

  13. 4、硬件测试技术 • 内部逻辑测试(动态测试、分析内部寄存器的状态) • 器件厂商在在PLD中嵌入某种逻辑功能模块; • 与EDA工具配合提供一种嵌入式逻辑分析仪,通过测试发现内部逻辑问题; • 如Altera的SignalTapII。 • JTAG边界扫描测试(BST)

  14. 5、FPGA/CPLD厂商 • ALtera:高性能、高集成度、高性价比,开发工具软件丰富,且提供免费使用版本; • Xilinx:追求高集成度、高速度、低价格、低功耗设计; • Lattice:CPLD的开拓者,首创PLD及ISP技术; • Actel:加密性好,产品广泛应用于航空航天、军事领域。

  15. 6、编程与配置(1/3) • CPLD/FPGA都具有在系统编程(ISP)能力 • ISP功能的特点:使用CPLD/FPGA进行逻辑设计时可以把芯片焊接在印制电路板上,在设计时一次又一次随心所欲地改变整个电路的硬件逻辑关系,而不必改变电路板的结构。有3种ISP方式: • 基于电可擦除存储单元的EEPROM或Flash技术(CPLD) ---掉电数据不丢失,但编程次数有限,编程的速度慢 • 基于SRAM查找表的编程单元(FPGA) ---配置次数无限、加电时可随时更改逻辑,但掉电后数据即丢失,下次上电需要重新配置 • 基于反熔丝编程单元(Actel的FPGA) • JTAG方式的在系统编程接口

  16. 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器件而言。

  17. 7、编程与配置 ---FPGA配置器件(3/3)

  18. 8、CPLD与FPGA的区别及应用选型(1/2) • FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。 • CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。 • FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个CLB结合起来实现。 • CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。 • FPGA内部有丰富连线资源,CLB分块较小,芯片的利用率较高。 • CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线。内部资源利用率较FPGA器件低

  19. 8、CPLD与FPGA的区别及应用选型(2/2) • 器件的资源 • Altera、Xilinx:数千门~数百万门; • Lattice:数万门以下 • 资源占用以仿真的结果为准,并应留有适当的余量(20%) • 芯片速度:芯片速度越高,其对微小毛刺信号的反应越灵敏,系统的稳定性越差 • 器件功耗:工作电压越高功耗越大(5V,3.3V,2.5V,1.8V等)

  20. 9.FPGA设计流程 • 电路设计与输入---采用HDL语言或原理图设计输入; • 大型设计中,原理图设计方法的可维护性较差,不利于模块构造与重用。 • 主流的HDL语言:VHDL与VerilogHDL • 功能仿真 • QuartusII自带仿真; • 使用第三方仿真软件ModelSim

  21. 综合优化 • 将HDL语言、原理图等设计输入翻译成与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出网表文件; • QuartusII可进行综合, • 第三方综合工具:Synplify • 综合后仿真 • 综合后检查综合结果是否与原设计一致。 • 实现与布局布线: • 综合的结果本质是基本逻辑单元所组成的网表,与芯片实际的配置情况还有较大差距; • 使用相应软件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体FPGA/CPLD上的过程就是实现。

  22. 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信号和接口。我院的多普勒天气雷达即采用它做核心运算芯片

  23. 11、主流低成本FPGA-Cyclone • Cyclone器件采用0.13um工艺制造,其内部有锁相环、RAM块,逻辑容量从2910-20060个LE,特性如下表: • Cyclone FPGA中的PLL只能由全局时钟管脚CLK0-3驱动; • 一个PLL的输出可以驱动两个内部全局时钟网络和一个(或一对)I/O管脚;

  24. Cyclone中的时钟资源

  25. Cyclone FPGA的锁相环结构

  26. Cyclone FPGA的配置与IO新特性 • Altera公司的FPGA由于基于SRAM工艺,掉电后数据会丢失,可使用EPCS1或EPCS4加载配置数据; • 这种加载方式即为:主动串行模式(Active Serial),Cyclone器件在加载是主动发出发在时钟和其他控制信号,数据从串行加载芯片中读出,送入FPGA的片内SRAM,运行。 • Cyclone可支持DDR存储器接口; • Cyclone器件支持高速LVDS接口,性能可以达到311Mbit/s,在这种接口下必须注意外部匹配电阻网络的接法。

  27. 12、新一代低成本FPGA---CycloneII • CycloneII FPGA采用90nm工艺,器件规模是Cyclone的3倍; • 增加了硬的DSP块;

  28. 13、FPGA基本应用系统的设计 • FPGA最小系统: • FPGA是可以使FPGA正常工作的最简单的系统,它的外围电路只包括FPGA必要的控制电路; • 最小系统主要包括:FPGA芯片、下载/配置电路、外部时钟、复位电路和电源。如果需要使用NIOS II软核嵌入式处理器还要包括Flash和SDRAM; • FPGA的功能管脚包括: • 用户I/O,可用做输入或输出,或者双向口,或LVDS; • 配置管脚: • 电源管脚: • 时钟管脚: • 特殊管脚:

  29. 下载配置与调试接口电路 • FPGA是SRAM型结构,本身不能固化程序,因此需要一片Flash结构的配置芯片来存储逻辑配置信息,用于上电时配置; • 在把程序固化到配置芯片之前,一般先使用JTAG模式去调试程序,也就是把程序下载到FPGA上运行,这种方式擦写次数无限。

  30. 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电压两个电压,要注意区分。

  31. FPGA硬件系统的调试方法 • 如果硬件系统设计为插入式的背板结构,由于FPGA管脚多,密度大,焊接时具有很大难度,一般焊接需要相当熟练的水准,极易出现芯片与焊盘对不齐导致管脚大量粘连。 • 背板式的设计中,用户只需要设计外部I/O的接口电路就可以了,如LED,数据IO等。 • 调试的过程中,可以借助用户自行设计的LED来指示系统的工作状态,对于较为复杂的设计,建议使用示波器或SignalTapII嵌入式逻辑分析仪辅助进行调试; • 一般情况下:FPGA的硬件系统中,只要在QuartusII环境下能够检测到器件或者正常下载,即可正常运行。 • 在MSP430+FPGA或DSP+FPGA协同处理的硬件系统设计中,用户需要自行设计稳定可靠、操作使用方便的接口板。

  32. 14、QuartusII软件功能导论 • QuartusII是Altera的综合开发工具,它集成了Altera的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口;

  33. QuartusII高级应用 • 完成常规的逻辑设计输入、编译、综合、下载; • 使用QuartusII软件,结合Altera公司Cyclone或Stratix系列器件,可成功使用Altera提供的SignalTapII嵌入式逻辑分析仪,观测芯片内部信号的工作状态; • 应用LPM_ROM宏模块; • 定制LPM_RAM/FIFO; • 调用LPM嵌入式锁相环(需芯片支持); • 使用IP核,实现如FIR数字滤波器、FFT离散信号快速傅里叶变换、FSK等; • 进行流水线乘法器设计; • Matlab/DSP Builder设计。

  34. 使用FPGA从事数字系统设计的三阶段: • 1、常规逻辑功能描述的实现; • 指常规数字逻辑器件,如3-8线译码器74LS138,二进制计数器74LS161,移位寄存器74LS194等; • 2、时序产生及控制、小型数字系统的实现; • 如用状态机完成AD信号的采集,产生PWM时序控制步进电机 • 简易数字频率计、交通灯、数字种系统的实现等; • 3、算法功能/综合系统的实现 • FFT算法实现、频谱分析等。

More Related