Xilinx-7系列之可配置逻辑块CLB

目录

一、概览

二、CLB结构

三、Slice内部结构

3.1 SliceM结构

3.2 SliceL结构

3.3 查找表LUT

3.4 多路复用器

3.5 存储单元

3.6 进位逻辑

四、应用

4.1 分布式RAM

4.2 ROM(只读存储器)

4.3 Shift Registers( 移位寄存器)

4.4 存储资源容量估算

五、参考资料


一、概览

二、CLB结构

    可配置逻辑块CLB(Configure Logic Block)是实现组合逻辑和时序逻辑的主要资源,由一对Slice(片单元)组成,每一个CLB都是连接到了一个交换矩阵(Switch Matrix)中。

    每个Slice资源包含4个6输入的LUT,8个FF以及MUX和Carry。Slice又可分为SliceL和SliceM两种类型,在7系列器件中,大约2/3的Slice为SliceL,其余为SliceM,两者区别是SliceM可配置为分布式RAM(Distribute RAM)和移位寄存器,SliceL则不行。

    每个CLB都包含一对Slice,这对Slice可能都是SliceL或是一个SliceLSliceM。属于一个CLB中的SliecL和SliceM是独立的,无相互连接的线路,只有属于同一列的Slice之间才会通过进位链进行连接。每个Slice有一个坐标XcYr,r为slice的列序号,c为行序号,同一个CLB的slice行序号是相同的。

三、Slice内部结构

3.1 SliceM结构

3.2 SliceL结构

    SliceM和SliceL的大体结构相同,唯一的区别在于SliceM中每个LUT6的输入多了一路DI,并且CE信号中多了WE控制,正是这一差异使得SliceM可以将LUT配置成移位寄存器和分布式RAM。

3.3 查找表LUT

    7系列器件中,可用LUT(Look-Up Table)实现函数生成器,LUT为6输入的LUT6。在一个Slice中,每个LUT6可作为一个6输入的LUT6或是2个5输入的LUT5,也可以是2个小于5输入的LUT。

    6输入的LUT6时,A1-A6为输入,O6为输出。作为2个5输入或更少输入的LUT时,A1-A5为输入,A6为高电平,O5和O6作为两个LUT的输出。

3.4 多路复用器

    每个slice都包含3个多路复用器:F7AMUX,F7BMUX,F8MUX。F7AMUX,F7BMUX可将两个LUT6组合7输入的LUT7,F8MUX可将两个LUT7组合成8输入的LUT8。

    1个LUT6可以实现4:1的选择器,2个LUT6可实现8:1的选择器,4个LUT6可实现16:1的选择器,以16:1的多路选择器为例,从每个LUT中选择2位D[1:0]作为选择位,其余4位D[3:0]作为数据选择输入位,4个LUT共16个选择输入位,结合F7AMUX,F7BMUX,F8MUX,选择位为4位,组合后即是有16种结果。

    

3.5 存储单元

    CLB中信号存储是通过触发器实现,每个Slice中包含8个触发器,前面4个只能配置为边沿触发的D触发器,后面4个可配置为D触发器或电平触发的锁存器。当后面4个配置为锁存器时,前面4个FF将不能被使用。

    在下图中,8个FF是共用SR,CE,CLK信号,两个FF中如果存在控制信号不同,则不能放置到同一个slice中。8个FF都可以配置为不使用置位,复位,同步置位,同步复位,异步置位,异步清零的FF。

    8个FF中,前4个和后4个FF的D端口数据来源也不同,前者来自LUT6的O5输出,后者来自LUT6的O6输出。同时,也都可以来自外部Switch matrix,通过AX,BX,CX,DX进入

3.6 进位逻辑

    Carry可以快速实现算术加减法运算,一个slice包含一条进位链,同一列的slice可以进行级联实现更多位的加减法逻辑。

四、应用

4.1 分布式RAM

    前面的章节提到sliceM可以配置为分布式RAM,RAM是中随机存取数据的单元,根据地址可对RAM进行读写操作。分布式RAM指由LUT构成的RAM,除了分布式RAM,还有专用的BRAM单元,用于存储更多的数据,少量的数据建议用分布式RAM。

    以器件xc7k480tffv1156-1为例,BRAM分布如下图红色小方块,按列分布。

    分布式RAM根据规格大小以及端口类型可划分如下,规格中包含了RAM的深度和宽度,格式为深度x宽度+端口类型,端口类型包括单端口,双端口,四端口,简单双端口,原语即为设计时进行实例化时使用。

    涉及到具体器件时会存在差异,具体可在Language Templates中搜索RAM查看LUTRAM

     分布式RAM是同步写入,异步读取,在写使能信号WE为高电平时,并且处于时钟跳变沿时,数据写入到RAM中指定地址的空间中。数据读取则是异步操作,每次地址引脚的数据更新后,在经过LUT的时延后将指定地址的数据输出。

