使用Vivado Design Suite进行功率优化

功率优化是一个可选步骤,它通过使用时钟门控来优化动态功率。它既可以在Project模式下使用,也可以在Non-Project模式下使用,并且可以在逻辑优化之后或布局之后运行,以减少设计中的功率需求。功率优化包括Xilinx的智能时钟门控解决方案,这些解决方案可以在不改变功能的前提下,减少设计中的动态功率。

一、Vivado功率优化工具

Vivado功率优化工具会分析设计的所有部分,包括legacy和第三方IP块。它还会识别出可以将活动变化信号进行时钟门控的机会,因为这些信号并非在每个时钟周期都被读取。这减少了切换活动,进而降低了动态功耗。
1、使用时钟使能(CEs)
Vivado功率优化器充分利用了丰富的时钟使能(CEs)资源。功率优化会创建门控逻辑来驱动寄存器时钟使能,以便寄存器只在相关的时钟周期捕获数据。
在实际的硅芯片中,CEs实际上是用于门控时钟,而不是在D输入和触发器反馈Q输出之间进行选择。这提高了CE输入的性能,同时也降低了时钟功耗。
Vivado工具通过智能地应用时钟门控技术和其他功耗降低策略,帮助设计者创建出功耗更低、效率更高的FPGA设计。这种优化不仅减少了功耗,而且通常不会对设计的性能产生负面影响。
2、智能时钟门控
图1 智能时钟门控
智能时钟门控还可以减少简单双端口或真双端口模式下专用块RAM的功耗,如下图2所示。
这些块包括多个使能信号:
• 数组使能(Array enable)
• 写使能(Write enable)
• 输出寄存器时钟使能(Output register clock enable)
大部分的功耗节省来自于使用数组使能。Vivado功率优化器实现了在没有数据写入且输出未被使用时减少功耗的功能。
通过智能地管理这些使能信号,Vivado工具能够在不需要访问或更新块RAM时关闭相关的时钟和电源,从而显著减少功耗。这种优化特别适用于那些块RAM使用模式不连续或仅在特定时间段内需要访问的设计。
图2 利用块RAM使能
除了数组使能之外,Vivado还会考虑写使能和输出寄存器时钟使能等其他因素,以进一步优化功耗。这些优化策略共同工作,确保在不影响设计功能的前提下最大限度地降低功耗。

二、power_opt_design

power_opt_design 命令用于分析和优化设计。默认情况下,它会分析和优化整个设计。该命令还执行智能时钟门控以优化功耗。
power_opt_design 语法:

power_opt_design [-quiet] [-verbose]

如果不想分析和优化整个设计,可以使用 set_power_opt 命令来配置优化器。还可以使用 set_power_opt 来指定 opt_design 中用于优化的特定块RAM单元。
set_power_opt 的语法如下:

set_power_opt [-include_cells <args>] [-exclude_cells <args>] [-clocks <args>] [-cell_types <args>] [-quiet] [-verbose]

如果使用 opt_design 运行,块RAM功耗优化将被跳过。
建议:如果希望在 opt_design 期间防止对特定块RAM进行块RAM功耗优化,请使用 set_power_opt -exclude_cells [get_cells <bram_insts>]。这允许通过指定要排除的块RAM实例来精确控制哪些块RAM会被包含在功耗优化中。通过这样做,可以确保只有关心的部分进行优化,同时保持其他部分的功耗优化被禁用。
要在 Vivado集成设计环境中通过power_opt_design启用功耗优化,您可以通过选择“Tools”→ “Project Settings”→ “Implementation”→ “Power Opt Design”来检查可用的is_enabled选项,如以下图3所示。启用后,功耗优化将作为Vivado集成设计环境中实现步骤的一部分运行。
图3
功耗优化设计可以在设计流程中的放置前(pre-place)或放置后(post-place)启用,但不能同时在两个地方启用。
在Vivado中启用功耗优化时,务必注意其在设计流程中的位置。放置在前的优化(pre-place)可能在逻辑和布局优化之前进行,而放置在后的优化(post-place)则在布局和布线完成后进行。

三、显示功耗优化报告

