当前位置: 首页 > news >正文

Xilinx UltraScale架构之可配置逻辑块CLB

目录

一、概览

二、UltraScale架构

2.1 UltraScale/UltraScale+特点

2.2 与7系列CLB差异

三、 CLB结构

3.1 LUT

3.2 FF

3.3 多路选择器Multiplexers

3.4 进位链Carry Chain

四、应用

4.1 分布式RAM

4.2 移位寄存器

4.3 进位链Carry Chain

五、参考资料


一、概览

 

二、UltraScale架构

2.1 UltraScale/UltraScale+特点

    UltraScale架构是赛灵思器件中一种变革性的架构,可以处理大规模的I/O和存储带宽,并且因为有许多复用的内部块单元,从而具有更强的扩展性,在降低功耗方面也优于7系列器件。UltraScale架构包含了Kintex,Virtex两个系列。

    UltraScale+是在UltraScale架构的基础上进行了优化,相比Ultrascale,降低了BOM成本,在高性能与经济性间取得更好的平衡,同时拥有大量的功耗方面的配置。UltraScale+架构有Kintex,Virtex,Zynq 三个系列

2.2 与7系列CLB差异

  与7系列类似,Ultrascale架构的CLB包含了6输入的查找表LUT,两个LUT5,分布式存储器和移位寄存器,高速进位逻辑,更宽的多路复用器,FF/Latch。

a) Slice:与7系列的一个CLB包含两个Slice不同的是Ultrascale中一个CLB只有一个Slice,

b)控制信号:每个CLB包含4个时钟使能信号,在置位/复位信号前有可取反的设置

c)分布式RAM:写使能信号WE和FF的时钟使能信号分开,在一个slice中,写使能信号可以直接和三个直接输入组成8个独立的写使能信号

d)LUT:LUT可直接输出,或和选择器组合输出,也可通过FF输出

e)FF:所有的FF都可配置成边沿触发的触发器或锁存器

f)Carry:单个CLB的进位逻辑扩展到了8bit,可实现更快的运算,每个CLB一条进位链

    Ultrascale的CLB是单列结构,先比之前的双列结构

a) 可消除之前的I/O数量和逻辑布局大小的相互影响,

b) 解决了电源和接地模块布局位置的限制,电源和接地模块可放置到器件的任意位置

c) 可以将不同的IP块相互独立分布在资源的四周

    Ultrascale的时钟域CR(Clock Region)和7系列存在差异,CR是以tiles模块排列的。一个CR包含了60个CLB,24个DSP,12个块状RAM,在中间位置存在一个水平时钟脊HCS。HCS由水平布线资源和水平分布资源,叶子时钟缓冲器,时钟网络连接单元,和时钟根组成,关于详细的介绍可参考文章/Xilinx之Ultrascale系列时钟资源与驱动关系 - 哔哩哔哩

三、 CLB结构

3.1 LUT

  一个Slice包含8个6输入的LUT和16个FF,Slice按列分布,也可级联实现更多的功能,单个LUT6可配置成6输入单输出的LUT6,也可配置成2个五输入单输出的LUT5。

 

    对于LUT的数据,可直接从O端口作为Slice的输出,或者经过选择器从MUX输出,也可输入到FF中再从Q1,Q2输出,Q1对应LUT的O6,Q2对应LUT的O5。

 

    UltraScale架构包含两种类型的Slice, SliceL和SliceM。SliceM中LUT可配置为64bit的分布式RAM,多了写地址WA和写使能WE信号,时钟信号,其中,Slice中的X和I作为数据输入端口。

    将单个SliceM内8个LUT组合使用可生成512bit的分布式RAM,将多个SliceM组合可生成大于512bit的分布式RAM。如果需要更大的RAM,可使用块状RAM

    SliceM中的LUT也可配置为32bit的移位寄存器,将8个LUT组合使用可配置成256bit的移位寄存器。

