0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA内部详细架构

FPGA研究院 来源:FPGA研究院 作者:FPGA研究院 2022-10-20 09:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

b851a6f2-5018-11ed-a3b6-dac502259ad0.png

b86c1154-5018-11ed-a3b6-dac502259ad0.png

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

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

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

b881998e-5018-11ed-a3b6-dac502259ad0.png

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输入查找表类似于一个容量为 64bits的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 位查找表。

b893fdd6-5018-11ed-a3b6-dac502259ad0.png

b8aae65e-5018-11ed-a3b6-dac502259ad0.png

b8c6dec2-5018-11ed-a3b6-dac502259ad0.png

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。

b9231e94-5018-11ed-a3b6-dac502259ad0.png

b9441dec-5018-11ed-a3b6-dac502259ad0.png

b958cdf0-5018-11ed-a3b6-dac502259ad0.png

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

b980ee98-5018-11ed-a3b6-dac502259ad0.png

b9993764-5018-11ed-a3b6-dac502259ad0.jpg

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)。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630189
  • 电压
    +关注

    关注

    45

    文章

    5757

    浏览量

    120954
  • 选择器
    +关注

    关注

    0

    文章

    110

    浏览量

    15053
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于DSP与FPGA异构架构的高性能伺服控制系统设计

    DSP+FPGA架构在伺服控制模块中的应用,成功解决了高性能伺服系统对实时性、精度和复杂度的多重需求。通过合理的功能划分,DSP专注于复杂算法和上层控制,FPGA处理高速硬件任务,两者协同实现了传统
    的头像 发表于 12-04 15:38 86次阅读
    基于DSP与<b class='flag-5'>FPGA</b>异构<b class='flag-5'>架构</b>的高性能伺服控制系统设计

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?

    芯源MCU架构是不是基本都是ARM架构?还有其他的架构吗?
    发表于 11-20 06:21

    嵌入式和FPGA的区别

    ,芯片内部的门电路连接在出厂时就已固定,无法更改,它们的功能是通过软件编程也就是嵌入式软件来实现的。 FPGA(现场可编程门阵列) 则是一种可编程逻辑器件,其硬件结构可以通过编程来配置,实现各种
    发表于 11-19 06:55

    如何使用FPGA实现SRIO通信协议

    本例程详细介绍了如何在FPGA上实现Serial RapidIO(SRIO)通信协议,并通过Verilog语言进行编程设计。SRIO作为一种高速、低延迟的串行互连技术,在高性能计算和嵌入式系统中广
    的头像 发表于 11-12 14:38 4928次阅读
    如何使用<b class='flag-5'>FPGA</b>实现SRIO通信协议

    如何自己设计一个基于RISC-V的SoC架构,最后可以在FPGA上跑起来?

    如何自己设计一个基于RISC-V的SoC架构,最后可以在FPGA上跑起来
    发表于 11-11 08:03

    如何利用Verilog HDL在FPGA上实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRAM接口模块
    的头像 发表于 10-22 17:21 3954次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上实现SRAM的读写测试

    【VPX650 】青翼凌云科技基于 VPX 系统架构的 VU13P FPGA+ZYNQ SOC 超宽带信号处理平台

    VPX650 是一款基于 6U VPX 系统架构的 VU13P FPGA + XC7Z100 SOC 超宽带信号处理平台,该平台采用一片 Xilinx 的 Virtex UltraScale+
    的头像 发表于 10-16 10:48 297次阅读
    【VPX650 】青翼凌云科技基于 VPX 系统<b class='flag-5'>架构</b>的 VU13P <b class='flag-5'>FPGA</b>+ZYNQ SOC 超宽带信号处理平台

    FPGA+DSP/ARM架构开发与应用

    自中高端FPGA技术成熟以来,FPGA+DSP/ARM架构的硬件设计在众多工业领域得到广泛应用。例如无线通信、图像处理、工业控制、仪器测量等。
    的头像 发表于 10-15 10:39 3658次阅读
    <b class='flag-5'>FPGA</b>+DSP/ARM<b class='flag-5'>架构</b>开发与应用

    Altera Agilex™ 3 FPGA和SoC FPGA

    3器件将Altera Hyperlex FPGA架构集成到这些较小器件中,与以前的成本优化型系列Cyclone V以及更高速收发器相比,性能提高了1.9倍,并为LPDDR4增加了内存支持。小尺寸对于
    的头像 发表于 08-06 11:41 3660次阅读
    Altera Agilex™ 3 <b class='flag-5'>FPGA</b>和SoC <b class='flag-5'>FPGA</b>

    FPGA调试方式之VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设计的运行状态并修改其行为。VIO IP核提供
    的头像 发表于 06-09 09:32 3092次阅读
    <b class='flag-5'>FPGA</b>调试方式之VIO/ILA的使用

    Xilinx Ultrascale系列FPGA的时钟资源与架构解析

    Ultrascale是赛灵思开发的支持包含步进功能的增强型FPGA架构,相比7系列的28nm工艺,Ultrascale采用20nm的工艺,主要有2个系列:Kintex和Virtex
    的头像 发表于 04-24 11:29 2078次阅读
    Xilinx Ultrascale系列<b class='flag-5'>FPGA</b>的时钟资源与<b class='flag-5'>架构</b>解析

    请问STM32访问FPGA内部SRAM部分区域为何只能读不能写?

    采用STM32F427+FPGA+Flash。 STM32通过FMC总线访问FPGA内部SRAM,起始地址为0x60000000; Flash中存储FPGA的配置数据,STM32和
    发表于 03-12 07:59

    MRAM存储替代闪存,FPGA升级新技术

    优化的架构设计和成熟的制程技术,具备内置的硬擦除器、错误检测和校正机制,为用户提供了可靠的开发环境。用户可利用最新的Radiant工具,直接实现MRAM的编程接口,支持多种存储容量和数据速率。利用这些FPGA器件,用户可以受益于低功耗F
    发表于 03-08 00:10 1618次阅读

    fpga和cpu的区别 芯片是gpu还是CPU

    型的芯片,它们在结构、功能、应用场景等方面存在显著差异。 结构与灵活性 FPGAFPGA是一种可编程逻辑器件,其内部由大量的可编程逻辑单元(CLB)、输入/输出模块(IOB)、可编程互连资源
    的头像 发表于 02-01 14:57 2994次阅读

    FPGA+GPU+CPU国产化人工智能平台

    算法架构可快速移植,接口灵活搭配,具备部署灵活、功耗和算力性价比高、支持人工智能推理应用部署等特点。FPGA+GPU+CPU多核异构平台架构示意图前面板实物图前面板
    的头像 发表于 01-07 16:42 1737次阅读
    <b class='flag-5'>FPGA</b>+GPU+CPU国产化人工智能平台