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

37
1 第 12 第 第第第第第第第第第

Upload: doris-briggs

Post on 03-Jan-2016

206 views

Category:

Documents


4 download

DESCRIPTION

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

TRANSCRIPT

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

1

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

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

2

可编程逻辑系统系统设计如何入门 FPGA 是基于硬件可编程的器件,设计方法与 CPU 和 DSP

有本质的区别; 设计者需要掌握硬件描述语言,还要具备硬件的概念和调

试的经验,才能设计出高质量的 FPGA 系统 FPGA 系统涉及到:

FPGA 的结构原理、电路硬件设计与调试、硬件描述语言( HDL )、开发工具 EDA 软件、仿真验证技术以及 FPGA 与其他处理器的互联接口技术等。

FPGA 最好的入门方法 --- 实践。 初期阶段:看书 + 软件仿真; 实践阶段:结合 FPGA 开发板,将自己的设计在 FPGA 硬件系统

上运行。 FPGA 最小系统:含电源、下载接口,引出全部 IO ,用户自行设

计外部电路。

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

3

可编程逻辑系统设计技术背景 目前数字系统设计领域公认的基础性技术

CPU 、 DSP 、 FPGA FPGA 技术发展迅速,正在逐渐融合 CPU 和 DS

P 的功能; FPGA 已经广泛应用在如无线基站、千兆网络路

由器、智能手机、便携式产品等领域。 在我们的全国竞赛中, FPGA 的作用主要定位在

时序信号产生、前端信号采集、高速控制、数据并行处理等方面,作为辅助控制器与 MSP430 或DSP 协同运行,不做单独的处理器来使用。

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

4

FPGA 与 ASIC

ASIC :指固定的或定制的逻辑器件(专用集成电路) --- 如 MP3 专用解码芯片 优点:通过固化的逻辑功能和大规模的工业化生产,芯片成本大幅度降

低,可靠性高; 缺点:设计周期长,投资大,风险高,设计投产后不可更改。

FPGA 的诞生解决了 ASIC 存在的这些不足,满足了快速产品开发的需要。 第一片 FPGA : Xilinx 公司 1984 年推出, 20 多年的发展, FPGA 的可

用门从当初的 1000 余个可用门,发展到现在的 1000 万个以上的可用门。容量提升了 1 万倍。

FPGA 解决了电子系统小型化、低功耗、高可靠性的问题,开发周期短、投入少,芯片价格不断下降。

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

5

FPGA 技术发展趋向 1 、基于 FPGA 的嵌入式系统( SoPC )技术正在成熟; 2 、 FPGA 芯片向高性能、高密度、低压和低功耗方向发展; 3 、基于 IP库的设计方法;

FPGA 的设计者只需要寻找适合项目需要的 IP库资源,然后将这些 IP整合起来,完成顶层模块设计。

整个项目的仿真和验证工作主要就是验证 IP库的接口逻辑设计正确性。

4 、 FPGA 的动态可重构技术。 指对于特定结构的 FPGA 芯片,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。

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

6

1 、 PLD 器件概述 (3/3)--- 主流 CPLD 与 FPGA CPLD :基于乘积项结构,基本结构为“与 - 或阵列”; FPGA :基于查找表结构,由简单的查找表构成可编程门,再

构成阵列形式( FPGA 数据掉电后丢失, CPLD掉电保持)

CPLD FPGA

内部结构 Product-term Look-up Table

程序存储 内部 EEPROM SRAM ,外挂 EEPROM

资源类型 组合电路资源丰富 触发器资源丰富集成度 低(几十 - 数万门级) 高(百万门级)

使用场合 完成逻辑控制 完成比较复杂的算法速度 慢 快

其他资源 EEPROM EAB ,锁相环保密性 可加密 一般不能加密

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

7

2 、 CPLD 的结构与可编程原理( 1/2 ) CPLD即复杂可编程逻辑器件,是早期 GAL 器件的改进。

Altera 的 MAX7000 系列具有典型性,以此为例,进行简介 MAX7000 系列包含 32-256 个宏单元,每 16 个宏单元组成

一个逻辑阵列块( LAB )

每个宏单元含有一个可编程的“与”阵列和固定的“或”阵列,以及一个可配置寄存器。每个宏单元共享扩展乘积项和高速并联扩展乘积项,它们可向每个宏单元提供多达 32 个乘积项,以构成复杂的逻辑函数。

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

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 、进位链逻辑和一个

可编程的寄存器构成。

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

9

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

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

10

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

其它详细结构及工作原理请读者自行阅读教材 P26-P32

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

11

芯片与外接电路的接口部分 可编程逻辑的主体,可以根据设

计灵活地改变其内部连接与配置,完成不同的逻辑功能

用作数据存储,可配置为单端口RAM ,双口 RA

M,FIFO 等

连通 FPGA内部所有单元,连线长度和工艺决定信号驱动能力

