首页 > 技术 > 内容

FPGA内部详细架构解析

时间:2025-12-01  作者:Diven  阅读:0

FPGA 芯片整体架构如下所示,大体按照时钟域划分的,即根据不同的工艺、器件速度和对应的时钟进行划分:

FPGA 内部详细架构又细分为如下六大模块:

1、可编程输入输出单元(IOB)(Input Output Block)

为了便于管理和适应多种电器标准,FPGA 的 IOB 被划分为若干个组(Bank),每个 Bank 的接口标准由其接口电压 VCCO 决定,一个 Bank 只能有 VCCO,但不同 Bank 的 VCCO 可以不同。只有相同电气标准和物理特性的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。

2、可配置逻辑块(CLB)(Configurable LogIC Block)

FPGA 的基本可编程逻辑单元是 CLB,而一个 CLB 是由查找表、数据选择器、进位链、寄存器组成的。查找表和多路选择器完成组合逻辑功能,寄存器(可配置成触发器锁存器),完成时序逻辑功能。在赛灵思公司公司的 FPGA 器件中,一个 CLB 由多个(一般为 4 个或 2 个)相同的 SlICe 和附加逻辑构成。

Slice 又分为 SLICEL(Logic)和 SLICEM(Memory)。SLICEL 和 SLICEM 内部都各自包含了 4 个 6 输入查找表(LUT6)、3 个数据选择器(Mux)、1 个进位链(Carry Chain)和 8 个触发器(Flip-Flop):

查找表:6 输入查找表类似于一个容量为 64 bits 的 ROM(26 = 64)(工艺上是珍贵的 SRAM 资源),6 表示地址输入位宽为 6 bits,存储的内容作为输入对应的输出结果的逻辑运算,并在 FPGA 配置时载入。

对于查找表:目前主流 FPGA 都采用了基于 SRAM 工艺的查找表(LUT)(Look Up Table)结构。LUT 本质上就是一个 RAM。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能结果,列成一个真值表的形式,并把真值表(即输入对应的输出逻辑)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的RAM。

数据选择器:数据选择器一般在 FPGA 配置后固定下来。

进位链:超前进位加法器,方便加法器的实现,加快复杂加法的运算。

寄存器:可以配置成多种工作方式,比如 FF 或 Latch,同步复位或异步复位、复位高有效或低有效等等。

SLICEM 的结构与 SLICEL 的结构类似,最大的区别是使用了一个新的单元代替 SLICE 中的查找表。这个新的单元可以配置为 LUT、RAM、ROM 或移位寄存器(SRL16 或 SRL32),从而可以实现 LUT 的逻辑功能,也能做存储单元(多个单元组合起来可以提供更大的容量)和移位寄存器(提供延迟等功能)。

其中 SLICEM 中 LUT 的输入端都地址和写地址为 8 位,高两位可能是将 4 个 LUT 并联一起作为一个大的 RAM 或 ROM 时用,同时 SLICEL 和 SLICEM 的 LUT 均可设为 5 位或 6 位查找表。

3、嵌入式块 RAM(BRAM)(Block RAM)

块 RAM 可被配置为 ROM、RAM 以及 FIFO 等常用的存储模块。区别于分布式 RAM(Distributed RAM)(主要由 LUT 组成的,不占用 BRAM 的资源)。分布式 RAM 也可以被配置为 ROM、RAM 以及 FIFO 等常用的存储模块,但是性能不如 BRAM,毕竟 BRAM 才是专用的,一般是 BRAM 资源不够用的情况下才使用分布式 RAM。反之,BRAM 由一定数量固定大小的存储块构成的,使用 BRAM 资源不占用额外的逻辑资源,并且速度快,不过使用的时候消耗的 BRAM 资源只能是其块大小的整数倍,就算你只存了 1 bit 也要占用一个 BRAM。

一个 BRAM 的大小为 36K Bits,并且分成两个小的 BRAM 各自为 18K Bits,排列成又分为上下两块,上半部分为 RAMB18 下半部分为 RAMBFIFO36。在 FIFO 例化的时候可以将 BRAM 设置为 FIFO 时,不会使用额外的 CLB 资源,并且这部分 RAM 是真双口 RAM。

