带你入门FPGA(FPGA内部资源)
第一章:FPGA内部资源
文章目录
前言
FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。
一、什么是FPGA?
现场可编程门阵列;
(1)FPGA是一种可以重构电路的芯片,是一种硬件可重构的体系结构。Field Programmable Gate Array,中文名是现场可编程门阵列。
(2)通过编程,用户可以随时改变它的应用场景,它可以模拟CPU、GPU等硬件的各种并行运算。
(3)通过与目标硬件的高速接口互联,FPGA可以完成目标硬件运行效率比较低的部分,从而在系统层面实现加速。
二、FPGA内部资源
目前主流的FPGA都采用了SRAM工艺的查找表(LUT)结构,LUT本质上就是个RAM。FPGA内部组成主要有:可编程输入/输出块(I0B)、可配置逻辑块(CLB)、嵌入式块RAM(BRAM)、丰富的布线资源、底层内嵌功能资源、内嵌专用硬核资源等。
1.可编程输入/输出块(I0B)
为了便于管理和适应多种电气标准,FPGA和IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能由一种vcco,但是不同的bank的vcco可以不同。只有相同标准的端口才能连接在一起,vcco电压相同是接口标准的基本条件。
2.可配置逻辑块(CLB)
由查找表和可编程寄存器组成,查找表(LUT)完成纯组合逻辑,内部寄存器可配置成触发器或者锁存器。在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。
3、嵌入式块RAM
(1)可配置成单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO的常用的存储结构。
(2)RAM资源使用详解:Block RAM都有两套访问存储器所需的地址总线、数据总线及控制信号灯信号,因此其既可以作为单端口存储器,也可以作为双端口存储器。需要注意的时访问BRAM需要和时钟同步,异步访问不支持的。
4.丰富的布线资源
(1)布线资源连通FPGA内部的所有单元。而连线的长度和工艺决定信号在连线上的驱动能力和传输速度。主要分为四类:全局布线资源、长线资源、短线资源、分布式布线资源。FPGA中的布局布线资源主要包括三部分:CB、SB和行列连线。
(2)目的:布线资源的目的是为了能够让位于不同位置的逻辑资源块、时钟处理单元、BRAM、DSP和接口模块等资源能够相互通信,从而协调合作,完成所需功能。
5、底层内嵌的功能单元
主要包括DLL(动态链接库)、PLL、DSP、CPU等,现在越来越丰富的内嵌功能单元,使得FPGA称为了系统级的设计工具,时其具备了软硬件联合设计的能力。
6、内嵌专用的硬核资源
内嵌的专用硬核是相对底层软核而言的,指FPGA处理能力强大的硬核,等效于ASIC电路。主要有乘法器、高速收发器、PCle、以太网控制器等。
总结
FPGA设计是逻辑单元阵列内部包括可编程逻辑模块,输入输出模块和内部连线三个部分组成的。用户可以对FPGA内部的这些模块进行配置以实现用户的逻辑。FPGA还具有静态可重复编程,动态系统重构等特性——使得硬件的功能也想软件一样,可以通过编程来修改。FPGA逻辑仿真在标准的服务器上运行验证环境很方便,其编程速度和仿真速度跟数字IC比比较快。