4.2 ROM(只读存储器)

    CLB中SliceL和SliceM的单个LUT都可以实现64*1比特的ROM,因为包含4个LUT,当对4个LUT都进行配置时,可实现ROM256*1比特的ROM

4.3 Shift Registers( 移位寄存器

    移位寄存器可用于延时补偿,实现同步FIFO,进行跨时钟域。CLB中的SliceM可以只使用LUT,不使用FF来配置成32比特的移位寄存器,单个LUT可实现数据1-32个时钟周期的延时也可将一个SliceM中的4个LUT进行级联,可最大实现128个时钟周期的延时。若需更大的移位,可将SliceM级联。

    使能信号CE与时钟同步,固定的在Q31中读取数据,LUT的最低有效为A[1]未被使用,工具将自动将其值设为1,A[6:2]为5位的地址,数据在Q(LUT6的O6)中进行输出。如果要进行同步读取数据,则将输出O6连接到一个FF中。移位寄存器不支持置位或复位,但在配置后可将其初始化为任何值。

4.4 存储资源容量估算

    根据对实现分布式RAM,移位寄存器的实现可以根据器件的SliceM和FF资源数计算最大容量,一个LUT6可实现64bit的分布式RAM,一个SliceM可实现的容量为4*64bit=256bit,4个SliceM可实现4*256bit=2^10bi=1Kb。因此,SliceM的数量为分布式RAM容量的大小的4倍。

    下表为Artix-7系列器件资源表,SliceM数量和分布式RAM数量关系基本符合4倍左右。

五、参考资料

官网用户手册《ug474_7Series_CLB.pdf》

文档获取

链接:https://pan.baidu.com/s/1doSb8K0EJF8GQr6lGOWYyw 
提取码:svhl

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/112965.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

储能辅助电力系统调峰的容量需求研究(matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《储能辅助电力系统调峰的容量需求研究》,是一个很常规很经典的matlab优化代码,主要是对火电、风电和储能等电力设备主体进行优化调度,在调峰能力达不到时采…

总结974

今日共计学习12h,日计划完成90%.今晚又把总结时间占用了,明天预留0.5h进行月总结吧,重新制定学习时间表,之前的已经用不了。 跟一个学府的老师聊了聊天,感觉聊完之后,本以为会心情舒畅,没想到反…

【Unity-Cinemachine相机】Cinemachine Brain属性详解

在Package Manager中下载Cinemachine 创建一个Virtual Camera,然后会发现Main Camera后面多出了个标志,而且属性也不能再修改了 因为绑定了CinemachineBrain,它会读取场景中某个虚拟相机的配置,并以此配置来控制相机的行为&#x…

XFTP上传文件出现:unknown error的解决方法

原因1:磁盘容量不够 查看上传的磁盘是否已经占满了,执行命令 df -h发现此时虚拟机的磁盘已经用尽(只怪自己当初创建虚拟机时没有分配更多的磁盘),如下图所示 此外,由于磁盘空间用尽,Xftp上传…

拿来即用修改密码功能

<template><div><!-- 重置密码 --><el-dialogtitle"修改密码"v-model"state.resetPwdDialogVisible":showClose"state.firstLogin ! 1"width"550px"close"onCancel":close-on-click-modal"false&…

大数据开发要学习什么?学完又能做什么

学习大数据需要掌握什么语言基础&#xff1f; 1、Java基础 大数据框架90%以上都是使用Java开发语言&#xff0c;所以如果要学习大数据技术&#xff0c;首先要掌握Java基础语法以及JavaEE方向的相关知识。 2、MySQL数据库 这是学习大数据必须掌握的知识之一。数据的操作语言是…

lambda 表达式

C自学精简实践教程 目录(必读) 什么是lambda表达式&#xff1f; lambda表达式实际上就是一个类似函数的可以被调用的对象。 和函数一样可以使用圆括号调用。 只不过&#xff0c;这个函数可以定义在代码的任意位置。非常的灵活&#xff0c;自由。而函数不能定义在其他函数的…

智能化新十年,“全栈智能”定义行业“Copilot智能助手”

“智能化转型是未来十年中国企业穿越经济周期的利器”&#xff0c;这是联想集团执行副总裁兼中国区总裁刘军在去年联想创新科技大会上做出的判断&#xff0c;而2023年正值第四次工业革命第二个十年的开端&#xff0c;智能化是第四次工业革命的主题。2023年初&#xff0c;基于谷…

Kubernetes技术--Kubernetes架构组件以及核心概念

1.Kubernetes集群架构组件 搭建一个Kubernetes环境集群,其架构如下所示: 内容详解: Master:控制节点,指派任务、决策 Node:工作节点,实际干活的。 Master组件内容:

Maven的profiles多环境配置

一个项目通常都会有多个不同的运行环境&#xff0c;例如开发环境&#xff0c;测试环境、生产环境等。而不同环境的构建过程很可能是不同的&#xff0c;例如数据源配置、插件、以及依赖的版本等。每次将项目部署到不同的环境时&#xff0c;都需要修改相应的配置&#xff0c;这样…

合宙Air724UG LuatOS-Air LVGL API控件--曲线 (Arc)

曲线 (Arc) 曲线控件&#xff0c;也可以称为弧。因为 Arc 本身就是弧&#xff0c;弧形的意思。根据控件的样子也能推测出它的使用场景&#xff0c;一般用在加载器(就是等待界面转的圈圈)或者数值显示&#xff0c;数值调节这些场景。曲线控件分了两个部分&#xff0c;前景和背…

HTTPS安全通信和SSL Pinning

随着互联网的迅速发展&#xff0c;网络通信安全问题日益凸显。在这一背景下&#xff0c;HTTPS作为一种加密通信协议得到了广泛应用&#xff0c;以保障用户的数据隐私和信息安全。本文将介绍HTTPS的基本原理、发展历程&#xff0c;以及与之相关的中间人攻击和防护方法。 1. HTT…

五、工厂方法模式

一、什么是工厂方法模式 工厂方法模式是对简单工厂模式的进一步抽象化&#xff0c;其好处是可以使系统在不修改原来代码的情况下引进新的产品&#xff0c;即满足开闭原则。   工厂方法模式的主要角色如下。 抽象工厂&#xff08;Abstract Factory&#xff09;&#xff1a;提…

Docker 中下载各版本的 CentOS、CentOS Steam 方式

如果你跟我一样&#xff0c;想要在docker下载centos的镜像&#xff0c;但是无奈访问不了 https://hub.docker.com/&#xff0c;于是不知道有哪些tag可以下载&#xff0c;该如何办呢&#xff1f; 方法如下&#xff0c;以供参考。 访问&#xff1a;https://quay.io/repository/…

Modbus转Profinet网关在大型自动化仓储项目应用案例

在自动化仓储项目中&#xff0c;Modbus是一种常见的通信协议&#xff0c;用于连接各种设备&#xff0c;例如传感器、PLC和人机界面。然而&#xff0c;Modbus协议只支持串行通信&#xff0c;并且数据传输速度较慢。为了提高通信效率和整体系统性能&#xff0c;许多大型仓储项目选…

SQL-子查询

SQL 子查询 是指将一个SELECT查询&#xff08;子查询&#xff09;的结果用括号括起来作为另一个SQL语句的数据来源或者判断条件

C++调用Python Win10 Miniconda虚拟环境配置

目录 前言1. Win10 安装 Miniconda2. 创建虚拟环境3. 配置C调用python环境4. C调用Python带参函数5.遇到的问题6. 总结 前言 本文记录了Win10 系统下Qt 应用程序调用Python时配置Miniconda虚拟环境的过程及遇到的问题&#xff0c;通过配置Python虚拟环境&#xff0c;简化了Qt应…

C语言:递归思想及实例详解

简介&#xff1a;在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。通过函数的自调用化繁为简。 递归可以说是编程中最神奇的一种算法。因为我们有时候可能不能完全明晰代码的运行过程&#xff0c;但是我们却知道代码可以跑出正确的结果。而当我们使…

Endnote中查看一个文献的分组的具体方法——以Endnote X8为例

Endnote中查看一个文献的分组的具体方法——以Endnote X8为例 一、问题 当Endnote中使用分类方法对文献进行分组管理后&#xff0c;有时需要重新调整该文献的分组&#xff0c;则需要找到这个文献在哪个分组中。本文阐述怎样寻找一个文献的分组的位置信息。 二、解决方法 1.选…

【CSS左右上角斜标签】CSS实现左右上角飘带功能,左右上角斜标签(附源码)

文章目录 写在前面涉及知识点实现效果1、实现过程1.1左上角飘带Html代码Css代码效果 1.2右上角飘带Html代码Css代码效果 2、源码分享2.1 百度网盘2.2 123网盘2.3 邮箱留言 总结 写在前面 其实在公司页面开发过程就遇到过&#xff0c;需要在方块右上角展示一个斜的文字或者告警…