关灯
请选择 进入手机版 | 继续访问电脑版
米联客uisrc 首页 博文 笔记 查看内容
3

米联客(MSXBO)浅读XILINX FPGA CLB单元

摘要: 1.1概述CLB可配置逻辑块是指实现各种逻辑功能的电路,是xilinx基本逻辑单元。在Xilinx FPGA中,每个可配置逻辑块包含2个Slice。每个Slice 包含查找表、寄存器、进位链和多个多数选择器构成。而Slice又有两种不同的逻 ...

1.1概述

CLB可配置逻辑块是指实现各种逻辑功能的电路,是xilinx基本逻辑单元。在Xilinx FPGA中,每个可配置逻辑块包含2个Slice。每个Slice 包含查找表、寄存器、进位链和多个多数选择器构成。而Slice又有两种不同的逻辑片:SLICEM和SLICEL。SLICEM有多功能的LUT,可配置成移位寄存器,或者ROM和RAM。逻辑片中的每个寄存器可以配置为锁存器使用。今天写这篇文章的目的主要是为了让我们搞清楚FPGA重要资源CLB、Slice、LUT。学习的主线是根据XILINX 官方文档” ug474_7Series_CLB.pdf”。

1.2 CLB简介

CLB是用于实现时序电路和组合电路的主要逻辑资源。 每个CLB元素都连接到一个交换矩阵,以访问通用路由矩阵(如下图所示)。 CLB元素包含一对Slice。

         7系列FPGA中的LUT可以配置为具有一个6输入LUT,或者两个5输入LUT(数据输入和地址相同,数据输出独立)。每个5输入LUT的输出都可以选择是否通过触发器(flip-flop)寄存。

一个CLB 等于2个Slice。

一个Slice等于4个6输入LUT+8个触发器(flip-flop)+算数运算逻辑

每个Slice的4个触发器(虽然有8个flip-flop,但是每个LUT分配一个flip-flop)可以配置成锁存器,这样会有4个触发器(flip-flop)未被使用。

这里还有一点需要特别注意的,XILINX FPGA 的slice还不都是长一样的,FPGA中三分之二的slice是SLICEL而剩余的是SLICEM,SLICEM是可以当作分布式64bit-RAM或者32bit的移位寄存器或者2个16bit移位寄存器。通过VIVADO软件或者原语的调用可以利用这些逻辑算数功能和存储功能。

下图展示了以1个CLB为单位的资源

我们经常说到FPGA容量是多少,FPGA器件的容量通常用逻辑单元来衡量,这在逻辑上等同于经典的4输入LUT和触发器。 7系列FPGA逻辑单元和6输入LUT的数量之比为1.6:1。所以,逻辑单元和Slice的数量比是6.4:1

所以当我们再次看到这张表时,Logice Cells的数量和Slies的数量就确定了。

以K7系列的FPGA为例看下面的表,可以看到Slices的数量等于SLICEL+SLICEM。SLICEM是可以用于分布式BRAM或者移位寄存器。SLICEM约占三分一的slices。比如对于7K325T的FPGA,有1600个SLICEM那么,1600X4X64bit=4000Kb的distributed RAM或者2000kb的Shift Register.如果不清楚这里的说明,看下前面关于CLB、Slice、LUT、SLICE和SLICEM的概念。

1.3 功能细节

1.3.1 CLB的排列

赛灵思创建了高级硅模块模块(ASMBL)架构,以使具有不同功能组合的FPGA平台能够针对不同的应用领域进行优化。

通过这种创新,Xilinx提供了更多的器件选择,使客户能够为他们的特定设计选择具有适当特性组合的FPGA。 下图提供了不同类型的基于列的资源的高级描述。

ASMBL体系结构通过以下方式突破了传统的设计障碍:

•消除了几何布局约束,例如I / O数量与阵列大小之间的依存关系。

•通过允许将电源和地线放置在芯slice上的任何位置来增强芯slice上的电源和地线分布。

•允许彼此独立地扩展不同的集成IP块和周围资源。

SSI技术

7系列FPGA通过使用独特的堆叠式硅互连(SSI)技术,进一步提高了集成度。 SSI技术使多个超级逻辑区域(SLR)可以组合在一个无源插入器层上,以创建具有一万多个SLR间连接的单个FPGA。

 

1.3.2 CLB/Slice的配置

下表是一个CLB的资源,每个SLICEM LUT都可以配置为查找表,分布式RAM或移位寄存器。

(1)、注意SLICEL 没有distributed RAM 和 shift registers

 

1.3.3Slice 描述

每个slice包含:

•四个逻辑函数生成器(或查找表)

•8个存储单元

•多功能多路复用器

• 快速进位逻辑

