浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))

一、概述

CLB可配置逻辑块是指实现各种逻辑功能的电路,是xilinx基本逻辑单元
在Xilinx FPGA中,每个可配置逻辑块包含2个Slice
每个Slice 包含查找表、寄存器、进位链和多个多数选择器构成。
而Slice又有两种不同的逻辑片:SLICEM和SLICEL。SLICEM有多功能的LUT,可配置成移位寄存器,或者ROM和RAM。
逻辑片中的每个寄存器可以配置为锁存器使用。

本次主要介绍是掌握FPGA重要资源CLB、Slice、LUT。主要参考XILINX 官方文档“ ug474_7Series_CLB.pdf ”

二、CLB的介绍

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

2. CLB结构组成
7系列FPGA中的LUT可以配置为具有一个6输入LUT,或者两个5输入LUT(数据输入和地址相同,数据输出独立)。每个5输入LUT的输出都可以选择是否通过触发器(flip-flop)寄存。
需要了解的是(下图是一个CLB的组成):

1)一个CLB 等于2个Slice
2)一个Slice等于4个6输入LUT+8个触发器(flip-flop)+算数运算逻辑 ——每个Slice的4个触发器(虽然有8个flip-flop,但是每个LUT分配一个flip-flop)可以配置成锁存器,这样会有4个触发器(flip-flop)未被使用。
3)这里还有一点需要特别注意的,XILINX FPGA 的slice还不都是长一样的,FPGA中三分之二的slice是SLICEL而剩余的是SLICEM

注意:
1)SLICEL 没有distributed RAM 和 shift registers
2)SLICEM是可以当作分布式64bit-RAM或者32bit的移位寄存器或者2个16bit移位寄存器。通过VIVADO软件或者原语的调用可以利用这些逻辑算数功能和存储功能。

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

一个SLICEM类型的slice的结构

一个SLICEL类型的slice的结构

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

下图是ZYNQ xc2z020clg400-2器件的基本资源情况表:

三、CLB的各部分详细结构

1. CLB的功能

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

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

2)ASMBL体系结构的优点
ASMBL体系结构通过以下方式突破了传统的设计障碍:
消除了几何布局约束,例如I / O数量与阵列大小之间的依存关系。
•通过允许将电源和地线放置在芯slice上的任何位置来增强芯slice上的电源和地线分布
•允许彼此独立地扩展不同的集成IP块和周围资源

2.查找表(LUT)

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构

LUT本质上就是一个RAM。它把数据事先写入RAM后, 每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。

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

1)函数发生器可以实现以下函数功能:
•任意定义的六输入布尔函数
•两个任意定义的五输入布尔函数,只要这两个函数共享公共输入
•两个任意定义的布尔函数(3个和2个或更少输入)

2)六输入功能使用:
•A1-A6输入
•O6输出

3)两个五输入或更少的函数使用:
•A1–A5输入
•A6驱动高
•O5和O6输出

3.存储单元
每个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个寄存器/锁存器


4. Distributed RAM (Available in SLICEM Only)
关于Distributed RAM 在这篇博客有详细介绍
浅谈XILINX FPGA CLB单元 之 分布式RAM (Distributed RAM Available in SLICEM Only、RAM128X1D、Verilog原语描述)

5. 移位寄存器
关于移位寄存器 在这篇博客有详细介绍
浅谈XILINX FPGA CLB单元 之 移位寄存器(移位寄存器、SRLC32E、SRL16E)

6. 多路复用器(Multiplexers)

7系列FPGA中的函数发生器和相关的多路复用器可以实现以下功能:
•使用一个LUT的4:1多路复用器
•每片四个4:1 MUX
•使用两个LUT的8:1多路复用器
•每个slice两个8:1 MUX
•使用四个LUT的16:1多路复用器
•每片一个16:1 MUX

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

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

7. 进位逻辑(Carry Logic)
关于进位逻辑 在这篇博客有详细介绍
浅谈XILINX FPGA CLB单元 之 进位逻辑链(CARRY4原理分析,超前快速进位逻辑结构)

浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))相关推荐

  1. XILINX FPGA 7系之 CLB/LUT/FF/Multiplexers

    目录 1.CLB 2.Slice 2.1.SLICEM 2.2.SLICEL 2.3.SLICEL Vs SLICEM 3.LUT 4.FF 5.Multiplexers 5.1.MUX(4:1 ) ...

  2. 简谈 Xilinx FPGA 原理及结构

    FPGA是在PAL.PLA和CPLD等可编程器件的基础上进一步发展起来的一种更复杂的可编程逻辑器件.它是ASIC领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点. ...

  3. XILINX FPGA 7系之 Distribute RAM

    XILINX FPGA 7系之 CLB/LUT 可以知道 CLB 是基本的组成单元,SLICE 也是 CLB 的基本组成单元,为了更好的使用 XILINX FPGA ,有必要在深挖一下 Distrib ...

  4. 浅谈通过CMOS放电破解BIOS密码的原理

    浅谈CMOS放电破解BIOS密码的原理 ROM和RAM BIOS CMOS 主板电池 CMOS放电清除BIOS密码 电脑开机密码是软件密码,比较容易破解:BIOS密码是硬件密码,如果忘了BIOS密码该 ...

  5. Xilinx FPGA上电时序分析与设计

    Xilinx FPGA上电时序分析与设计 由 技术编辑 于 星期五, 11/29/2013 - 13:24 发表    http://xilinx.eetrend.com/article/6102 摘 ...

  6. Xilinx FPGA通过FLASH加载程序的时序

    尽管FPGA的配置模式各不相同,但整个配置过程中FPGA的工作流程是一致的,分为三个部分:设置.加载.启动. 复位结束配置开始 有多种方式使FPGA的配置进入这一过程.在上电时,电压达到FPGA要求之 ...

  7. 浅谈Altera和Xilinx的FPGA区别

      对于Altera和Xilinx的FPGA,可以分为两个方面去比较一下,基本逻辑资源和内部基本架构.   从目前企业中做开发使用的广泛性来说,Xilinx占得比重确实是大一些,但是从其他方面来说,比 ...

  8. FPGA block RAM和distributed RAM区别(以及xilinx 7系列CLB资源)

    原地地址:FPGA block RAM和distributed RAM区别 区别之1 block ram 的输出需要时钟,distributed ram在给出地址后既可输出数据. 区别之2 distr ...

  9. Xilinx FPGA资源解析与使用系列——CLB

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx FPGA资源解析与使用系列--CLB 前言 CLB Overview Device Resources Recommen ...

最新文章

  1. NSTimer用法,暂停,继续,初始化
  2. vue选中点击的元素_vue中v-for循环选中点击的元素并对该元素添加样式操作
  3. iis服务器udp协议,Win2003系统的IIS服务的w3wp.exe使用UDP的80端口发送大量的数据包,寻求帮助...
  4. python基础七之copy
  5. 要想深入理解mysql索引?这16个点你必须要了解!
  6. Spark入门实战系列--4.Spark运行架构
  7. Dell 12G服务器 手动安装RedHat 6.X
  8. Java POI Word 写文档
  9. 【翻译】What the f*ck JavaScript?(JavaScript你怎么这样啊???)
  10. 入门系列之在Ubuntu上使用Netdata设置实时性能监控
  11. pg数据库客户端linux,PostgresSQL客户端pgAdmin4使用
  12. mac安装brew(亲测)
  13. 如何将时间字体LED化(类似电子表)显示
  14. GPS时间转北京时间
  15. 彩色图像的空间域滤波
  16. 方差、标准差、均方差、均方根值(RMS)、均方根误差(RMSE)
  17. [观点]中国传统文化的遗失清单上我们丢掉了什么(作者:侯虹斌)
  18. 【机器人学】机器人开源项目KDL源码学习:(9)KDL中的内联函数
  19. 创建本地版PACS系统
  20. 华为手机如何用微信与电脑连接服务器,华为手机也能连接苹果电脑,只需这样做...

热门文章

  1. 鸿蒙系统有哪些手机可以用,鸿蒙系统手机有哪些型号,鸿蒙系统手机什么时候上市...
  2. 用友系统服务器如何安装,用友数据库服务器安装步骤
  3. 记录一次nodejs爬取《17吉他》所有吉他谱
  4. ARP防御篇-如何揪出“内鬼”并“优雅的还手”
  5. 用R获取芯片探针与基因的对应关系三部曲-bioconductor
  6. 百度H5活体检测-语音校验码
  7. [xia谈]做一个爱家的程序员
  8. 微众银行面试Again
  9. Silverlight 简介
  10. EmbedTLS + Eclipse C/C++测试用例SSL客户端和服务器