在Vivado中,功耗优化是在Vivado设计流程的opt_design和power_opt_design阶段执行的。这两个阶段都发生在实现过程中,这是在设计被合成之后进行的。
1、 synthesis后生成功耗优化报告
该报告将只包含有关功耗优化特性的信息,这些特性是编码到原始设计中的(例如,使用时钟使能(CE)对块RAM进行门控)。报告不会详细列出工具在实现过程中后来执行的功耗优化。
2、 implementation后生成功耗优化报告
①打开Vivado项目,点击Open Synthesized Design 或 Open Implemented Design。
②点击Reports → Report Power Optimization。
图4
在“Report Power Optimization”对话框中(上图4),可以指定以下选项:
• 结果名称(Results name):指定功耗优化报告在Vivado IDE中的显示名称。这个名称将用于在IDE的报告中标识和引用该报告。
• 导出到文件(Export to file):勾选此选项以在Vivado IDE的功耗优化报告之外,额外生成一个文本报告。需要指定文本报告的文件名和保存位置,并选择文件格式是TXT还是XML。
• 在新标签页中打开(Open in a new tab):勾选此选项以将新的功耗优化报告添加到Vivado IDE中当前显示的其他功耗优化报告中。如果希望保留当前在Vivado中显示的功耗优化报告,请不要勾选此选项,因为新报告将会替换当前显示的报告。
设置完这些选项后,可以点击“OK”或相应的按钮来生成并显示功耗优化报告。
③或者执行相关的Tcl命令:
report_power_opt -name <report_name>
④新的功耗优化报告将显示在IDE的结果窗口区域中。在Vivado IDE中,结果窗口通常用于展示各种设计分析、合成和实现步骤的输出结果。
图5
通用信息(General Information)
包含有关设计、在其中实现设计的AMD设备以及生成此功耗优化报告的Tcl命令的信息。这些信息对于理解报告的背景和上下文非常重要。
摘要(Summary)
列出了在设计中由用户优化以及由功耗优化工具优化的块RAM(Block RAMs)、SRLs(Shift Register Lookups)和Slice寄存器的数量。这提供了一个关于功耗优化所影响的资源类型的概览。
• 推荐(Recommendations)
提供了一些建议,帮助您进一步针对功耗优化您的设计。这些建议可能包括更改设计策略、使用不同的单元类型或配置,或者应用特定的优化技术。
• 层次结构信息(Hierarchical Information)
详细列出了Vivado针对其执行了功耗优化的块RAMs、SRLs和Slice寄存器的信息。这可能包括它们在设计中的位置(层次结构路径)、优化前后的功耗值,以及具体的优化策略或更改。
通过查看这些信息,可以更深入地了解功耗优化工具是如何影响您的设计的,并据此作出进一步的优化决策。这些信息对于设计工程师来说是非常有价值的,因为它们不仅提供了功耗优化的当前状态,还指出了可能进一步降低功耗的潜在领域。
提示:如果在任何层次结构的模块或实例上标记了DONT_TOUCH属性,功耗优化将不会优化这部分逻辑。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32F407+FreeRTOS+LWIP UDP组播

开发环境介绍&#xff1a; MCU&#xff1a;STM32F407ZET6 网卡&#xff1a;LAN8720A LWIP版本&#xff1a;V1.1.0 FreeRTOS 版本&#xff1a;V10.2.1 LAN8720A硬件原理图&#xff1a; 硬件连接说明&#xff1a; MII_RX_CLK/RMII_REF_CLK ------>PA1 …

吴恩达2022机器学习专项课程(一) 5.7 检测梯度下降是否收敛

问题预览/关键词 什么是梯度下降收敛&#xff1f;哪些方法可以检测梯度下降是否收敛&#xff1f;什么是学习曲线&#xff1f;曲线上升代表什么&#xff1f;什么原因造成的&#xff1f;如何检测梯度下降是否收敛&#xff1f;多少次迭代&#xff0c;梯度下降会收敛&#xff1f;什…

电商技术揭秘十六:电商中的实时分析与决策支持系统

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

C/C++的前置++、后置++以及前置--、后置--使用的详细讲解

在c/c语言中&#xff0c;变量的自增和自减经常被使用到&#xff0c;所以今天就来个详细讲解。本次讲解用到的语言是c语言&#xff0c;在c中的原理也是一样的。 变量自增自减分为四种情况&#xff0c;每种情况的结果都有所差异&#xff0c;四种情况分别为前置、后置、前置--、后…

