目录
前言
本文将带大家简单了解FPGA及其基本结构,还有FPGA的优势何在。
一、FPGA到底是什么
FPGA的全称是Field Programmable Gate Array,即现场可编程门阵列,它其实是一个可重复编程的数字电路芯片,其内部有大量(高达上千个)可配置逻辑块。因此你可以在任何应用场景中,利用其可重置布线的电路特点,按照你所需要实现的功能来配置这些逻辑块,而配置就是通过编程技术实现。简单来讲,FPGA就是一个可以通过编程来改变其内部结构的逻辑器件。
图1.1 什么是FPGA
二、FPGA的基本结构
FPGA主要由三部分组成,包括实现电路需求的可配置逻辑块CLB(Configurable Logic Block)、提供外部接口的可编程输入/输出块IOB(Input/Output Block)、连接前两种块的布线资源块。
图2.1 FPGA基本组成要素
但 为了提高运算效率,FPGA上还会嵌入其他硬件电路块,例如DSP、嵌入式内存RAM、完整的时钟管理模块。
1.可配置逻辑块(CLB)
FPGA的可编程逻辑单元几乎都是由查找表LUT(Look Up Table)和寄存器(Register)组成。LUT一般为4输入,主要完成纯组合逻辑的功能。而内部寄存器结构相当灵活,可配置为带同步、异步复位或置位、时钟使能的触发器(FF,Flip Flop),也可配置为锁存器(Latch)。FPGA一般依赖寄存器完成同步时序逻辑设计。
最经典基本可编程逻辑单元由实现组合逻辑的电路的查找表、实现时序电路的触发器、数据选择器构成。而数据选择器在存储单元M0的控制下决定输出查找表的值还是输出FF中存储的值。
图2.1.1 基本CLB的组成
2.可编程输入输出块(IOB)
IOB主要负责器件的I/O引脚与逻辑块之间的接口部分,其放置在芯片的外围部分。FPGA的I/O除了固定用途的电源、时钟等专用引脚,还有用户可以配置的用户I/O。I/O块具有输入/输出缓冲、输出驱动、信号方向控制、高阻抗控制等功能,可以使输入/输出信号能在FPGA阵列内的逻辑块和I/O块间按指定方式传输。I/O块里还有触发器,可以锁存输入/输出信号。
3.布线资源块
布线资源连通FPGA内部所有单元,连线的长度和工艺决定了信号在连线上的驱动能力和传输速度。有以下三种布线资源可供利用。
(1)全局性的专用布线资源:用来完成器件内部的全局时钟和全局复位\置位的布线。
(2)长线资源:完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线。
(3)短线资源:完成基本逻辑单元之间的逻辑互联和布线。
(4)在基本逻辑单元内部还存在各式各样的布线资源和专用时钟、复位等控制信号线。
三、FPGA的优点
1.可重构:加载一个新的设计方案只需要几百毫秒,利用可重复编程的特点可以减少硬件的开销。
2.并行度高:主要是通过并发和流水两种技术实现,并发是重复分配计算资源,使得多个模块可以同时独立进行;流水是将任务分段,段与段之间同时执行。这样一来大大提高了运算速率,在一个时钟周期内完成更多的任务。
3.抗干扰能力强
.
参考资料
2.
[日]田野英晴-《FPGA原理和结构》