vivado中移位寄存器的优化(二)

news2025/1/23 12:13:03

移位寄存器优化用于改善移位寄存器单元(SRLs)与其他逻辑单元之间的负裕量路径的时序。如果存在对移位寄存器单元(SRL16E或SRLC32E)的时序违规,优化会从SRL寄存器链的开始或结束位置提取一个寄存器,并将其放置在逻辑结构中,以改善时序。这种优化缩短了原始关键路径的布线长度。
 下图1是由一个LUT构成的最高支持32位移位的移位寄存器SRLC32E结构。图1 32bit移位寄存器配置
 SRLC32E的引脚说明

  • CLK:时钟
  • CE:时钟使能,高电平有效
  • SHIFTIN(D):数据输入
  • A[4:0]:移位长度配置(支持1~32位),需要+1。如9位移位则A[4:0]需配置成1+8(01000)
  • SHIFTOUT:32个长度移位后的数据输出,可用来与其他SRLC32E级联,形成更大长度的移位寄存器
  • OUTPUT(Q):当移位长度被确定后,数据就会出现在Q端

一、移位寄存器优化的条件

移位寄存器的优化仅仅是将寄存器从移位寄存器移动到逻辑结构中,但永远不会将寄存器从逻辑结构移动到移位寄存器,因为后者不会改善时序。
要使此优化发生,必须满足以下条件:
• SRL地址(移位长度)必须为1或更大,以便有寄存器级可以从SRL中移出。
• SRL地址必须是一个常数值,由逻辑1或逻辑0驱动。
• 必须存在从SRL单元开始或结束的时序违规,该SRL单元位于最坏的关键路径中。
某些电路拓扑结构不会被优化:
• 通过链接在一起的SRLC32E形成的更大移位寄存器不会被优化。
• 使用Q31输出引脚的SRLC32E。
• 结合成一个LUT的SRL16E,并且同时使用了O5和O6输出引脚。

二、FDRE单元

从SRLs(Shift Register Lookup Tables)移至逻辑结构中的寄存器通常是FDRE(Flip-Flop D-type with Reset Enable)单元。在移动这些寄存器的同时,FDRE和SRL的INIT属性,以及SRL的地址都会相应地进行调整。
具体来说,当SRL中的寄存器级被提取并放置到逻辑结构中作为独立的FDRE单元时,FDRE的初始状态需要与原来SRL中对应寄存器级的初始状态保持一致。因此,FDRE的INIT属性会根据SRL的原始INIT属性进行设置,以确保数据的一致性和正确性。
同时,由于寄存器级的移除,SRL本身的长度发生了变化,因此SRL的地址也需要进行调整。这是为了确保剩余的寄存器级能够正确地对齐,并且任何依赖于SRL地址的逻辑操作都能够按照预期进行。
这些调整都是自动进行的,通常由FPGA开发工具(如Xilinx的Vivado)在优化过程中完成。工具会分析设计的时序性能,识别出可以进行优化的SRLs,并自动执行寄存器提取、FDRE放置和属性调整等操作,以改善设计的时序性能。
总的来说,从SRLs到逻辑结构的寄存器移动是FPGA优化中的一个关键步骤,它有助于减少信号传输的延迟、优化关键路径的性能,并最终提高整个系统的时序性能。

三、移位寄存器优化步骤

图2是一个从移位寄存器(SRL16E)srl_inst开始的关键路径示例。
图2 从移位寄存器(SRL16E)srl_inst开始的关键路径
当一条关键路径从移位寄存器(SRL16E)srl_inst开始,到逻辑单元logic_cell_out结束,并且存在时序违规时,会触发移位寄存器优化来改善这条路径的时序。假设SRL地址是一个常数值3,优化过程所采取的步骤如下:
1、识别关键路径和时序违规
Vivado工具首先会分析设计,并确定从srl_inst到logic_cell_out的路径为关键路径,且存在时序违规。
2、检查SRL地址和输出
优化器检查srl_inst的SRL地址,确认它是一个常数值3。
3、提取寄存器
根据SRL地址和时序违规的情况,优化器决定从srl_inst的开头或结尾提取一个寄存器。由于地址是3,说明至少有三个寄存器级在SRL内部。优化器会选择提取一个或多个寄存器级,以最短化关键路径的布线长度。
4、将寄存器放置到逻辑结构中
提取出来的寄存器(可能是FDRE单元)会被放置到逻辑结构中,通常是在srl_inst和logic_cell_out之间的某个位置,以改善时序性能。优化器会选择合适的插入点,使得寄存器的加入能够最大程度地减少关键路径上的延迟。
5、调整INIT属性和SRL地址
由于寄存器的移动,可能需要调整SRL的INIT属性,以确保在寄存器被移除后,SRL的初始状态仍然正确。同时,如果优化器移动了多个寄存器阶段,可能还需要调整SRL的地址值,以反映剩余的寄存器阶段数量。
6、重新评估时序
完成上述优化步骤后,Vivado会重新评估设计的时序,以确保时序违规已经被解决或至少得到了显著改善。
请注意,实际的优化步骤和结果可能会根据具体的FPGA架构、设计约束和时序要求而有所不同。因此,在进行此类优化时,建议仔细评估其对整体设计的影响,并确保最终设计满足所有的性能、时序和资源要求。
经过移位寄存器优化后的关键路径示例,如图3所示。
图3移位寄存器优化后的关键路径

