FPGA 的工作原理、基本特点与芯片结构组成

2017-08-18 79 0

FPGA(现场可编程门阵列)采用了逻辑单元阵列(LCA)的概念,内部包括可配置逻辑模块(CLB)、输入输出模块(IOB)和内部连线三个部分。FPGA 利用小型查找表(16×1 位 RAM)实现组合逻辑,每个查找表的输出连接到一个 D 触发器的输入端,触发器再驱动其他逻辑电路或驱动 I/O,由此构成既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块;这些模块之间用金属连线互相连接,或连接到 I/O 模块。

FPGA 的逻辑功能通过向内部静态存储单元加载编程数据实现:存储单元中的值决定了逻辑单元的逻辑功能以及各模块之间、模块与 I/O 之间的连接方式,并最终决定 FPGA 所能实现的功能。加电时,FPGA 将配置存储器中的数据读入片内编程 RAM,配置完成后进入工作状态;掉电后 FPGA 恢复成“白片”,内部逻辑关系消失,因此 FPGA 能够反复使用。早期 FPGA 的编程无须专用编程器,用通用的 EPROM、PROM 编程器即可;修改 FPGA 功能时只需更换一片配置存储器,同一片 FPGA 配以不同的编程数据即可产生不同的电路功能。由于 FPGA 的工作状态由片内 RAM 中的配置数据设置,工作时需要对片内 RAM 进行编程,用户可以根据不同的配置模式采用不同的编程方式。

一、FPGA 的基本特点

(1)采用 FPGA 设计 ASIC 电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片;
(2)FPGA 可以作为其他全定制或半定制 ASIC 电路的中试样片;
(3)FPGA 内部有丰富的触发器和 I/O 引脚;
(4)FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一;
(5)FPGA 采用高速 CMOS 工艺,功耗低,可以与 CMOS、TTL 电平兼容。

可以说,FPGA 芯片是小批量系统提高系统集成度和可靠性的最佳选择之一。

二、FPGA 的芯片结构

FPGA 的工作原理、基本特点与芯片结构组成

图 1 FPGA 芯片的内部结构

目前主流的 FPGA 仍基于查找表技术,性能已远远超出早期版本,并且整合了 RAM、时钟管理和 DSP 等硬核(ASIC 型)模块。FPGA 芯片主要由 7 部分组成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式 RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。

1. 可编程输入输出单元(IOB)

可编程输入/输出单元简称 I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。为了便于管理和适应多种电器标准,FPGA 的 IOB 被划分为若干个组(bank),每个 bank 的接口标准由其接口电压 VCCO 决定:一个 bank 只能有一种 VCCO,但不同 bank 的 VCCO 可以不同。只有相同电气标准的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。

FPGA 的工作原理、基本特点与芯片结构组成

图 2 I/O 块内部结构

FPGA 的工作原理、基本特点与芯片结构组成

图 3 典型的 IOB 内部结构示意

2. 可配置逻辑块(CLB)

CLB 是 FPGA 内的基本逻辑单元,其实际数量和特性依器件不同而不同。每个 CLB 都包含一个可配置开关矩阵,该矩阵由 4 或 6 个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵高度灵活,可以配置为组合逻辑、移位寄存器或 RAM。

3. 完整的时钟管理

时钟管理模块为 FPGA 内部提供稳定、低抖动的时钟资源,通常由数字时钟管理单元(DCM)、锁相环(PLL)等构成,可完成时钟的倍频、分频、占空比调整和相位调整,是同步时序电路正常工作的基础。

4. 嵌入式块 RAM(BRAM)

大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA 的应用范围和灵活性。块 RAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器(CAM)以及 FIFO 等常用存储结构。CAM 在其内部的每个存储单元中都有一个比较逻辑,写入的数据会与内部每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除块 RAM 之外,还可以把 FPGA 中的 LUT 灵活配置成 RAM、ROM 和 FIFO 等结构。在实际应用中,芯片内部块 RAM 的数量也是选择芯片的一个重要因素。

5. 丰富的布线资源

布线资源连通 FPGA 内部的所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部布线资源丰富,按工艺、长度、宽度和分布位置的不同可分为 4 类:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用于完成芯片 bank 间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式布线资源,用于专有时钟、复位等控制信号线。

实际设计中,设计者不需要直接选择布线资源,布局布线器会根据输入逻辑网表的拓扑结构和约束条件自动选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法与设计结果有着密切而直接的关系。

6. 底层内嵌功能单元

内嵌功能模块主要指 DLL(延迟锁定环)、PLL(锁相环)、DSP 和 CPU 等软处理核。日益丰富的内嵌功能单元使单片 FPGA 成为系统级的设计工具,具备软硬件联合设计的能力,并逐步向 SoC 平台过渡。DLL 和 PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。

7. 内嵌专用硬件模块

内嵌专用硬件模块指嵌入在 FPGA 内部、由芯片厂商固化的专用功能电路,例如硬件乘法器、乘加器(MAC)单元、高速串行收发器、PCI Express 硬核以及微处理器硬核等。使用这些硬核可以在不占用可编程逻辑资源的情况下实现高性能功能,是 FPGA 向片上系统发展的重要支撑。

相关文章

压敏电阻的参数、特性与应用
基于 STC12C 与 SIM300 的智能家电防盗系统电路设计
基于 nRF24L01 与 DHT11 的无线温湿度测试系统电路设计
电冰箱电子温控器的原理与半自动除霜电路
基于 586-Engine 的无人机飞行控制器电路设计
三极管开关电路的改进接法:加速电容、图腾柱与驱动电路

发布评论