FPGA 所采用的逻辑单元阵列 LCA(Logic Cell Array)内部所包括的可配置逻辑模块 CLB(Configurable Logic Block)、 输出输入模块 IOB(Input Output Block)和内部互连线(Interconnect)三个部分。前面两种已经介绍完毕,接下来介绍第三种:

4、互连线资源(Interconnect)

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

5、底层内嵌功能单元

内嵌功能模块主要指 DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP(Digital System Processing)(数字信号处理)、DCM(Digital Clock Manager)(提供数字时钟管理和相位环路锁定)、和 CPU(Central Processing Unit)等等软处理核(比如 MicroBlaze 的软核)。现在越来越丰富的内嵌功能单元,使得单片 FPGA 成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向 SoC 平台过渡。

关于 DCM:DCM 是 FPGA 内部处理时钟的重要器件,作用主要有三个:消除时钟偏斜(Clock De-Skew)、频率合成(Frequency Synthesis)和相位调整(Phase Shifting)。

DCM 的核心器件是数字锁相环(DLL,Delay Locked Loop)。是由一串固定时延的延时器组成,每一个延时器的时延为 30 皮秒,也就是说,DCM 所进行的倍频、分频、调相的精度为 30 皮秒。

对于时钟,我们最好不要将两个时钟通过一个与门或者或门(逻辑操作),这样的话就很可能会产生毛刺,影响系统稳定性,如果要对时钟进行操作,例如切换时钟等,请使用 FPGA 内部的专用器件“BUFGMUX”。

6、内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指 FPGA 处理能力强大的硬核(比如 ARM Cortex-A9 的硬核),等效于 ASIC 电路。为了提高 FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。例如为了提高 FPGA 的乘法速度,主流的 FPGA 中都集成了专用乘法器,而为了适用通信总线与接口标准,很多高端的 FPGA 内部都集成了串并收发器(Serdes),可以达到数十 Gbps 的收发速度(比如 FMC)。

审核编辑:汤梓红

猜您喜欢


LED灯具已经成为现代照明的主流,而选择合适的LED驱动器则是确保LED灯具稳定、高效工作的关键。许多人对如何选择LED驱动器感到困惑,其实,只要掌握几个关键点...
2024-09-21 00:00:00
变容二极管,又称为可变电容二极管,是利用其结电容随施加电压变化而变化的半导体器件。应用于调谐电路、滤波器和频率合成器等领域,因其具有较高的灵敏度和稳定性。了解变...
2025-04-07 19:00:02
贴片电阻上的字母表示其阻值,解读方法如下:三位数字表示法: 前两位数字是有效数字,第三位数字表示10的几次方。例如,「472」 表示 47 × 10² Ω = ...
2025-04-14 15:04:03
PFC升压为什么可以校正功率因数?解释PFC升压为什么可以校正功率因数之前,我们需要先了解一些基本概念:1. 功率因数: 功率因数 (PF) 是衡量电力系统效率...
2024-01-05 00:00:00
自封袋和平口袋是日常生活中常见的包装材料,在保护物品、方便存储和运输方面有着着重要作用。自封袋通常由透明塑料制成,具备一个特殊的封口设计,可以通过拉合或按压的方...
2019-06-24 00:00:00
三通是指在管道系统中用于连接三条管道的配件,通常用于改变流体的流向或分配流体。结构通常呈“Y”形或“T”形,能够有效地将流体从一个管道分流到两个不同的方向,或将...
2011-03-02 00:00:00
贴片电阻在电子电路中无处不在,快速识别其型号对于电路设计、维修和调试至关重要。本快速识别表将帮助你轻松解读贴片电阻上的标识,了解其阻值和容差。最常见的标识方式是...
2025-04-14 15:03:19
贴片电阻体积微小,识别其阻值和功率大小,主要依靠表面的数字编码或色环标识。对于三位数字编码,前两位表示有效数字,第三位表示10的幂次方,例如「102」代表10×...
2024-11-26 11:29:37
保险丝作为重要的保护元件,有着着不可替代的作用。LGL作为一家专业生产保险丝的品牌,其产品系列在市场上受到关注。那么,LGL保险丝系列都有哪些品牌?本文将为您详...
2022-10-21 17:45:30
TO-263(也称为DDPAK)是一种常见的表面贴装封装类型,广泛应用于功率器件,如电源管理IC、功率MOSFET和其他高功率电子组件。随着电子设备对于小型化和...
2025-03-07 00:09:54