FPGA的基础架构,什么是CLB?

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处

CLB是指可编程逻辑功能块(Configurable Logic Blocks),顾名思义就是可编程的数字逻辑电路。CLB是FPGA内的三个基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都可配置,在Xilinx公司的FPGA器件中,CLB由2个相同的SliceL或则一个SliceL和一个SliceM构成。

每个Slice不仅可以用于实现组合逻辑、时序逻辑。其中,SliceM还可以配置为分布式RAM和分布式ROM。

下面以Xilinx的ZYNQ的7000系列为例介绍其功能与结构。

ZYNQ7000系列采用了Xilinx全新的第四代ASMBL架构。

新的架构优化芯片布局,消除了IO数量增长带来的芯片阵列的尺寸约束;

新的架构能够满足在芯片的任何位置放置电源和地;

增加了更多电源和地;

允许多种完全不同功能的IP单元在芯片内独立排布;

独特的SSI技术。

分布式RAM和移位寄存器只能在SliceM中。

1.SLICE:(1Slice=4LUT+8FF)

Slice是Xilinx公司定义的基本逻辑单位,其内部结构如图1-4所示,一个Slice由四个6输入的LUTS、进位逻辑、算术逻辑、存储逻辑和多路复选器组成。算术逻辑包括一个异或门(XORG),一个异或门可以使一个Slice实现 2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4输入函数发生器用于实现4输入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的两个输入函数为6输入,可以实现6输入LUT或 64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块的处理速度

每个Slice包含:

•四个6输入查找表LUT

•八个存储单元

•多路复选器

•进位逻辑

所有Slice均使用这些单元来提供逻辑,算术和ROM功能。在此外,某些slice还支持两个附加功能:使用分布式存储数据RAM和32位寄存器的移位数据。支持这些附加功能的slice称为SLICEM;其他的则称为SLICEL。

SLICEL如图2-4所示。

每个CLB可以包含两个SLICEL或一个SLICEL和一个SLICEM。

Slices分为SliceL和SliceM,一般情况下,SliceL>SliceM数。

2.LUT查找表

1个Slice包含4个6输入的LUT,两个LUT通过F7MUX进行级联可以形成一个7输入的LUT,1个Slice可以形成2个7输入的LUT;还可通过F8MUX进行级联形成一个8输入的LUT,逻辑资源换算关系:6输入查找表是4输入查找表的1.6倍查找表LUT本质是RAM,相当于一个多路选择器LUT可参与进位逻辑,进行算数运算单元进行异或运算等,也可直接输出。

3.存储单元

每个Slice有8个存储单元,4个可配置成DFF或者锁存器,另外4个只能配置为DFF。

SliceL与SliceM最大的区别就是没有分布式RAM和移位寄存器。

4.分布式RAM(仅限SliceM)

SLICEM可以配置成分布式RAM,多bit的情况需要增加相应倍数的LUT进行并联。

分布式RAM比块RAM有更好的灵活性,但块RAM的资源比较宝贵,分布式RAM适用小规模存储场景。

5.移位寄存器(仅限SliceM)

SLICEM在不使用触发器的情况下可以设置成32bit的移位寄存器,4个LUT可级联成128bit的移位寄存器。SliceM之间级联还可形成更大的移位寄存器。

6.多路复选器MUX

1个LUT可配置成4:1MUX

2个LUT最多可配置成8:1MUX

4个LUT最多可配置成16:1MUX

可通过布线资源连接多个Slice形成更大规模的设计

但会占用布线资源,产生较大延迟

有两条快速进位链,它与本列的上下slice的进位链相连,实现数据运算时的进位操作,每个slice有4bit 的进位链,每bit都由一个进位MUX和一个异或门组成。

可实现加法/减法器时生成进位逻辑,也可产生一般逻辑。

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

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

相关文章

golang http

函数说明http.ServeMux是 Go 语言标准库中的一个多路复用器(multiplexer)。它用于路由和处理 HTTP 请求,将请求分发到相应的处理器函数。http.HandleFunc是 Go 语言标准库中的一个函数,用于注册处理器函数来处理 HTTP 请求。它是对…

Educational Codeforces Round 5

文章目录 A. Comparing Two Long IntegersB. Dinner with EmmaC. The LabyrinthD. Longest k-Good SegmentE. Sum of Remainders A. Comparing Two Long Integers 模拟&#xff0c;签到。 #include <bits/stdc.h>using namespace std; const int N 1e6 5; typedef lo…

与社交媒体结合:视频直播美颜sdk在社交平台上的应用

为了让直播内容更吸引人&#xff0c;视频直播美颜sdk&#xff08;Software Development Kit&#xff09;正逐渐崭露头角&#xff0c;为社交媒体用户提供了卓越的美颜效果和互动体验。 一、什么是视频直播美颜sdk&#xff1f; 在深入讨论如何将视频直播美颜sdk整合到社交媒体平…

CSS元素浮动

概述 浮动简介 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一。 元素浮动后的特点 脱离文档流。不管浮动前是什么元素&#xff0c;浮动后&#xff0c;默认宽与高都是被内容撑开的&#xff08;尽可能小&#xff09;&am…

时序分解 | MATLAB实现基于小波分解信号分解分量可视化

时序分解 | MATLAB实现基于小波分解信号分解分量可视化 目录 时序分解 | MATLAB实现基于小波分解信号分解分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于小波分解的分量可视化&#xff0c;MATLAB编程程序&#xff0c;用于将信号分解成不同尺度和频率的子信…

Qt-背景图片

在Qt中&#xff0c;使用QWidget或其子类&#xff08;如QFrame、QPushButton等&#xff09;的样式表&#xff08;StyleSheet&#xff09;来设置背景图片&#xff0c;并指定其位置。样式表允许以一种类似于CSS的方式来定义控件的外观和样式。 以下是在Qt中设置控件的背景图片并指…

OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性

OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性 OpenText™ Exceed TurboX™ 是一种安全的虚拟桌面解决方案&#xff0c;可实现现代混合工作。利用 Exceed TurboX 混合云虚拟桌面基础架构 &#xff08;VDI&#xff09;&#xff0c;组织可以…

实用技巧:Linux上实现OpenGauss数据库远程连接,方便的跨网络数据操作

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 &#x1f341; 小结 &#x1f341; 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许…

grafana 监控无图解决

环境 k8s 1.26.0 helm 部署的prometheus charts为 prometheus-community/kube-prometheus-stack 问题 部署上之后,发现grafana很多dashboard无图。 处理过程 进grafana dashboards 任意选取一张有问题的图,查看查询语句,如下 sum(container_memory_rss{job="kube…

Spring-MVC使用JSR303及拦截器,增强网络隐私安全

目录 一、JSR303 ( 1 ) 是什么 ( 2 ) 作用 ( 3 ) 常用注解 ( 4 ) 入门使用 二、拦截器 2.1 是什么 2.2 拦截器与过滤器的区别 2.3 应用场景 2.4 基础使用 2.5 用户登录权限控制 给我们带来的收获 一、JSR303 ( 1 ) 是什么 JSR 303是Java规范请求&#xff…

Sql语句大全--更新

今天抽空整理下项目中的Sql语句 项目中用到的Sql语句大全 Update 语句 Update 语句 Update语句update OLASF1.LLB set CBBTHCC 52 WHERE CBPOLNUMC201728534update OLASF1.LLB set CBBTHCC 01 WHERE CBPOLNUMC201728534update OLASF1.LB set CBBTHCC 01 WHERE CBPOLNUMC…

进程间通信——共享内存

目录 共享内存的原理 共享内存通信的实现步骤 通信实例 共享内存的原理 原理&#xff1a;可以说&#xff0c;共享内存是一种最为高效的进程间通信方式。因为进程可以直接读写内存&#xff0c;不需要任何数据的复制。为了在多个进程间交换信息&#xff0c;内核专门留出一块内…

C语言 —— 初步入门知识(第一个C语言程序、数据类型、变量常量、字符与注释)

本篇文章介绍C语言的基础知识&#xff0c;使读者对C语言能够有一个大概的认识. 不会细写每一个知识点, 但是能够入门C语言, 进行初步的C语言代码阅读. 首先, 什么是语言? 对于人和人之间进行交流的语言, 我们知道, 可以通过汉语, 英语, 日语等语言进行交流. 那么对于人和计算…

python LeetCode 刷题记录 66

题目 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 输入&#xff1a;digits [4,3,2,…

计算机网络:三次握手与四次挥手

摘取作者&#xff1a;拓跋阿秀 三次握手 三次握手&#xff08;Three-way Handshake&#xff09;其实就是指建立一个TCP连接时&#xff0c;需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后…

SpringMVC系列(四)之SpringMVC实现文件上传和下载

目录 前言 一. SpringMVC文件上传 1. 配置多功能视图解析器 2. 前端代码中&#xff0c;将表单标记为多功能表单 3. 后端利用MultipartFile 接口&#xff0c;接收前端传递到后台的文件 4. 文件上传示例 1. 相关依赖&#xff1a; 2. 逆向生成对应的类 3. 后端代码&#xf…

(10)(10.9) 术语表(一)

文章目录 前言 1 2.4Ghz 2 AGL 3 AHRS 4 APM 5 AMA 6 Arduino 7 APM (AutoPilot Mega) 8 ATC 9 Copter 10 Plane 11 Rover 12 BEC 13 Bootloader 14 COA 15 DCM 16 Eagle file 17 ESC 18 Firmware 19 FPV 20 FTDI 前言 &#xff01;Note 术语表未编入索…

微信小程序学习笔记1.0

第1章 微信小程序基础 1.1 微信小程序介绍 1.1.1 什么是微信小程序 微信小程序的特点&#xff1a; ① 微信小程序是不需要下载和安装的&#xff1b; ② 它可以完成App应用软件的交互功能&#xff1b; ③ 用户扫一扫或者搜一下就可以使用小程序&#xff1b; ④ 微信小程序…

正则表达式提取返回报文data里面的\“id\“:312254,的值

要使用正则表达式提取返回报文 data 字段里的 "id":312254 的值&#xff0c;您可以编写一个合适的正则表达式&#xff0c;并使用 Java 中的正则表达式匹配和提取功能。 假设 data 是一个包含 JSON 字符串的字段&#xff0c;类似于以下格式&#xff1a; { "…

【Python】IP地址解析并生成

IP地址解析并生成 #!python3 # codingutf-8 import logging import ipaddresslogging.basicConfig(levellogging.INFO,format%(asctime)s [%(filename)s:%(lineno)d] %(levelname)s # %(message)s,datefmt%Y-%m-%d %M:%S)def parse_ipaddress_user(addrs, flag):addr_fields s…