3.2 FF

    UltraScale架构的器件每个Slice包含16个FF,都可以被配置为D触发器或锁存器Latch。当被配置为锁存器时,必须以一半为单位进行配置。假设从下往上8个FF编号为A到H,如果其中一个为锁存器,其余7个也会被配置为锁存器,并且当时钟信号为高电平时,锁存器时透传的。

 

    时钟信号:每个CLB有2个时钟输入clk1,clk2, 2个复位输入SR1,SR2用于控制FF,单个控制信号同时连接到8个FF,分为上下两部分。

    使能信号:时钟使能信号有4个,CE1,CE2,CE3,CE4,每个使能信号控制4个FF,相互之间独立。

 

    置位/复位信号 :每个CLB中的2个SR输入可被配置为与时钟信号同步或异步,可以被配置为置位set或复位reset信号,但不能同时为置位或复位信号。如果一个FF有SR信号,同一组的其余FF也是复用该信号,配置对应的原语如下。

a)不进行set/reset设置

b)同步置位原语FDSE

d)同步复位原语FDER

e)异步置位原语 FDPE

f)异步复位原语 FDCE

    INIT:FF的初始化值通过INIT可设置为0或1,默认情况下,SR为set时INIT=1,为reset时INIT=0。

3.3 多路选择器Multiplexers

针对单个Slice中的LUT,可实现情况如下

a) 一个LUT配置为4:1选择器,一个CLB配置为8个4:1的选择器

b) 两个LUT配置为8:1选择器,一个CLB配置为4个8:1的选择器

c) 四个LUT配置为16:1选择器,一个CLB配置为2个16:1的选择器

d) 8个LUT配置为32:1选择器,一个CLB配置为1个32:1的选择器

通过内部的F7MUX_AB,F7MUX_CD,F7_MUX_GH可将相邻的LUT进行扩展,两个F8MUX_BOT和F8MUX_TOP可以扩展两个F7_MUX的输出,F9MUX可扩展两个F8MUX的输出。

    16:1多路选择器实现使用了4个LUT,每个LUT的6个输入中4个为数据输入DATA,2个输入为选择位SEL

 

32:1的多路选择器使用了Slice中所有的mux,将F7MUX,F8MUX,F9MUX的输入作为了选择位,加上LUT的中两个输入位,共5位作为选择位。

 

3.4 进位链Carry Chain

    ​进位链的初始化值CYINIT用于选择进位链的第一个bit,为1表示加法,为0表示减法,AX用于动态的第一个进位输入。

 

四、应用

4.1 分布式RAM

    分布式RAM在大容量的存储和小容量的存储间提供了一个择中的选择,通常大容量的存储使用块状RAM,小容量存储使用分布式RAM,分布式RAM可以通过例化或IP来使用。相比于块状RAM,分布式RAM从资源,性能和功耗方面更佳。

    通常,对于存储的数据小于64bit时,除非没有多余的SliceM,否则都是使用分布式RAM。对于数据大于64bit小于等于128bit时,在选择分布式RAM和块状RAM的原则有以下几条

a)有块状RAM资源时优先使用块状RAM

b) 如果有异步读取时,需使用分布式RAM

c) 数据宽度大于16bit时,使用块状RAM

d)有一定的性能要求时,相比于块状RAM,寄存器的分布式RAM在时钟信号传输中时延更小,更少的布局限制。

4.2 移位寄存器

    移位寄存器的原语不会使用同一个slice中的FF,如果要实现同步读写,需将输出Q连接到FF中,并且移位寄存器和FF的时钟来源是不同的。通过这种方式,将获取更好的时序,简化设计。

 

