vivado综合分析与收敛技巧3

1、最优化 RAMB 输入逻辑以允许输出寄存器推断
以下 RTL 代码片段可从块 RAM 实际上为 ROM 生成关键路径 其中包含多个止于触发器 (FF) 的逻辑层次。 RAMB单元已在无可选输出寄存器 (DOA-0) 的情况下完成推断 这给 RAMB 输出路径增加了超过 1 ns 的额外延迟惩罚。
工具显示的对应以上 RTL 代码的关键路径如下图所示。
最好在综合后以及每个实现步骤后复查关键路径以识别需改进哪些逻辑组。如有任何路径过长 或者未能以最优方式利用 FPGA 硬件功能 请返回 RTL 描述 尝试了解已综合的逻辑未实现最优化的原因 并修改代码以帮助综合工具改进网表。
Vivado 具有强大的嵌入式调试机制 可供您用于开始使用细化视图。细化视图有助于识别问题可能的来源 而无需手动搜索整个 RTL 代码。请参阅下图中所示对应上述 RTL 代码片段的细化视图。
细化视图提供了有关给定测试案例结构效率低下的有效提示。在此例中 问题来自地址寄存器扇出 (addr_reg3_reg) ,它用于驱动存储器地址和部分胶合逻辑( 蓝色高亮
由综合工具执行的 RAMB 推断要求 RTL 代码中存在专用地址寄存器 这与当前地址寄存器扇出不兼容。由此导致综合工具对输出寄存器进行重定时以允许执行 RAMB 推断 而不是使用它来启用 RAMB 可选输出寄存器。
通过复制 RTL 代码中的地址寄存器 使用独立寄存器来驱动存储器地址和互连逻辑或 FPGA 逻辑 即可在启用输出寄存器的情况下推断 RAMB
手动复制后的 RTL 代码和细化视图如下图所示
已修改的 RTL 代码的关键路径如下图所示。请注意
addr_reg2_reg 寄存器已连接到块 RAM 的地址管脚。
addr_reg3_reg 寄存器在块 RAM 中已被吸收。
RAMB 输出寄存器已启用 由此显著降低了 RAMB 输出上的数据路径延迟。
2、改进 RAMB 输出上的关键逻辑
以下测试用例以将宏 RAM 推送至距离目标寄存器更近的位置为例 重点提供了有关通过重构来对关键路径进行改进的信息。
下图显示了 1 16x1 多路复用器 其中仅含 1 个从块 RAM 到多路复用器的输入 其余输入由寄存器馈送。
关键路径 RAM-> 2 个逻辑层次 -> FF
下图显示的关键路径中 以红色高亮显示块 RAM FF 的路径。块 RAM->FF FF->FF 都存在 2 个逻辑层次。由于块 RAM CLK->Q 延迟对于块 RAM 更高 因此 RAM->FF 为关键路径。
下一步 请注意下图中所示 RTL 代码 查看是否能够重构逻辑。
重构逻辑的最佳方法是将 16x1 多路复用器拆分为 2 个多路复用器来重写上述代码片段。您可将选择值 4'd5 的条件豁免, 将其用作为 2x1 多路复用器的启用条件 如下图所示 ), 创建此级联多路复用器结构可生成含 3 个逻辑层次的 FF->FF; 但块 RAM->FF 减少至 1 个逻辑层次。这样即可改进块 RAM->FF 路径 从而帮助下游工具实现更好的布局 ,因为 RAMB 布局比 LUT FF 布局难度更高。总之 对于任意给定设计 减少宏原语 RAMB URAM DSP 周围的长路径即可改进 QoR 结果。

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

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

相关文章

Java---抽象类讲解

文章目录 1. 抽象类概述2. 抽象类特点3. 抽象类的成员特点4. 抽象类猫狗应用 1. 抽象类概述 在Java中,一个没有方法体的方法应该定义为抽象方法;而类中如果有抽象方法,该类必须定义为抽象类。 2. 抽象类特点 1. 抽象类和抽象方法必须使用abst…

关键词挖掘软件-免费批量挖掘关键词的工具

在当今数字化时代,网站的曝光和排名对于吸引流量至关重要。而在这个大数据的背后,SEO(Search Engine Optimization,搜索引擎优化)成为许多网站主和创作者们追逐的关键。在SEO的世界里,关键词的选择和优化是…

从源代码出发,Jenkins 任务排队时间过长问题的解决过程

最近开发了一个部署相关的工具,使用 Jenkins 来构建应用。Jenkins 的任务从模板中创建而来。每次部署时,通过 Jenkins API 来触发构建任务。在线上运行时发现,通过 API 触发的 Jenkins 任务总是会时不时在队列中等待较长的时间。某些情况下的…

二阶龙格塔库积分法求解混沌产生方程(求助)

最近论文中常常接触到激光产生混沌的方程,激光器作为非线性元件,在信息处理中具有非常大的潜力,其中激光产生混沌应用在通信中很有用处。论文中对于模拟数据部分,采用了以下公式来产生混沌:以此公式产生混沌的方法应用…

React Native 更换淘宝镜像提升包下载速度

React Native 更换淘宝镜像提升包下载速度 每次运行项目的时候都是卡在包下载的命令上,每次一等就要 1h20m 极度崩溃,那是因maven镜像源为Google导致无法正常下载。 那么我们就可以切换maven镜像源,方法如下: 找到项目下的**/an…

《尚品甄选》:后台系统——分类品牌和规格管理(debug一遍)

文章目录 一、分类品牌管理1.1 表结构介绍1.2 列表查询1.3 添加功能1.4 修改功能1.5 删除功能 二、商品规格管理2.1 表结构介绍2.2 列表查询2.3 添加功能2.4 修改功能2.5 删除功能 一、分类品牌管理 分类品牌管理就是将分类的数据和品牌的数据进行关联,分类数据和品…

【LeetCode刷题】-- 78.子集

78.子集 class Solution {public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> ans new ArrayList<>();List<Integer> list new ArrayList<>();dfs(0,nums,ans,list);return ans;}private void dfs(int cur,int…

泛微OA对接金蝶云星空方案分享(对接场景解析)

分享金蝶云星空跟泛微OA系统集成对接的方案分享&#xff0c;主讲审批流程对接&#xff0c;表单对接的两类场景。分别是金蝶云星空发起申请和泛微发起流程审批&#xff0c;最终实现统一管理。 数据集成主要有以下好处&#xff1a; &#xff08;1&#xff09;数据一致性&#xf…

4、RTC 实时时钟Demo(STM32F407)

RTC是个独立的BCD定时器/计数器。RTC 提供一个日历时钟&#xff0c;两个可编程闹钟中断&#xff0c;以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。 (RTC实质&#xff1a;一个掉电(主电源)后还继续运行(由VBAT供电)的32位的向上计…

25. 深度学习进阶 - 权重初始化,梯度消失和梯度爆炸

文章目录 权重初始化梯度消失与梯度爆炸 Hi&#xff0c;你好。我是茶桁。 咱们这节课会讲到权重初始化、梯度消失和梯度爆炸。咱们先来看看权重初始化的内容。 权重初始化 机器学习在我们使用的过程中的初始值非常的重要。就比如最简单的wxb&#xff0c;现在要拟合成一个yha…

vue+el-tooltip 封装提示框组件,只有溢出才提示

效果 封装思路 通过控制el-tooltip的disabled属性控制是否提示通过在内容上绑定mouseenter事件监听内容宽度和可视宽度&#xff0c;判断内容是否溢出 封装代码 <template><div style"display: flex" class"column-overflow"><el-tooltip…

使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式

文章目录 一、引言&问题描述二、解决方案 一、引言&问题描述 在使用Spring来管理对象时&#xff0c;我们需要创建Spring的配置文件applicationContext.xml&#xff0c;如下图位置&#xff1a; 在resources目录下选择new->File 或 使用idea自带模板new->XML Con…