所有slice均使用这些元素来提供逻辑、算术和ROM功能。 此外某些slice还支持两个附加功能:使用分布式RAM存储数据和使用32位寄存器移位数据。 支持这些附加功能的slice称为SLICEM; 其他人称为SLICEL。 SLICEM(如图下图所示)表示在所有slice中找到的元素和连接的超集。 SLICEL如图下所示。 每个CLB可以包含两个SLICEL或一个SLICEL和一个SLICEM。

下图说明了一个SLICEM类型的slice的结构

 

下图说明了一个SLICEL类型的slice的结构

 

1.3.4查找表(LUT)

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构。LUT本质上就是一个RAM。它把数据事先写入RAM后, 每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。

7系列FPGA中的函数发生器实现为六输入查找表(LUT)。slice的4个函数发生器(A,B,C和D)中的每一个都有六个独立输入(A输入A1至A6)和两个独立输出(O5和O6)。 函数发生器可以实现:

•任意定义的六输入布尔函数

•两个任意定义的五输入布尔函数,只要这两个函数共享公共输入

•两个任意定义的布尔函数(3个和2个或更少输入)

六输入功能使用:

•A1-A6输入

•O6输出

两个五输入或更少的函数使用:

•A1–A5输入

•A6驱动高

•O5和O6输出

1.3.5存储单元

每个slice有8个存储元素。

四个可以配置为边沿触发D型触发器或电平敏感锁存器。 D输入可以通过AFFMUX,BFFMUX,CFFMUX或DFFMUX的LUT输出直接驱动,也可以通过AX,BX,CX或DX输入绕过函数发生器的BYPASS slice输入直接驱动。 当配置为锁存器时,当CLK为低电平时,锁存器是透明的。

还有四个额外的存储单元,它们只能配置为边沿触发的D型触发器。 D输入可以由LUT的O5输出驱动,也可以由AX,BX,CX或DX输入的BYPASS slice输入驱动。 当原始的四个存储单元配置为闩锁时,这四个附加的存储单元将无法使用。

slice中的两种配置版本: 4个寄存器和4个寄存器/锁存器

 

1.3.6 Distributed RAM (Available in SLICEM Only)

SLICEM中的函数发生器(LUT)可以实现为称为分布式RAM元素的同步RAM资源。 SLICEM中的多个LUT可以通过各种方式组合起来以存储大量数据。 可在SLICEM中配置RAM元素以实现以下配置:

• Single-Port 32 x 1-bit RAM

• Dual-Port 32 x 1-bit RAM

• Quad-Port 32 x 2-bit RAM

• Simple Dual-Port 32 x 6-bit RAM

• Single-Port 64 x 1-bit RAM

• Dual-Port 64 x 1-bit RAM

• Quad-Port 64 x 1-bit RAM

• Simple Dual-Port 64 x 3-bit RAM

• Single-Port 128 x 1-bit RAM

• Dual-Port 128 x 1-bit RAM

• Single-Port 256 x 1-bit RAM

分布式RAM模块是同步(写)资源。 可以使用触发器在同一片中实现同步读取。 通过使用该触发器,可以通过减少触发器的时钟输出值的延迟来提高分布式RAM的性能。 但是,添加了额外的时钟延迟。 分布式元素共享相同的时钟输入。 对于写操作,必须将由SLICEM的CE或WE引脚驱动的写使能(WE)输入设置为高。

下表显示了每种分布式RAM配置占用的LUT数量(每个slice四个)。 有关可用的分布式RAM原语的详细信息,请参见UG953,Vivado Design Suite 7系列FPGA和Zynq-7000所有可编程SoC库指南。

分布式RAM配置包括:

•单口RAM

•双端口

•简单的双端口

•四端口

 

1.3.7 移位寄存器

SLICEM函数发生器也可以配置为32位移位寄存器,而无需使用slice中可用的触发器。 以这种方式使用,每个LUT可以将串行数据延迟1到32个时钟周期。 移入D(DI1 LUT引脚)和移出Q31(MC31 LUT引脚)线路将LUT级联,以形成更大的移位寄存器。 因此,SLICEM中的四个LUT被级联以产生高达128个时钟周期的延迟。 也可以在多个SLICEM上组合移位寄存器。 slice之间没有直接连接以形成更长的移位

寄存器,LUT B / C / D的MC31输出也不可用。 由此产生的可编程延迟可用于平衡数据流水线的时序。

 

移位寄存器的应用包括:

•延迟或延迟补偿

•同步FIFO和内容可寻址存储器(CAM)

移位寄存器功能包括:

•写操作

•与时钟输入(CLK)和可选的时钟使能(CE)同步

•修复对Q31的读取访问

•动态读取访问

•通过5位地址总线A [4:0]执行

-LUT地址的LSB未使用,软件自动将其绑定为逻辑高电平。

•通过改变地址可以异步读取32位中的任何一位(在O6 LUT输出上,在原语上称为Q)

•此功能对于创建较小的移位寄存器(少于32位)很有用。

-例如,当构建13位移位寄存器时,将地址设置为第13位。

•存储单元或触发器可用于实现同步读取。

-触发器的时钟输出决定了总延迟并改善了性能。

-但是,增加了一个时钟延迟周期。

不支持设置或重置移位寄存器

下图示出了占用一个函数发生器的示例移位寄存器配置。

下图一个LUT可以用于产生2个16bit移位寄存器,但是他们的地址是复用的。

组成64bit的移位寄存器,可以看到利用地址A5和F7AMUX切换SRL32

 

移位寄存器数据流

举例说明了在7系列FPGA Slice(一个配置为SRL的LUT)中实现的移位寄存器的时序特性

1.3.8 Multiplexers

7系列FPGA中的函数发生器和相关的多路复用器可以实现以下功能:

•使用一个LUT的4:1多路复用器

•每片四个4:1 MUX

•使用两个LUT的8:1多路复用器

•每个切片两个8:1 MUX

•使用四个LUT的16:1多路复用器

•每片一个16:1 MUX

 

每个LUT可以配置为4:1 MUX。 4:1 MUX可以通过触发器在同一片中实现。 一个切片中最多可以实现四个4:1 MUX,如下所示:

每个slice具有一个F7AMUX和一个F7BMUX。 这两个MUX组合了两个LUT的输出,以形成多达13个输入(或8:1 MUX)的组合功能。 一个slice中最多可以实现两个8:1 MUX,如图2-22所示。

每个slice都有一个F8MUX。 F8MUX组合了F7AMUX和F7BMUX的输出,以形成多达27个输入(或16:1 MUX)的组合功能。 一个slice中只能实现一个16:1 MUX,如图2-23所示。

 

1.3.9进位逻辑(Carry Logic)

除了函数发生器之外,还提供了专用的快速超前进位逻辑,以slice片中执行快速算术加法和减法。 7系列FPGA CLB具有两个独立的进位链,如图1-1所示。 进位链可级联以形成更宽的加/减逻辑,如图2-2所示。

进位链向上延伸,每个slice的高度为四位。 对于每个位,都有一个进位多路复用器(MUXCY)和专用的XOR门,用于用选定的进位位加/减操作数。 专用的进位路径和进位多路复用器(MUXCY)也可以用于级联函数发生器,以实现广泛的逻辑功能。

进位链与功能生成器一起使用进位超前逻辑。 有10个独立输入和8个独立输出:

•输入

•S输入S0至S3

-进位超前逻辑的“传播”信号

-来自函数发生器的O6输出

•DI输入-DI1至DI4

-进位超前逻辑的“生成”信号

-来自函数发生器的O5输出

-创建乘数

-或切片的BYPASS输入(AX,BX,CX或DX)

-创建加法器/累加器

 

CARRY4原语实例化每个slice中可用的快速进位逻辑。 该原语与LUT结合使用以构建加法器和乘法器。 图3-2显示了CARRY4原语。 综合工具通常会从算术HDL代码中推断出此逻辑,从而自动正确连接此功能。

端口信号

总输出-O [3:0]

总和输出提供加/减的最终结果。 它们连接到slice AMUX / BMUX / CMUX / DMUX输出。

进位输出-CO [3:0]

进位输出提供每个位的进位。 CO [3]等效于COUT。 如果通过COUT将CO [3]连接到另一个CARRY4原语的CI输入,则可以创建更长的进位链,并且专用路由将进位链连接到一排片上。

进位输出还可以选择连接至sliceAMUX / BMUX / CMUX / DMUX输出。

1

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

说点什么...

已有3条评论

最新评论...

Wyuan2020-4-23 14:43引用

不错

I'mpossible2020-4-1 16:28引用

感谢分享

云海2020-3-9 17:38引用

不错

查看全部评论(3)

本文作者
2019-10-7 20:42
  • 5
    粉丝
  • 396
    阅读
  • 3
    回复
相关分类
资讯幻灯片
热门评论
热门专题
排行榜

关注我们:微信公众号

官方微信

官方微信

客服热线:

0519-80699907

公司地址:常州溧阳市天目云谷3号楼北楼2楼

运营中心:常州溧阳市天目云谷3号楼北楼2楼

邮编:213300 Email:270682667#qq.com

Copyright   ©2019-2026  米联客uisrc内容版权归©UISRC.COM技术支持:UISRC.COM  备案号:苏ICP备19046771号