Android14之智能指针的弱引用、强引用、弱指针、强指针用法区别及代码实例(二百零五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

四川古力未来科技抖音小店正规,科技创新引领行业潮流

随着互联网的迅猛发展&#xff0c;电商平台日益成为人们购物的主要渠道。在众多电商平台中&#xff0c;抖音小店以其独特的社交属性和内容营销方式&#xff0c;吸引了大量消费者的关注。四川古力未来科技抖音小店作为其中的佼佼者&#xff0c;以其正规的经营模式、丰富的产品线…

如何理解WMS仓储管理系统的建设理念

在现代企业经营中&#xff0c;WMS仓储管理系统的建设已成为提升竞争力的关键所在。随着科技的不断发展&#xff0c;越来越多的企业开始寻求实现高度自动化、信息化和网络化的生产模式。WMS仓储管理系统则成为实现这一目标的重要工具。本文将深入探讨WMS仓储管理系统解决方案的建…

7-13 日K蜡烛图

题目链接&#xff1a;7-13 日K蜡烛图 一. 题目 1. 题目 2. 输入输出格式 3. 输入输出样例 4. 限制 二、代码 1. 代码实现 #include <iostream> using namespace std;// 实心与空心 static const string str1(float Open, float Close) {float num Open - Close;if (…

竞赛升温,量子革命待发

人工智能已经吸引了全球企业巨头和政界领袖的广泛关注。同时&#xff0c;一场激烈的全球竞赛正在展开&#xff0c;目标是开发被许多专家视为下一个领域革命性技术的量子计算。 量子计算机利用量子物理学的原理&#xff0c;有潜力推动包括药物研究、股票市场分析以及数据加密在内…

[网鼎杯 2020 玄武组]SSRFMe

[网鼎杯 2020 玄武组]SSRFMe 源码 <?php function check_inner_ip($url) {$match_resultpreg_match(/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/,$url);if (!$match_result){die(url fomat error);}try{$url_parseparse_url($url);}catch(Exception $e){die(url foma…

解决grafana报错This panel requires Angular (deprecated).

背景&#xff1a;使用docker部署了prometheus,grafana,node exporter和cadvisor 然后去grafana官网下载成熟的模板导入到平台&#xff0c;发现模板上的图标全部报错This panel requires Angular (deprecated). 解决方法&#xff1a;修改grafana配置文件&#xff0c;如下&…

电脑开机提示“no bootable device”,无法进入系统

当您的Windows 10电脑开机时提示“no bootable device”,这意味着计算机无法找到一个可以启动操作系统的设备。这个问题通常与硬件连接、BIOS设置、硬盘问题、引导扇区故障或系统文件损坏等有关。以下是一系列详细的解决步骤: 检查硬件连接:关闭电脑,拔掉电源线,打开机箱检…

合并单元格的excel文件转换成json数据格式

github地址: https://github.com/CodeWang-Ay/DataProcess 类型1 需求1: 类似于数据格式: https://blog.csdn.net/qq_44072222/article/details/120884158 目标json格式 {"位置": 1, "名称": "nba球员", "国家": "美国"…

threejs 基础知识点汇总

threejs 基础知识点汇总 之前写了几篇博文&#xff0c;但是我觉得写的不好&#xff0c;我今天再补充一篇还不好的&#xff0c;把基础知识点汇总一下&#xff0c;不写运行的代码了&#xff0c;只写关键代码&#xff0c;但是看了之前我写的那几篇&#xff0c;看这篇的话问题其实不…

PTA(题目集三 题目 代码 C++ 注解)

目录 题目一&#xff1a; 代码&#xff1a; 题目二&#xff1a; 代码&#xff1a; 题目三&#xff1a; 代码&#xff1a; 题目四&#xff1a; 代码&#xff1a; 题目五&#xff1a; 代码&#xff1a; 题目六&#xff1a; 代码&#xff1a; 题目七&#xff1a; 代码…

如何利用AI绘制美观的地学图片摘要--提供各类矢量的地表地形和植被元素

我们经常在高级期刊的文章里面见到类似以下的图片&#xff08;Anatomy of a Glacier - Glacier Bay National Park & Preserve (U.S. National Park Service)&#xff09; 这样的表达对于研究结果非常生动形象。下面的这个网站提供了很多类似的元素&#xff0c;可以有助于我…

MySQL8.0.36-社区版:Windows和Linux上的应用部署(1)

简介&#xff1a; 本章不做过多的介绍了&#xff0c;你可以去官方的文章查看到更详细&#xff0c;更专业的介绍&#xff0c;我这里直接讲解如何进行安装 MySQL :: MySQL Documentationhttps://dev.mysql.com/doc/ Windows部署 这里我使用的是win10专业版系统 MySQL :: Dev…

Java项目——瑞吉外卖笔记

hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;很高兴你能来阅读&#xff0c;昵称是希望自己能不断精进&#xff0c;向着优秀程序员前行!&#x1f4aa;&#x1f4aa;&#x1f4aa; 目前博客主要更新Java系列、数据库、项目案例、计算机基础等知识点。感谢你的阅读和…

使用MQTT.fx接入新版ONENet(24.4.8)

新版ONENet使用MQTT.fx 模拟接入 目录 新版ONENet使用MQTT.fx 模拟接入开始前的准备创建产品设备获取关键参数 计算签名使用MQTT.fx连接服务器数据流准备与上传数据流准备数据发送与接收 开始前的准备 创建产品 设备下载Token签名工具生成签名 创建产品设备 根据以下内容填写…

算法四十天-删除排序链表中的重复元素

删除排序链表中的重复元素 题目要求 解题思路 一次遍历 由于给定的链表是排好序的&#xff0c;因此重复的元素在链表中的出现的位置是连续的&#xff0c;因此我们只需要对链表进行一次遍历&#xff0c;就可以删除重复的元素。 具体地&#xff0c;我们从指针cur指向链表的头节…