官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师
您的当前位置:主页 > 教程中心 > 认识FPGA >

FPGA基础知识

发布时间:2022-12-29   作者:fpga王子 浏览量:
一、FPGA的最基本单元
1)查找表(LUT) (组合逻辑单元)
LUT指显示查找表(Look-Up-Table),本质上就是一个RAM。它把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。
2)D 触发器 (时序单元)
3)基于 SRAM 工艺,内部结构为查找表

二、FPGA的物理结构
目前主流 FPGA 主要 基于 SRAM 工艺查找表技术。 FPGA 芯片主要由以下模
块构成。
可编程输入输出单元(IOB)简称 IO 单元,为芯片与外接电路的接口部分,
完成不同电气特性下对输入/输出信号的驱动与匹配要求。

1)IOB
A、FPGA 的 IOB 被划分成若干个组(bank) ,每个 bank 的接口标准由其接
口电压 VCCO 决定,一个 bank 只能有一种 VCCO,但不同 bank 的 VCCO 可以
不同。
B、HR IO 电压范围 1.0~3.3V,HP IO 电压范围 1.0~1.8V。
C、所有的输入和输出都支持 DDR 双数据率。
D、任何一个输出和输入都可单独配置到最大为 1250 个 ps 的延时,其分辨
率为 5-15 个 ps,实现这个延时的原语是 IDELAY 和 ODELAY 单元。在配置时
设置延迟步长的数目, 也可在使用时递增或者递减。 另外将 IDELAY 和 ODELAY
级联在一起,可以使得单一方向达到两倍的延时。
E、ISEDES/OSEDES

2)可配置逻辑块(CLB )
CLB 是 FPGA 基本逻辑单元,CLB 由多个(一般 4 个或 2 个)相同的 Slice
和附加逻辑构成。 每个 CLB 模块不仅实现组合逻辑、 时序逻辑 、 还可以 配制成
分布式 RAM (sliceM )和分布式 ROM。Slice 是基本逻辑单位,实现加、乘等
算术逻辑以及进位逻辑等。
1 个 CLB 包括 2 个 Slice(SliceL 和 SliceM) ,每个 slice 都含有4 个 6 输入查找表 (LUT) 、 3 个多路复用器、 8bit 进位链、 8 个 DFF。 其中 SliceM较 SliceL 增加了基于查找表的分布式 RAM 和移位寄存器。 每个 CLB 中都包含 SLiceL,但并不是每个 CLB 中都包含 SliceM,整个一块V5 芯片中的 SliceM 和 SliceL 的比例为 1:3,且 SliceM 的放置有一定的规则。

3)数字时钟管理模块(DCM )
FPGA 提供数字时钟管理和相位环路锁定,相位环路锁定能提供精确的时钟
综合,且能降低抖动,并实现过滤功能。
每个 IO 组包含一个时钟管理单元 (Clock Management Tile, CMT) , 每个 CMT
包含:
A、 混合模式时钟管理器 (Mixed-mode Clock Manager, MMCM) , 分频:
在送往相位比较器之前,对 VCO 的输出频率进行分频。
B、 两个相位锁相环(phase Lock Loop) ,主要直连时钟 IO,并生成倍频
或分频时钟。
C、 PLL 比 MMCM 的特性要少得多, MMCM 主要用于宽范围频率的合
成、内部或者外部时钟的抖动过滤器。

4)嵌入式块 RAM (BRAM )
块 RAM 可被配置成单端口 RAM、双端口 RAM、内容地址存储器(CAM)
以及 FIFO 等常用存储结构。CAM 存储器在其内部的每个存储单元中都有一个
比较逻辑,写入 CAM 中的数据会和内部的每个数据进行比较,并返回与端口数
据相同的所有数据的地址,因为在路由的地址交换器中有广泛的应用。

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

6)底层内嵌功能单元
主要指 DLL(Delay Locked Loop) 、PLL、dsp 和 cpu 等处理软核。DLL 和
PLL 功能类似,可完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移
相等功能。
内嵌专用硬核如为了提高 FPGA 的乘法速度的的专用乘法器、串并收发器
(SERDES) 。