和传输速度

通用程度较高的嵌入式功能模块,如 PLL 、 DSP 、

CPU 等

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

12

PLL 的作用:完成时钟的高精度、低抖动的倍频、分频、占空比调整、移相等功能 ( 可达 ps精度 ) ;

内嵌专用硬核:与“底层嵌入单元”有区分,指的是通用性相对较弱,不是所有 FPGA都包含硬核。如 Altera 的Stratix GX 系列 内部专门集成了 3.1875 Gbit/s 的串并收发单元;

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

13

4 、硬件测试技术 内部逻辑测试(动态测试、分析内部寄存器的状态)

器件厂商在在 PLD 中嵌入某种逻辑功能模块; 与 EDA 工具配合提供一种嵌入式逻辑分析仪,通过测试发现内部

逻辑问题; 如 Altera 的 SignalTapII 。

JTAG边界扫描测试( BST )

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

14

5 、 FPGA/CPLD厂商 ALtera :高性能、高

集成度、高性价比,开发工具软件丰富,且提供免费使用版本;

Xilinx :追求高集成度、高速度、低价格、低功耗设计;

Lattice:CPLD 的开拓者,首创 PLD 及 ISP 技术;

Actel :加密性好,产品广泛应用于航空航天、军事领域。

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

15

6 、编程与配置 (1/3) CPLD/FPGA都具有在系统编程( ISP )能力 ISP 功能的特点:使用 CPLD/FPGA进行逻辑设计时可

以把芯片焊接在印制电路板上,在设计时一次又一次随心所欲地改变整个电路的硬件逻辑关系,而不必改变电路板的结构。有 3种 ISP 方式: 基于电可擦除存储单元的 EEPROM 或 Flash 技术( CPLD ) ---掉电数据不丢失,但编程次数有限,编程的速度慢 基于 SRAM查找表的编程单元( FPGA ) ---配置次数无限、加电时可随时更改逻辑,但掉电后数据即丢失,下次上电需要重新配置

基于反熔丝编程单元( Actel 的 FPGA ) JTAG 方式的在系统编程接口

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

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

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

17

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

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

18

8 、 CPLD 与 FPGA 的区别及应用选型( 1/2 )

FPGA 采用 SRAM进行功能配置,可重复编程,但系统掉电后, SRAM 中的数据丢失。因此,需在 FPGA 外加 EPROM ,将配置数据写入其中,系统每次上电自动将数据引入 SRAM中。

CPLD 器件一般采用 EEPROM 存储技术,可重复编程,并且系统掉电后, EEPROM 中的数据不会丢失,适于数据的保密。

FPGA 器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个 CLB 结合起来实现。

CPLD 的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。

FPGA内部有丰富连线资源, CLB分块较小,芯片的利用率较高。

CPLD 的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线。内部资源利用率较 FPGA 器件低

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

19

器件的资源 Altera 、 Xilinx :数千门 ~ 数百万门; Lattice :数万门以下 资源占用以仿真的结果为准,并应留有适当的余量( 20% )

芯片速度:芯片速度越高,其对微小毛刺信号的反应越灵敏,系统的稳定性越差

器件功耗:工作电压越高功耗越大( 5V,3.3V,2.5V,1.8V 等)

CPLD FPGA

逻辑密集型 数据密集型中小规模( 1000~50000 ) 大规模设计( 5000~ 数百万门)

免费软件支持 SoC 设计编程数据不丢失,电路简单 ASIC 的设计仿真

ISP特性,编程加密 布线灵活,但时序特性不稳定布线延迟固定,时序特性稳定 需专用的 ROM进行数据配置

8 、 CPLD 与 FPGA 的区别及应用选型( 2/2 )

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

20

9.FPGA 设计流程 电路设计与输入 --- 采用 HD

L 语言或原理图设计输入; 大型设计中,原理图设计方法

的可维护性较差,不利于模块构造与重用。

主流的 HDL 语言: VHDL 与VerilogHDL

功能仿真 QuartusII 自带仿真; 使用第三方仿真软件 ModelSi

m

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

21

综合优化 将 HDL 语言、原理图等设计输入翻译成与、或、非门, RAM ,触发器

等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出网表文件;

QuartusII 可进行综合, 第三方综合工具: Synplify

综合后仿真 综合后检查综合结果是否与原设计一致。

实现与布局布线: 综合的结果本质是基本逻辑单元所组成的网表,与芯片实际的配置情况

还有较大差距; 使用相应软件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体 FPGA/CPLD 上的过程就是实现。

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

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

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

23

11 、主流低成本 FPGA-Cyclone Cyclone 器件采用 0.13um 工艺制造,其内部有锁相环、

RAM块,逻辑容量从 2910-20060 个 LE ,特性如下表:

Cyclone FPGA 中的 PLL只能由全局时钟管脚 CLK0-3驱动;