固定长度移位寄存器

    可级联的32bit移位寄存器(使用原语SRLC32E)不需要使用多路选择器即可实现任何固定长度的移位寄存器。以72bit长度为例,级联后仅需将最后一个移位寄存器的输入固定到b00111。也可将移位寄存器的长度限定到71bit(地址截止到5'b00110),最后一个移位寄存器连接一个FF。使用SRLC32E原语时,移位寄存器的长度为地址输入+1。

4.3 进位链Carry Chain

    ​使用进位逻辑可以改善算术运算(加法器,计数器,比较器)的性能,对于一些简单的计数器或加法器,减法器,工具会自动地综合出进位逻辑。对于复杂的计算可使用DSP实现,DSP和进位逻辑都可进行算术运算,但对于一些小计算量时,使用进位逻辑实现将更快,功耗更低。

五、参考资料

赛灵思官网手册《ug574-ultrascale-clb.pdf》

链接:https://pan.baidu.com/s/1hQA1Chjy41gQi6x8YJ8QFA 
提取码:91v6

相关文章:

Xilinx UltraScale架构之可配置逻辑块CLB

目录 一、概览 二、UltraScale架构 2.1 UltraScale/UltraScale特点 2.2 与7系列CLB差异 三、 CLB结构 3.1 LUT 3.2 FF 3.3 多路选择器Multiplexers 3.4 进位链Carry Chain 四、应用 4.1 分布式RAM 4.2 移位寄存器 4.3 进位链Carry Chain 五、参考资料 一、概览 二…...

springboot web开发整合Freemarker 模板引擎

目录 Freemarker添加依赖配置文件ymlcontrollerhtml Freemarker 简介: FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具…...

Python 连接 SQL 数据库 -pyodbc

文章目录 使用 pyodbc 模块从 Python 代码连接到 SQL 数据库配置用于 pyodbc Python 开发的开发环境创建用于 pyodbc Python 开发的 SQL 数据库使用 pyodbc 连接到 SQL连接和查询数据 推荐阅读 在 Windows、Linux 或 macOS 上使用 Python 连接到 SQL 数据库,有几个可…...

Vue框架--Vue中的数据代理

下面,我们一起来说以下Vue中的数据代理。 1.Object.defineProperty()方法回顾 * Object.defineProperty()方法基本配置项 * value:指定设置对象内容的属性值 * enumerable:true, //控制属性是否可以枚举(也就是是否可以被遍历),默认值是false * writable:true, //控制属性是…...

每日一题(链表中倒数第k个节点)

每日一题(链表中倒数第k个节点) 链表中倒数第k个结点_牛客网 (nowcoder.com) 思路: 如下图所示:此题仍然定义两个指针,fast指针和slow指针,假设链表的长度是5,k是3,那么倒数第3个节点就是值为…...

python如何求两list的公共区域

如何求两list的公共区域 对于列表(List),要求它们的公共区域,你可以使用列表推导式和集合交集的方法来计算。具体步骤如下: list1 [1, 2, 3, 4, 5] list2 [3, 4, 5, 6, 7]# 使用列表推导式获取列表的交集 common_e…...

SpringMVC中文乱码(request或response)前后端处理

前端处理&#xff1a; JSP : <%page pageEncoding"utf-8" %> HTML : <meta charset"UTF-8">后端处理&#xff1a; GET请求&#xff08;request&#xff09;乱码处理&#xff1a; <!-- Tomcat的sever.xml中添加配置&#xff1a;URIEncod…...

Redis面试题大全含答案

1.什么是Redis&#xff1f; 答&#xff1a;Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 它通常被称为数据结构服务器&#xff0c;因为值&#xff08;value&…...

stable diffusion实践操作-提示词-整体环境

系列文章目录 stable diffusion实践操作-提示词 文章目录 系列文章目录前言一、提示词汇总1.1 整体环境11.2 整体环境1 二 、总结 前言 本文主要收纳总结了提示词-整体环境。 一、提示词汇总 1.1 整体环境1 画质背景场景画风镜头[最高质量][透明背景][山][轮廓加深][正面视…...

Spring Aop--通知注解

一、环绕注解 环绕注解 环绕注解Aroud 注解描述AroundAround是Spring AOP中的一种通知类型&#xff0c;用于在目标方法执行前后进行环绕操作。它可以在方法调用前后增加额外的逻辑&#xff0c;例如日志记录、性能监控等。Around注解需要配合AspectJ表达式来指定切入点&#…...

说说CDN和负载均衡具体是怎么实现的

分析&回答 什么是 CDN CDN (全称 Content Delivery Network)&#xff0c;即内容分发网络。 构建在现有网络基础之上的智能虚拟网络&#xff0c;依靠部署在各地的边缘服务器&#xff0c;通过中心平台的负载均衡、内容分发、调度等功能模块&#xff0c;使用户就近获取所需…...

Leetcode107. 二叉树的层序遍历 II

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09; 输入&#xff1a;root [3,9…...

【广州华锐互动】VR党建多媒体互动展厅:随时随地开展党史教育

随着科技的不断发展&#xff0c;虚拟现实(VR)技术已经逐渐渗透到各个领域&#xff0c;其中党建教育尤为受益。为了更好地传承红色基因&#xff0c;弘扬党的优良传统&#xff0c;广州华锐互动推出了VR党建多媒体互动展厅&#xff0c;让广大党员干部和人民群众通过现代科技手段&a…...

libdrm全解析三十九 —— 源码全解析(36)

接前一篇文章&#xff1a;libdrm全解析三十八 —— 源码全解析&#xff08;35&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 前一篇文章讲解完了资源的释放流程中的drmModeRmFB()&#xff0c;本回讲解munma…...

【Interaction交互模块】AngularJointDrive角度关节驱动

文章目录 一、预设体位置二、案例&#xff1a;做一个“能开合的门” 1、在已建好的门框下&#xff0c;建门 2、设置参数 3、解决产生的问题 三、其它属性 一、预设体位置 交互模块——可控制物体——物理关节——角度关节驱动 二、案例&#xff1a;做一个“能…...

菜鸟教程《Python 3 教程》笔记 EX 01:命令行参数

菜鸟教程《Python 3 教程》笔记 EX 01&#xff1a;命令行参数 1 命令行参数1.1 基础用法1.2 getopt 模块1.2.1 getopt.getopt 方法1.2.2 getopt.gnu_getopt 方法1.2.3 Exception getopt.GetoptError1.2.4 exception getopt.error 笔记带有个人侧重点&#xff0c;不追求面面俱到…...

NLP(六十六)使用HuggingFace中的Trainer进行BERT模型微调

以往&#xff0c;我们在使用HuggingFace在训练BERT模型时&#xff0c;代码写得比较复杂&#xff0c;涉及到数据处理、token编码、模型编码、模型训练等步骤&#xff0c;从事NLP领域的人都有这种切身感受。事实上&#xff0c;HugggingFace中提供了datasets模块&#xff08;数据处…...

Rabbitmq消息积压问题如何解决以及如何进行限流

一、增加处理能力 优化系统架构、增加服务器资源、采用负载均衡等手段&#xff0c;以提高系统的处理能力和并发处理能力。通过增加服务器数量或者优化代码&#xff0c;确保系统能够及时处理所有的消息。 二、异步处理 将消息的处理过程设计为异步执行&#xff0c;即接收到消息…...

Lambda方法引用

1、体验方法引用 在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿参数做操作那么考虑一种情况&#xff1a;如果我们在Lanbda中所指定的操作方案&#xff0c;已经有地方存在相同方案&#xff0c;那是否还有必要再重复逻辑呢&#…...

TCP协议报文

前言 TCP/IP协议簇——打开虚拟世界大门中&#xff0c;已经给大家大致介绍了TCP/IP协议簇的分层。 TCP (Transmission Control Protocol)传输控制协议&#xff0c;在TCP/IP协议簇中&#xff0c;处于传输层。是为了在不可靠的互联网络&#xff08;IP协议&#xff09;中&#x…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...