三、FPGA 最小系统
一般来说 FPGA 的最小系统主要包括:FPGA 芯片、jtag 下载电路、外部时
钟、复位电路(program B?) 、flash 和电源。其中由于 FPGA 采用的是 SRAM
工艺,因此断电后程序会消失,因此 flash 存储配置信息。

四 、块 RAM 和分布式 RAM
分布式 RAM 用 LUT 实现,用于实现少量数据的存储和缓存,存取速度高于
块状 RAM。 块状 RAM 是内嵌于 FPGA 的, 容量较大, 18k 为一块, 有若干块,
可实现双口 RAM,常用于大量数据存取,也用于不同数据宽度的转换,也可以
配置成 fifo 使用。
用分布式 RAM 时其实要用到其所在的 SliceM, 所以要占用其中的逻辑资源;
而 Block RAM 是单纯的存储资源,但是要一块一块的用,不像分布式 RAM 想
要多少 bit 都可以。 用户申请存储资源, FPGA 先提供 Block RAM, 当 Block RAM
数量不够时再用分布式 RAM 补充。
B-RAM (Blcok RAM) 是使用FPGA中的整块双ram资源, D-RAM (Distributed
RAM)则是拼凑起 FPGA 中的查找表形成。一般当您要用的 RAM 是小的,时序要求不高的场合要用 D-RAM,节省资源。
并不适用 B-RAM 就一定性能好, FPGA 中的资源位置是固定的, 例如 BRAM
就是一列一列分布的,这就可能造成用户逻辑和 B-RAM 之间的 route 延时比较
长。举个简单例子,在大规模 FPGA 中,如果用光所有的 B-RAM 性能一般会下
降,甚至出现 route 不通的情况,就是这个原因。灵活的运用 B-RAM 和 D-RAM
可以有效利用 FPGA 资源,提升性能,如果需要用较多的 B-RAM ,合理规划布
局也可以提高性能们可以使用 Planahead 进行布局规划。
D-RAM 可以使纯组合逻辑,即给出地址马上出数据,也可以加上 register 变
成有时钟的 RAM,而 B-RAM 一定是有时钟的。

五、FPGA 、DSP 、ARM 、单片机等区别
1)FPGA 有强大的数据处理能力,能并行处理多路高速数据流,但成本高;
2)DSP 主频高、速度快、功耗大、控制能力差,主要用于图像处理、加密
解密等复杂计算高端系统中,用途专一;
3)ARM 优势不在于主频,而在于片上外设较丰富,适合各种嵌入式系统,
用来跑界面和应用程序,体现在控制;
4)单片机价格低廉,便于开发、擅长中断处理。

六、FPGA 与 CPLD
整个可编程逻辑器件的发展 是:
1)PAL(Programmable Array Logic 可编程阵列逻辑) :采用熔断丝技术,只可一
次编程;
2)GAL(Generic Array Logic 通用逻辑阵列) :电可擦除功能,可重复性编程,
又称 PLD;
3)CPLD(Complex Programmable Logic Device 复杂可编程逻辑器件) :将大量
PLD 集成在一起,产品工艺一般是基于 E2ROM 和 FLASH 工艺,内部结构
为基于乘积项(Product term) ;
4)FPGA(Field-Programmable Gate Array 现场可编程门阵列) :以硬件描述语言
(verilog)所完成的电路设计,经过简单的电路综合和布局,快速的烧录到
FPGA 进行测试,是现代 IC 设计验证的技术主流。产品基于 SRAM 工艺,
内部结构基于查找表(Look up Table) 。

七、FPGA 与 CPLD 的区别
FPGA 优势:
1)与 CPU、DSP 相比,FPGA 的数据处理能力更强,可以同时并行处理多
个大流量的数据。
2)与 ASIC(即具有专用功能的芯片,如 LDO、存储器等)相比,可用户定

制,但成本高。

FPGA 缺点:
1)成本高。
2)没有 cpu 顺序处理算法的实现方便。

明德扬最近制作了FPGA知识点分享,欢迎进来学习交流

打开抖音,扫码学习更多FPGA技巧!

上一篇:FPGA开发流程
下一篇:FPGA专业术语
   拓展阅读