vivado 逻辑优化约束、功率优化、Vivado Tools电源优化

逻辑优化约束

逻辑保护

Vivado设计套件在逻辑优化过程中尊重DONT_TOUCH属性。确实如此不优化具有这些特性的离开网或单元。为了加快网络选择过程,网络具有DONT_TOUCH的属性被预过滤并且不被考虑用于物理优化。对于有关详细信息,请参阅《Vivado Design Suite用户指南:合成》中的“合成属性”一节(UG901)。通常会将DONT_TOUCH属性应用于叶单元,以防止它们优化。分层单元格上的DONT_TOUCH保留了单元格边界,但进行了优化可能仍然发生在单元内,并且常数仍然可以跨越边界传播。到保留分层网络,使用将DONT_TOUCH属性应用于所有网段-get_nets的segments选项。工具会自动将值为TRUE的DONT_TOUCH属性添加到具有值为TRUE的MARK_DEBUG属性。

这样做是为了在整个实现流程,以便可以在任何设计阶段对其进行探索。这是推荐的MARK_DEBUG的使用。然而,在极少数情况下,DONT_TOUCH可能过于严格可能会阻止诸如恒定传播、扫描或重映射之类的优化,从而导致更多关闭时机困难。在这种情况下,可以将DONT_TOUCH设置为FALSE值,而保持MARK_DEBUG为真。这样做的风险在于,带有MARK_DEBUG的网络可能优化后不再探测。

基于属性的逻辑优化

某些优化可以在特定对象上执行,而不是在整个设计上执行。这些优化是由对象属性触发的。逻辑优化检测存在这些属性,并自动运行必要的优化阶段。这适用于除移位寄存器优化属性之外的所有属性,这些属性需要-shift_register_opt选项。以下是属性摘要

功率优化

功率优化是使用时钟门控优化动态功率的可选步骤。可以是用于项目模式和非项目模式,可以在逻辑优化或以减少设计中的功率需求。功率优化包括AMD智能时钟门控解决方案,可以在不改变的情况下降低设计中的动态功耗功能。有关更多信息,请参阅Vivado Design Suite用户指南:功率分析和优化(UG907)。

Vivado Tools电源优化

Vivado电源优化分析了设计的所有部分,包括传统和第三方IP块。它还确定了主动变化信号可以被时钟门控的机会因为它们不是每个时钟周期都被读取的。这减少了切换活动,而切换活动又反过来降低了动态功率。

使用时钟使能(CE)

Vivado功率优化器利用了时钟使能(CE)的丰富供应。功率优化创建门控逻辑以驱动寄存器时钟使能,从而仅寄存器捕获相关时钟周期上的数据。请注意,在实际的硅中,CE实际上是选通时钟,而不是在D之间进行选择触发器的输入和反馈Q输出。这提高了CE输入的性能,但是还降低了时钟功率。

智能时钟门控

智能时钟门控还降低了简单双端口中专用块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,使用set_power_opt-exclude_cells[get_cells<bram_insts>]。

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

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

相关文章

10、MongoDB -- MongoDB 的 MongoTemplate 的功能和用法介绍

目录 MongoTemplate 的功能和用法演示前提&#xff1a;登录单机模式的 mongodb 服务器命令登录【test】数据库的 mongodb 客户端命令登录【admin】数据库的 mongodb 客户端命令 为 MongoDB 提供的两个 Starterspring-boot-starter-data-mongodb&#xff08;为以同步方式操作 Mo…

C语言:操作符详解(下)

目录 一、逗号表达式二、下标访问[ ]、函数调用()1. [ ]下标引用操作符2.函数调用操作符 三、结构成员访问操作符1.结构体(1) 结构的声明(2) 结构体变量的定义和初始化 2.结构成员访问操作符(1)结构体成员的直接访问(2)结构体成员的间接访问 四、操作符的属性&#xff1a;优先级…

<个人笔记>数论

1.快速幂 (1)求解问题&#xff1a; 给定 n组 ai,bi,pi求 aibi mod pi 的值。 (2)主要思想&#xff1a;任何一个数(b)&#xff0c;可以被 n 个 2k 相加获得。 即 b 2k1 2k2 2k3 … 2logb。 快速幂模板&#xff1a; typedef long long LL;LL qmi(int a,int b,int p){LL re…

深入理解JMM

一、什么是JMM JMM&#xff08;java memory model&#xff09;Java内存模型&#xff1a;是java虚拟机规范中定义的一组规范&#xff0c;用于屏蔽掉各种硬件和操作系统的内存访问差异&#xff0c;以实现让JAVA程序在各平台都能达到一致的并发结果。其主要规定了线程和内存之间的…

对称加密算法(DES、AES)

加密密钥 解密密钥 DES现在基本不再使用 3DES处理速度慢 AES通常用于移动通信系统加密以及基于SSH协议的软件

