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

    关注

    1602

    文章

    21320

    浏览量

    593194
  • 电压
    +关注

    关注

    45

    文章

    5082

    浏览量

    114414
  • 选择器
    +关注

    关注

    0

    文章

    103

    浏览量

    14322
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    fpga芯片架构介绍

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

    fpga是什么架构

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

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

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

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

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

    Xilinx FPGA芯片内部时钟和复位信号使用方法

    如果FPGA没有外部时钟源输入,可以通过调用STARTUP原语,来使用FPGA芯片内部的时钟和复位信号,Spartan-6系列内部时钟源是50MHz,Artix-7、Kintex-7等
    的头像 发表于 10-27 11:26 1085次阅读
    Xilinx <b class='flag-5'>FPGA</b>芯片<b class='flag-5'>内部</b>时钟和复位信号使用方法

    FPGA内部接口设计

    FPGA设计中,我们通常采用的都是“自顶向下”的设计方法,即现有顶层设计,再有细节设计。比如先有整个项目的功能框图、数据流程图等,然后再细分功能到一级模块,每个一级模块再细分到二级、三级甚至更低
    的头像 发表于 09-07 17:05 413次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>内部</b>接口设计

    fpga内部主要结构及其功能分析(Kintex-7FPGA内部结构)

    Kintex-7 FPGA内部结构相比传统FPGA内部结构嵌入了DSP48E1,PCIE,GTX,XADC,高速IO口等单元,大大提升了FPGA
    发表于 08-24 09:26 1563次阅读
    <b class='flag-5'>fpga</b><b class='flag-5'>内部</b>主要结构及其功能分析(Kintex-7<b class='flag-5'>FPGA</b><b class='flag-5'>内部</b>结构)

    FPGA芯片内部结构解析(1)

    以Xilinx主流的7系列为例,一颗FPGA内部通常都会有数千到数十万不等的可配置逻辑块(Configurable Logic Block,简称CLB)
    发表于 08-15 16:09 575次阅读
    <b class='flag-5'>FPGA</b>芯片<b class='flag-5'>内部</b>结构解析(1)

    FPGA架构演进之路 FPGA架构设计原则和实现挑战

    成本。FPGA架构的设计涉及许多不同的设计选择,从高级架构参数到晶体管级实现细节,目标是制造高度可编程的器件,同时最小化可重新配置的面积和性能成本。随着应用需求和工艺技术能力的不断发展,FPG
    发表于 08-11 09:52 1056次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>架构</b>演进之路 <b class='flag-5'>FPGA</b><b class='flag-5'>架构</b>设计原则和实现挑战

    FPGA详细开发流程

      FPGA详细开发流程就是利用 EDA 开发工具对 FPGA 芯片进行开发的过程,所以 FPGA 芯片开发流程讲的并不是芯片的制造流程,区分于 IC 设计制造流程哟(芯片制造流程
    的头像 发表于 07-04 14:37 2755次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>详细</b>开发流程

    浅谈FPGA芯片架构

    FPGA 芯片架构是非常重要的,如果你不了解 FPGA 芯片内部详细架构
    的头像 发表于 07-04 14:36 874次阅读
    浅谈<b class='flag-5'>FPGA</b>芯片<b class='flag-5'>架构</b>

    基石DDPM(模型架构篇),最详细的DDPM架构图解

    DDPM(模型架构篇):也就是本篇文章。在阅读源码的基础上,本文绘制了详细的DDPM模型架构图,同时附上关于模型运作流程的详细解说。本文不涉及数学知识,直观帮助大家了解DDPM怎么用,
    的头像 发表于 06-29 16:32 6446次阅读
    基石DDPM(模型<b class='flag-5'>架构</b>篇),最<b class='flag-5'>详细</b>的DDPM<b class='flag-5'>架构</b>图解

    硬件即代码第五部分:FPGA内部

    电子发烧友网站提供《硬件即代码第五部分:FPGA内部.zip》资料免费下载
    发表于 06-14 15:10 0次下载
    硬件即代码第五部分:<b class='flag-5'>FPGA</b><b class='flag-5'>内部</b>