四、移位寄存器优化的优点

在进行了移位寄存器优化后,srl_inst SRL16E的地址被递减,以反映内部寄存器阶段减少了一个。原来的关键路径现在变得更短了,因为srlopt寄存器被放置得更靠近下游的单元,并且FDRE单元具有相对更快的时钟到输出延迟。
这个优化过程中,由于将SRL16E的最后一个寄存器级移出并作为一个独立的FDRE单元放置在逻辑结构中,SRL16E的内部寄存器级数量减少了一个。因此,SRL16E的地址需要相应地递减,以确保后续的读取或写入操作能够正确地定位到剩余寄存器级中的数据。
优化后的设计将FDRE单元放置在更靠近logic_cell_out的位置,从而减少了信号从SRL16E到逻辑输出单元所需经过的物理路径长度。这有助于减少信号传输的延迟,进而改善时序性能。
此外,FDRE单元通常具有比SRL16E内部寄存器阶段更快的时钟到输出延迟。这意味着当信号到达FDRE单元时,它能够更快地将其传递给下游的逻辑单元。这也是优化能够改善时序的一个重要因素。
综上所述,通过递减SRL16E的地址、将寄存器阶段移动到逻辑结构中,并利用FDRE单元较快的时钟到输出延迟,成功地缩短了关键路径的长度,从而改善了设计的时序性能。

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

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

相关文章

centos安装使用elasticsearch

1.首先可以在 Elasticsearch 官网 Download Elasticsearch | Elastic 下载安装包 2. 在指定的位置(我的是/opt/zhong/)解压安装包 tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz 3.启动es-这种方式启动会将日志全部打印在当前页面,一旦使用 ctrlc退出就会导…

java web day28

多表查询 内连接 写法 外链接 子查询 标量子查询 列子查询 行子查询 表子查询

小程序实现订阅功能和测试发送订阅信息

现在一次性订阅是只能用户点一次才能发送一次,而针对长期模板只有规定的几种类目政务、民生、交通等等的才可以,所以说感觉这功能其实已经不是很适合使用了,只适合一些特别的场景才可以使用。 地址:https://developers.weixin.qq…

软件设计师26--关系代数

软件设计师26--关系代数 考点1:关系模式相关概念例题: 考点1:关系模式相关概念 并∪:结果是两张表所有记录的合并,相同记录只显示一次。 交∩:结果是两张表中相同的记录。 差-:S1-S2&#xff0…

Linux 下安装 openjdk 17【详细步骤】

👉 目标 了解为什么不选择 oracle jdk17,而是选择 openjdk17linux 下安装 openjdk17 详细步骤为什么不选择 oracle jdk17? 官网:Java Downloads | Oracle 中国 官网描述:JDK 17 binaries are free to use in production and free to redistribute, at no cost, under t…

Goingpub国自然基金-免费查询

可进行年份、学部、项目类别等检索,支持生成主题词汇总分析报告。 最最最关键,免费,只需要你注册登录一下,防止被爬虫侵扰。 界面简单,实用,支持模糊搜索,包含最新2023年数据,共56…

蚁群优化算法(Ant Colony Optimization Algorithm)

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法引言 蚁群算法,是一种模拟蚂蚁觅食行为的优化算法。想象一下,当你在野餐时,不小心洒了一些糖在地上。一…

2024免费Mac电脑用户的系统清理和优化软件CleanMyMac