c++入门你需要知道的知识点(上)

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a;c入门 主厨&#xff1a;邪王真眼 所属专栏&#xff1a;c专栏 主厨的主页&#xff1a;Chef‘s blog 前言&#xff1a; 咱也是好久没有更…

Leet code 1658 将x减到0的最小操作数

解题思路&#xff1a;滑动窗口 主要思想&#xff1a;正难逆简 题目需要左找一个数 右找一个数 我们不如直接找中间最长的一连串子数让这串子树和为 数组子树和减去X 找不到就返回 -1 滑动窗口双指针从左端出发&#xff0c;进行 进窗口 判断 出窗口 更新结果四个步骤 代码…

python文件的打开及open方法

打开文件 方法1&#xff1a; 使用try/except/finally 例子&#xff1a; try:data_in open(rD:\TEST\a.txt,encodingutf-8)print(data_in.readlines(),end)except IOError:print(File Error occured!)finally:data_in.close() 结果&#xff1a; [这是一个测试文件。\n, 文…

C++ Qt里如何使用std::thread

本篇博客介绍如何在C++ Qt项目里使用std::thread,以及父子线程之间的交互方法。 怎么编写多线程代码 很多C++开发者困惑如何使用多线程,其实主要是在做项目时是否有多任务的场景,如果没有则不需要使用到多线程,用一个客户端开发的场景来解释一下如何使用多线程,例如开发一…

防火墙中的SNAT 与DNAT

SNAT&#xff1a;让内网机器可以访问外网服务器 DNAT:让外网机器可以访问内网服务器 SNAT的原理 源地址转换&#xff0c;根据指定条件修改数据包的源IP地址&#xff0c;通常被叫做源映射 数据包从内网发送到公网时&#xff0c;SNAT会把数据包的源IP由私网IP转换成公网IP 当响应…

JAVA 100道题目(2)

2.创建一个程序&#xff0c;接受用户输入的字符串并检查它是否为回文。 以下是一个简单的Java程序&#xff0c;它接受用户输入的字符串并检查该字符串是否为回文&#xff08;正读和反读都相同的字符串&#xff09;&#xff1a; java复制代码 import java.util.Scanner; public…

with open----bug

with open(os.path.join(output_path, "closed_rel_paths.jsonl"), "w") as f: # 打开文件&#xff0c;准备写入闭合关系路径for head in tqdm(rdict.rel2idx): # 遍历头部关系paths set() # 初始化路径集合if head "None" or "inv_&q…

【JetsonNano】onnxruntime-gpu 环境编译和安装,支持 Python 和 C++ 开发

1. 设备 2. 环境 sudo apt-get install protobuf-compiler libprotoc-devexport PATH/usr/local/cuda/bin:${PATH} export CUDA_PATH/usr/local/cuda export cuDNN_PATH/usr/lib/aarch64-linux-gnu export CMAKE_ARGS"-DONNX_CUSTOM_PROTOC_EXECUTABLE/usr/bin/protoc&qu…

在Java中如何将十进制转换为二进制,八进制,十六进制以及它们之间的互相转换

目录 一、算法实现进制之间的转换 &#xff08;1&#xff09;十进制转换为二进制 &#xff08;2&#xff09;二进制转换成十进制 二、Java中的API实现进制转换 &#xff08;1&#xff09;十进制转换为二进制 &#xff08;2&#xff09;十进制转换为八进制 &#xff08;3…

OJ_点菜问题(背包问题)

题干 C实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<vector> using namespace std;int main() {int c, n;scanf("%d%d", &c, &n);int p[101];int v[101];for (int i 0; i < n; i){scanf("%d%d", &p[i],…

Android Studio实现内容丰富的安卓宠物用品管理系统

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号128 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.系统公告 3.宠物社区&#xff08;可发布宠物帖子&#xf…

47、C++/引用,函数重载,类相关学习20240312

一、自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show()。 代码&…

oppo前端开发一面

提问&#xff1a; 1. 谈谈你怎么实现响应式布局 2. 谈谈你对weback的了解&#xff0c;vite和webpack的区别&#xff0c;webpack loader 3. 你项目怎么用CI/CD&#xff08;不懂&#xff0c;只知道自动化部署了&#x1f62d;&#xff09; 4. ts中type和interface区别 5. axi…

html5cssjs代码 008 名画欣赏

html5&css&js代码 008 名画欣赏 一、代码二、解释 这段HTML代码定义了一个网页&#xff0c;展示了名画欣赏的内容。主要包括页面的标题、样式定义和主体内容。其中&#xff0c;样式定义使用了CSS来控制页面的布局和外观&#xff0c;主体内容使用了结构化的HTML标签来展…

旅游市场游客满意度调查报告

民安智库开展游客满意度调查主要通过问卷调查的方式进行&#xff0c;在设计问卷时&#xff0c;应确保问题覆盖游客在某省旅游过程中可能遇到的各个方面&#xff0c;包括交通、住宿、餐饮、旅游景点、导游服务等。此外&#xff0c;还可以设置一些开放性问题&#xff0c;让游客提…