FPGA原理及芯片结构介绍
FPGA 原理及芯片结构介绍
FPGA 入门知识首先要从FPGA 的定义开始,什么是FPGA 呢,有什么作用这些都是基本需要了解的东西。FPGA 是可编程器件,目前以硬件描述语言(Verilog 或 VHDL) 所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。
FPGA 入门知识还应该包含FPGA 工作原理、FPGA 的基本特点、FPGA 芯片结构等基础的知识,下面小编从以下几个方面来对FPGA 入门知识进行简单的介绍。
FPGA 工作原理
FPGA 采用了逻辑单元阵列LCA 这样一个概念,内部包括可配置逻辑模块CLB 、输出输入模块IOB 和内部连线三个部分。FPGA 利用小型查找表(16×1RAM) 来实现组合逻辑,每个查找表连接到一个D 触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA 的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式, 并最终决定了FPGA 所能实现的功能, 加电时,FPGA 芯片将EPROM 中数据读入片内编程RAM 中,配置完成后,FPGA 进入工作状态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。FPGA 的编程无须专用的FPGA 编程器,只须用通用的EPROM 、PROM 编程器即可。当需要修改FPGA 功能时,只需换一片EPROM 即可。这样,同一片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 芯片结构
2013-8-27 13:45 上传下载附件 (64.96 KB)
目前主流的FPGA 仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM 、时钟管理和DSP) 的硬核(ASIC型) 模块。FPGA 芯片主要由7部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM 、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
1. 可编程输入输出单元(IOB)
可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。为了便于管理和适应多种电器标准,FPGA 的IOB 被划分为若干个组(bank),每个bank 的接口标准由其接口电压VCCO 决定,一个bank 只能有 一种VCCO ,但不同bank 的VCCO 可以不同。只有相同电气标准的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。
I/O块内部结构图
典型的IOB 内部结构示意图
2. 可配置逻辑块(CLB)
CLB 是FPGA 内的基本逻辑单元。CLB 的实际数量和特性会依器件的不同而不同,但是每个CLB 都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些 选型电路(多路复用器等) 和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM 。
4. 嵌入式块RAM(BRAM)
大多数FPGA 都具有内嵌的块RAM ,这大大拓展了FPGA 的应用范围和灵活性。块RAM 可被配置为单端口RAM 、双端口RAM 、内容地址存储器 (CAM)以及FIFO 等常用存储结构。CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM 中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM ,还可以将 FPGA 中的LUT 灵活地配置成RAM 、ROM 和FIFO 等结构。在实际应用中,芯片内部块RAM 的数量也是选择芯片的一个重要因素。
5. 丰富的布线资源
布线资源连通FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线; 第二类是长线资源,用以完成芯片 Bank 间的高速信号和第二全局时钟信号的布线; 第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线; 第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。
在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。
6. 底层内嵌功能单元
内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP 和CPU 等软处理核。现在越来越丰富的内嵌功能单元,使得单片FPGA 成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC 平台过渡。 DLL 和PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。
7. 内嵌专用硬核
内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA 处理能力强大的硬核(Hard Core),等效于ASIC 电路。为了提高FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA 的乘法速度,主流的FPGA 中都集成了专用乘法器; 为了适用通信总线与接口标准,很多高端的FPGA 内部都集成了串并收发器(SERDES),可以达到数十Gbps 的收发速度。
结束语
了解现场可编程门阵列(FPGA)的一些基本知识对于想要开发和编程用户是十分必要的。本文主要是针对初级的FPGA 爱好者对 FPGA 入门知识进行简单的总结,FPGA 入门需要了解FPGA 的工作原理、基本特点、以及FPGA 芯片的构成和功能模块等各个方面。希望通过阅读笔者的这篇FPGA 入门知识介绍文章可以对想要了解FPGA 的您有所帮助。