一个 PLL 的输出可以驱动两个内部全局时钟网络和一个(或一对) I/O管脚;

特性 EP1C3 EP1C4 EP1C6 EP1C12

EP1C20

LE 2910 4000 5980 12060 20060

M4K RAM 13 17 20 52 64

锁相环 1 2 2 2 2

最大用户 I/O

104 301 185 249 301

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

24

Cyclone 中的时钟资源

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

25

Cyclone FPGA 的锁相环结构

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

26

Cyclone FPGA 的配置与 IO新特性

Altera 公司的 FPGA 由于基于 SRAM 工艺,掉电后数据会丢失,可使用 EPCS1 或 EPCS4加载配置数据;

这种加载方式即为:主动串行模式( Active Serial ), Cyclone 器件在加载是主动发出发在时钟和其他控制信号,数据从串行加载芯片中读出,送入 FPGA 的片内 SRAM ,运行。

Cyclone 可支持 DDR 存储器接口; Cyclone 器件支持高速 LVDS 接口,性能可以达到 311Mbit/s ,

在这种接口下必须注意外部匹配电阻网络的接法。

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

27

12 、新一代低成本 FPGA---CycloneII CycloneII FPGA 采用 90nm 工艺,器件规模是 C

yclone 的 3 倍; 增加了硬的 DSP块;

特性 EP2C5 EP2C8 EP2C20

EP2C35

EP2C50

LE 4608 8256 18752 33216 68416

M4K RAM 36 36 52 105 129

锁相环 2 2 4 4 4

乘法器模块 13 18 26 35 86

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

28

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

29

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

30

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

31

13 、 FPGA 基本应用系统的设计 FPGA 最小系统:

FPGA 是可以使 FPGA 正常工作的最简单的系统,它的外围电路只包括 FPGA必要的控制电路;

最小系统主要包括: FPGA 芯片、下载 /配置电路、外部时钟、复位电路和电源。如果需要使用 NIOS II 软核嵌入式处理器还要包括 Flash 和 SDRAM ;

FPGA 的功能管脚包括: 用户 I/O, 可用做输入或输出,或者双向口,或 LVDS ;配置管脚: 电源管脚: 时钟管脚:特殊管脚:

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

32

下载配置与调试接口电路 FPGA 是 SRAM 型结构,本身不能固化程序,因此需要一片 Flash 结构的配置芯片来存储逻辑配置信息,用于上电时配置;

在把程序固化到配置芯片之前,一般先使用 JTAG 模式去调试程序,也就是把程序下载到 FPGA 上运行,这种方式擦写次数无限。

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

33

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

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

34

FPGA 硬件系统的调试方法 如果硬件系统设计为插入式的背板结构,由于 FPGA管脚多,密度大,焊接时具有很大难度,一般焊接需要相当熟练的水准,极易出现芯片与焊盘对不齐导致管脚大量粘连。

背板式的设计中,用户只需要设计外部 I/O 的接口电路就可以了,如LED, 数据 IO 等。

调试的过程中,可以借助用户自行设计的 LED 来指示系统的工作状态,对于较为复杂的设计,建议使用示波器或 SignalTapII嵌入式逻辑分析仪辅助进行调试;

一般情况下: FPGA 的硬件系统中,只要在 QuartusII环境下能够检测到器件或者正常下载,即可正常运行。

在 MSP430+FPGA 或 DSP+FPGA 协同处理的硬件系统设计中,用户需要自行设计稳定可靠、操作使用方便的接口板。

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

35

14 、 QuartusII 软件功能导论 QuartusII 是 Altera 的综合开发工具,它集成了

Altera 的 FPGA/CPLD 开发流程中所涉及的所有工具和第三方软件接口;

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

36

QuartusII 高级应用 完成常规的逻辑设计输入、编译、综合、下载; 使用 QuartusII 软件,结合 Altera 公司 Cyclone 或 Stratix

系列器件,可成功使用 Altera 提供的 SignalTapII嵌入式逻辑分析仪,观测芯片内部信号的工作状态;

应用 LPM_ROM宏模块; 定制 LPM_RAM/FIFO; 调用 LPM嵌入式锁相环(需芯片支持); 使用 IP核,实现如 FIR 数字滤波器、 FFT离散信号快速傅里叶变换、 FSK 等;

进行流水线乘法器设计; Matlab/DSP Builder 设计。

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

37

使用 FPGA 从事数字系统设计的三阶段:1 、常规逻辑功能描述的实现;

指常规数字逻辑器件,如 3-8 线译码器 74LS138 ,二进制计数器 74LS161 ,移位寄存器 74LS194 等;

2 、时序产生及控制、小型数字系统的实现; 如用状态机完成 AD 信号的采集,产生 PWM 时序控制步进电

机简易数字频率计、交通灯、数字种系统的实现等;

3 、算法功能 /综合系统的实现 FFT算法实现、频谱分析等。