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
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601670
  • 电压
    +关注

    关注

    45

    文章

    5553

    浏览量

    115564
  • 选择器
    +关注

    关注

    0

    文章

    106

    浏览量

    14521
收藏 人收藏

    评论

    相关推荐

    请问PCM3070的pin18(REF)的电压是如何产生的,3070内部的电源架构是怎样的?

    请问PCM3070的pin18(REF)的电压是如何产生的,3070内部的电源架构是怎样的?pin18和pin30(LDO-SELECT)有什么关系??
    发表于 11-08 07:17

    FPGA芯片架构和资源有深入的理解,精通Verilog HDL、VHDL

    岗位职责 1.负责FPGA架构设计、代码编写、仿真等; 2.协同软、硬件工程师完成系统联调和测试; 3.负责项目中FPGA设计的相关文档编写及维护; 任职要求 1.硕士及以上学历,电子、通信
    发表于 09-15 15:23

    FPGA内部架构和设计流程

    之前大多数软件都是与它们各自的硬件一起发布,没有办法对其进行更改。但随着技术的成熟,制造商找到了在现有硬件上更新软件以增加附加功能的方法。
    的头像 发表于 08-06 11:31 1005次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>内部</b><b class='flag-5'>架构</b>和设计流程

    基于FPGA的CCD工业相机系统设计

    基于FPGA的CCD工业相机系统设计是一个综合性的项目,它结合了硬件电路设计、FPGA编程以及图像处理技术。以下是一个详细的系统设计方案,包括设计概述、硬件架构
    的头像 发表于 07-17 11:24 955次阅读

    一文了解FPGA比特流的内部结构

    比特流是一个常用词汇,用于描述包含FPGA完整内部配置状态的文件,包括布线、逻辑资源和IO设置。大多数现代FPGA都是基于SRAM的,包括Xilinx Spartan和Virtex系列。在FP
    的头像 发表于 07-16 18:02 7731次阅读
    一文了解<b class='flag-5'>FPGA</b>比特流的<b class='flag-5'>内部</b>结构

    FPGA的PCIE接口应用需要注意哪些问题

    FPGA上的PCIe接口应用是一个复杂的任务,需要考虑多个方面的问题以确保系统的稳定性和性能。以下是在FPGA的PCIe接口应用中需要注意的关键问题: 硬件资源和内部架构
    发表于 05-27 16:17

    fpga封装技术和arm架构的优缺点

    FPGA封装技术和ARM架构是两个不同的概念,分别属于硬件设计的不同领域。
    的头像 发表于 03-26 15:51 743次阅读

    fpga封装技术和arm架构有什么区别

    FPGA封装技术与ARM架构在多个方面存在显著的区别。
    的头像 发表于 03-26 15:50 660次阅读

    fpga芯片架构介绍

    FPGA(现场可编程门阵列)芯片架构是一种高度灵活和可编程的集成电路架构,它以其独特的结构和功能,在现代电子系统中扮演着至关重要的角色。FPGA芯片
    的头像 发表于 03-15 14:56 692次阅读

    fpga芯片工作原理 fpga芯片有哪些型号

    FPGA芯片的工作原理主要基于其内部的可配置逻辑单元和连线资源。包括以下工作原理: 首先,FPGA内部包含可配置逻辑模块(CLB)、输出输入模块(IOB)和
    的头像 发表于 03-14 17:17 1365次阅读

    fpga是什么架构

    FPGA(现场可编程门阵列)的架构主要由可配置逻辑模块(CLB)、输入/输出模块(IOB)以及可编程互连资源组成。
    的头像 发表于 03-14 17:05 815次阅读

    FPGA时钟内部设计方案

    时钟设计方案 在复杂的FPGA设计中,设计时钟方案是一项具有挑战性的任务。设计者需要很好地掌握目标器件所能提供的时钟资源及它们的限制,需要了解不同设计技术之间的权衡,并且需要很好地掌握一系列
    发表于 01-22 09:30 562次阅读
    <b class='flag-5'>FPGA</b>时钟<b class='flag-5'>内部</b>设计方案

    各种叠层结构的PCB图内部架构设计

    今天画了几张多层PCB电路板内部结构图,用立体图形展示各种叠层结构的PCB图内部架构
    发表于 01-02 10:10 824次阅读
    各种叠层结构的PCB图<b class='flag-5'>内部</b><b class='flag-5'>架构</b>设计

    如何用内部逻辑分析仪调试FPGA

    FPGA内部信号引到引脚,然后用外部的逻辑分析仪捕获数据。然而当设计的复杂程度增加时,这个方法就不再适合了,其中有几个原因。第一是由于FPGA的功能增加了,而器件的引脚数目却缓慢地增长。因此,可用逻辑对I/O的比率减小了,参见
    的头像 发表于 12-20 13:35 518次阅读
    如何用<b class='flag-5'>内部</b>逻辑分析仪调试<b class='flag-5'>FPGA</b>?

    什么是走线的拓扑架构?怎样调整走线的拓扑架构来提高信号的完整性?

    什么是走线的拓扑架构?怎样调整走线的拓扑架构来提高信号的完整性? 走线的拓扑架构是指电子设备内部的信号线路布局方式。它对信号传输的完整性和稳定性有着重要影响。正确的走线拓扑
    的头像 发表于 11-24 14:44 645次阅读