作为产品营销专家,对于各类产品的特性与优势有着深入的了解。CleanMyMac是一款针对Mac电脑用户的系统清理和优化软件,旨在帮助用户轻松管理、优化和保护Mac电脑。以下是关于CleanMyMac的详细介绍: CleanMyMac X2024全新版下载如下: https://…

React18从入门到实战

文章目录 一、React环境的搭建二、项目文件的介绍(1)package.json,他是项目存放依赖包的地方,里面包括了一些项目核心包及下载的其他插件包(2)src文件夹是项目源码目录,平时开发页面就在其中&am…

如何成为一名优秀的工程师下

身为工程师,理所当然要重视实践,自然科学不管发展到何时都离不开实验。 电子学本身就是 为了指导工程实践。所以不要谈空洞的理论。现在很多毕业生都面临这样的问题,总是谈一些空洞的理论,甚至错误的但还不以为然的理论。实践可以…

【软考】23种设计模式详解,记忆方式,并举例说明

23种设计模式详解,举例说明 一、创建型模式1.1、抽象工厂模式(Abstract Factory)1.1.1、简介1.1.2、意图与应用场景1.1.3、结构1.1.4、优缺点1.1.4、示例代码(简化版) 1.2、建造者模式(Builder)…

MySQL主从的介绍与应用

mysql主从 文章目录 mysql主从1. 主从简介1.1 主从作用1.2 主从形式 2. 主从复制原理3. 主从复制配置3.1 mysql安装(两台主机安装一致,下面只演示一台主机操作)3.2 mysql主从配置3.2.1 确保从数据库与主数据库里的数据一样3.2.2 在主数据库里…

34-4 CSRF漏洞 - CSRF跨站点请求伪造

一、漏洞定义 CSRF(跨站请求伪造)是一种客户端攻击,又称为“一键式攻击”。该漏洞利用了Web应用程序与受害用户之间的信任关系,通过滥用同源策略,使受害者在不知情的情况下代表攻击者执行操作。与XSS攻击不同,XSS利用用户对特定网站的信任,而CSRF则利用了网站对用户网页…

vscode教程

个人笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔:工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客 目录 一&#xff1a…

【SpringBoot3】SpringBoot入门

需求&#xff1a;使用 SpringBoot 开发一个web应用&#xff0c;浏览器发起请求 /hello后&#xff0c;给浏览器返回字符串 “hello world "。 步骤 ①. 创建Maven工程 ②. 导入spring-boot-stater-web起步依赖 <dependency> <groupId>org.springframework…

每天学习一个Linux命令之curl

每天学习一个Linux命令之curl 在Linux系统中&#xff0c;有很多有用的命令可以帮助我们与网络进行交互。一个非常常用的命令是curl&#xff0c;它是一个功能强大的工具&#xff0c;可用于发送、接收和处理各种网络请求。本文将详细介绍在Linux下使用curl命令的各种选项及其用法…

IntelliJ IDEA - Since Maven 3.8.1 http repositories are blocked

问题描述 新下载的 IDEA 在构建项目时&#xff0c;在下载引用的包时出现 “Since Maven 3.8.1 http repositories are blocked” 的问题。 原因分析 从 Maven 3.8.1 开始&#xff0c;不再支持 http 的包了。由于现在对网络安全的日益重视&#xff0c;都在向 https 转变&#…

虚拟M的改进

之前为了保留老习俗&#xff0c;虚拟M采用了和M调用一样的约定&#xff0c;这样的好处是习惯上保持一致&#xff0c;小伙伴提出现在是java了&#xff0c;还这样约定方法太啰嗦&#xff0c;确实是有点啰嗦&#xff0c;进行了改进。 改进为三个参数的&#xff0c;方法可以写在任…

SQLite 4.9的 OS 接口或“VFS”(十三)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite字节码引擎&#xff08;十二&#xff09; 下一篇:SQLite 4.9的虚拟表机制(十四) 1. 引言 本文介绍了 SQLite OS 可移植性层或“VFS” - 模块位于 SQLite 实现堆栈底部 提供跨操作系统的可移植性。 VFS是Virtual File…

政安晨:【Keras机器学习实践要点】(二十)—— 使用现代 MLP 模型进行图像分类

目录 简介 设置 准备数据 配置超参数 建立分类模型 定义实验 使用数据增强 将补丁提取作为一个图层来实施 将位置嵌入作为一个图层来实施 MLP 混频器模型 FNet 模式 gMLP 模式 实施 gMLP 模块 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐…