在project模式下自定义Implementation Strategies

Implementation Settings定义了默认选项,当要定义新的implementation runs时会使用这些选项,选项的值可以在Vivado IDE中进行配置。
图1展示了“Settings”对话框中的“implementation runs”对话框。要从Vivado IDE打开此对话框,请从主菜单中选择“Tools > Settings”。
图1 Implementation Settings
在Vivado中,自定义Implementation Strategies对于优化设计和提高性能至关重要。通过修改Implementation Settings,可以调整各种参数,如优化级别、并行度、目标硬件等,以满足特定项目的需求。

一、通过Flow Navigator访问Active Run的Implementation Settings

还可以通过在Flow Navigator的顶部选择“Settings”,然后单击“Implementation”类别,来访问active implementation run的Implementation Settings。
如图1所示的Settings 对话框包含以下字段:
• Default Constraint Set
选择implementation run时默认使用的约束集。
• Report Settings
使用此菜单选择报告策略。可以从预设的报告策略中选择,或者定义自己的策略来选择在每个设计步骤中运行哪些报告。
• Incremental Compile
如果需要,指定增量编译检查点。
• Strategy
选择用于实现运行的策略。Vivado Design Suite包含一组预定义的策略。也可以创建自己的实现策略,并将更改保存为新策略以供将来使用。
• Description
描述所选的Implementation Strategies。用户定义的策略的描述可以通过输入新的描述进行更改。Vivado工具标准实现策略的描述无法更改。
通过Flow Navigator访问Implementation Settings,可以方便地查看和修改当前活动运行的配置选项。这对于调整设计流程、优化性能或解决特定问题非常有用。

二、定义Implementation Strategies

run strategy是解决设计中synthesis 或 implementation 挑战的预定义方法。
• 策略是在Vivado implementation特性中为预配置选项集定义的。
• 策略是针对特定工具和版本的。
• Vivado Design Suite的每个主要版本都包含特定于版本的策略。Vivado实现包括几个常用的策略,这些策略都经过了内部基准测试的验证。
提示:不能保存对预定义implementation strategies的更改。但是,可以复制、修改和保存预定义策略以创建自己的策略。
在Vivado中,定义implementation strategies是优化设计和提高性能的关键步骤。通过选择或创建适合项目需求的策略,可以更好地控制设计流程,并解决特定的implementation挑战。Vivado提供了多种预定义的策略,这些策略基于广泛的测试和验证,适用于各种常见的设计场景。如果需要更精细的控制或针对特定项目的优化,可以复制和修改这些预定义策略,以创建自定义策略,并保存以供将来使用。
图2 Default Implementation Strategies

三、访问当前定义的策略

要访问当前定义的运行策略,请在Vivado IDE主菜单中选择“Tools > Settings”。
要查看、复制和修改运行策略,请按照以下步骤操作:
1、从主菜单中选择“Tools > Settings”。
2、在左侧面板中选择“Strategies ”。
3、选择“Run Strategies”以查看、复制或修改运行策略**。**
run Strategies页面(如上图2所示)包含各种工具和发行版本的预定义运行策略列表。
4、在“Flow”下拉菜单中,为可用策略选择适当的Vivado Implementation版本。

将显示包含的策略列表。
5、创建新策略或复制现有策略。
要创建新策略,请单击工具栏上的“Create Strategy”按钮或从右键菜单中选择它。
要复制现有策略,请选择工具栏或弹出菜单中的“Copy Strategy”。
Vivado设计工具将执行以下操作:
a. 复制当前所选策略。
b. 将其添加到“User Defined Strategies”列表中。
c. 在对话框的右侧显示策略选项,以便进行修改。
6、为新策略提供名称和描述
Name:输入要分配给运行的策略名称。
Type:指定综合或实现。
Tool Version:指定工具版本。
Description:输入在设计运行结果表中显示的策略描述。
7、编辑各个实现步骤的Options
设计初始化(init_design)
优化设计(opt_design)
电源优化设计(power_opt_design)(可选)
放置设计(place_design)
放置后电源优化设计(power_opt_design)(可选)
放置后物理优化设计(phys_opt_design)(可选)
布线设计(route_design)
布线后物理优化设计(post_route_phys_opt_design)(可选)
写入比特流(write_bitstream)(除Versal之外的所有设备)
写入设备映像(write_device_image)(Versal设备)
提示:选择一个选项以在设计运行设置对话框的底部查看该选项的简要说明。
8、点击特定选项的右侧列以修改命令选项。
请参见下面的图3作为示例。
图3 Edit Implementation Steps
修改命令选项的步骤为:

  • 从下拉菜单中选择预定义选项。
  • 使用复选框启用或禁用某些选项。
  • 为带有文本输入字段的选项键入用户定义的值。
  • 使用文件浏览器为接受文件名和路径的选项指定文件。
  • 在implementation过程的每个步骤之前和之后插入自定义Tcl脚本(称为钩子脚本)(tcl.pre和tcl.post)。这允许您在每个implementation步骤之前或之后执行特定任务(例如,在Place Design之前和之后生成时序报告以比较时序结果)。
    注意:tcl.pre和tcl.post脚本中的相对路径是相对于它们应用的项目的适当运行目录的:
    /<project.runs>/<run_name>
    可以使用当前项目或当前运行的DIRECTORY属性在脚本中定义相对路径:
get_property DIRECTORY [current_project]
get_property DIRECTORY [current_run]

9、点击“OK”以保存新策略。
新策略将列在“User Defined Strategy”下。Vivado工具将用户定义的策略保存到以下位置:
Linux操作系统
$HOME/.Xilinx/Vivado/strategies
Windows
C:\Users\AppData\Roaming\Xilinx\Vivado\strategies
这样,就可以创建、编辑和保存自定义策略,以满足特定设计项目的需求。通过仔细调整这些策略,可以优化实现过程,从而改进设计的性能、功耗和面积等方面。

四、共享运行策略

设计团队如果希望创建和共享策略,可以将任何用户定义的策略从用户目录复制到 /Vivado//strategies 目录。其中, 是Xilinx软件的安装目录, 是发行版本号。
通过这样做,其他团队成员可以在他们自己的Vivado环境中访问和使用这些共享的策略,而无需每个用户都重新创建它们。这有助于确保团队内的设计流程一致性和可重复性。
以下是复制和共享策略的步骤:
1、找到用户定义的策略文件。这些文件通常位于用户目录下的Vivado策略文件夹中,例如在Linux系统中是 $HOME/.Xilinx/Vivado/strategies,在Windows系统中是 C:\Users<username>\AppData\Roaming\Xilinx\Vivado\strategies。
2、复制这些策略文件。可以使用文件浏览器或命令行工具来复制这些文件。
3、将策略文件粘贴到Vivado安装目录下的策略文件夹中。路径应类似于 /Vivado//strategies,其中 是Xilinx软件安装所在的目录, 是你正在使用的Vivado版本。
4、确保其他团队成员在他们的Vivado环境中也能访问到这个共享的策略目录。这通常意味着他们需要拥有读取这些文件的权限。
5、在Vivado IDE中,团队成员可以通过“Tools > Settings >Strategy”来访问这些共享的策略,并像使用其他策略一样选择和应用它们。

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

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

相关文章

网络通信(一)

网络编程 互联网时代&#xff0c;现在基本上所有的程序都是网络程序&#xff0c;很少有单机版的程序了。 网络编程就是如何在程序中实现两台计算机的通信。 Python语言中&#xff0c;提供了大量的内置模块和第三方模块用于支持各种网络访问&#xff0c;而且Python语言在网络…

QT实现NTP功能

一.NTP基础 1.NTP定义 NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是由RFC 1305定义的时间同步协议&#xff0c;用于分布式设备&#xff08;比如电脑、手机、智能手表等&#xff09;进行时间同步&#xff0c;避免人工校时的繁琐和由此引入的误…

Web日志/招聘网站/电商大数据项目样例【实时/离线】

Web服务器日志分析项目 业务分析 业务背景 ​ 某大型电商公司&#xff0c;产生原始数据日志某小时达4千五万条&#xff0c;一天日志量月4亿两千万条。 主机规划 &#xff08;可略&#xff09;日志格式&#xff1a; 2017-06-1900:26:36101.200.190.54 GET /sys/ashx/ConfigH…

预处理指令详解

前言 上一节我们了解了文件操作的相关内容&#xff0c;本节我们来了解一下预处理指令&#xff0c;那么废话不多说&#xff0c;我们正式开始今天的学习 预定义符号 在C语言中&#xff0c;设置了一些预定义的符号&#xff0c;可以供我们直接使用&#xff0c;预定义符号是在程序…

一场人生的风险控制,商业社会识人指南

一、资料前言 本套社会识人资料&#xff0c;大小679.94M&#xff0c;共有37个文件。 二、资料目录 识人的终极目的&#xff1a;一整场人生的风险控制.pdf 信任的搭建&#xff1a;更多的时间与维度.pdf 没有搞不定的人&#xff01;角色人格与全面人格.pdf 政治不正确的正确…

程序员为什么不能一次性写好,需要一直改Bug?

程序员为什么不能一次性写好&#xff0c;需要一直改Bug&#xff1f; 我有一问&#xff1a; 你为什么不上清华呢&#xff0c;高考答满分不就行了&#xff1f; 程序员在软件开发过程中可能会遇到需要不断修改Bug的情况&#xff0c;这主要是由以下几个原因造成的&#xff1a; 复杂…

Linux简单介绍

Linux简单介绍 编译器VMware虚拟机Ubuntu——LinuxOS为什么使用LinuxOS&#xff1f; 目录结构Windows目录结构Linux操作系统home是不是家目录&#xff1f; Linux常用命令终端命令行提示符与权限切换命令tab 作用&#xff1a;自动补全上下箭头pwd命令ls命令mkdir命令touch命令rm…

智能革命:ChatGPT3.5与GPT4.0的融合,携手DALL·E 3和Midjourney开启艺术新纪元

迷图网(kk.zlrxjh.top)是一个融合了顶尖人工智能技术的多功能助手&#xff0c;集成了ChatGPT3.5、GPT4.0、DALLE 3和Midjourney等多种智能系统&#xff0c;为用户提供了丰富的体验。以下是对这些技术的概述&#xff1a; ChatGPT3.5是由OpenAI开发的一个自然语言处理模型&#x…

第17章 反射机制

一 反射(Reflection)的概念 1.1 反射的出现背景 Java程序中&#xff0c;所有的对象都有两种类型&#xff1a;编译时类型和运行时类型&#xff0c;而很多时候对象的编译时类型和运行时类型不一致。 Object obj new String(“hello”); obj.getClass() 例如&#xff1a;某些变…

C++多线程:单例模式与共享数据安全(七)

1、单例设计模式 单例设计模式&#xff0c;使用的频率比较高&#xff0c;整个项目中某个特殊的类对象只能创建一个 并且该类只对外暴露一个public方法用来获得这个对象。 单例设计模式又分懒汉式和饿汉式&#xff0c;同时对于懒汉式在多线程并发的情况下存在线程安全问题 饿汉…

深入理解计算机系统 家庭作业 2.75

/* 书中的公式是w位的公式(mod 就是为了截断成w位),我们现在做的是2w位中的前w位 注意书上这句话:由于模运算符,所有带有权重和的项都丢掉 对应到本题 该项除以后还是超过了2w位所以被丢弃了,因为题目说了只有2w位 这个式子除以就是我们想要的最终结果 函数signed_high_p…

前端学习<四>JavaScript基础——03-常量和变量

常量&#xff08;字面量&#xff09;&#xff1a;数字和字符串 常量也称之为“字面量”&#xff0c;是固定值&#xff0c;不可改变。看见什么&#xff0c;它就是什么。 常量有下面这几种&#xff1a; 数字常量&#xff08;数值常量&#xff09; 字符串常量 布尔常量 自定义…

Vol.34 Good Men Project:一个博客网站,每月90万访问量,通过付费订阅和广告变现

今天给大家分享的案例网站是&#xff1a;Good Men Project&#xff0c;这是一个专门针对男性成长的博客网站&#xff0c;内容包括人际关系、家庭、职业发展等话题。 它的网址是&#xff1a;The Good Men Project - The Conversation No One Else Is Having 流量情况 我们先看…

高分卫星助力台湾省花莲县地震应急救援

4月3日7时58分&#xff0c;在台湾省花莲县海域&#xff08;北纬23.81度&#xff0c;东经121.74度&#xff09;发生7.3级地震&#xff0c;震源深度12公里。接中国地震局地震预测研究所应急需求&#xff0c;国家航天局对地观测与数据中心&#xff08;以下简称“中心”&#xff09…

C#仿OutLook的特色窗体设计

目录 1. 资源图片准备 2. 设计流程&#xff1a; &#xff08;1&#xff09;用MenuStrip控件设计菜单栏 &#xff08;2&#xff09;用ToolStrip控件设计工具栏 &#xff08;3&#xff09;用StatusStrip控件设计状态栏 &#xff08;4&#xff09;ImageList组件装载树节点图…

SQLyog连接数据库8.0版本解析错误问题解决方案

问题描述&#xff1a; 解决方案&#xff1a; alter userrootlocalhostidentified with mysql_native_password by 密码; 再次连接就可以了。

实现顺序表的增删查改

现在让我们探索数据结构这个美妙的世界吧&#xff01; 概念介绍 线性表是具有相同特性的数据元素的有限序列。线性表是一种在实际运用中广泛运用的线性结构&#xff0c;如线性表&#xff0c;栈&#xff0c;队列&#xff0c;字符串等。 顺序表的本质是数组&#xff0c;实现了…

js的事件冒泡、捕获、委托

事件不仅存在js中&#xff0c;也存在在其他语言中&#xff0c;js事件背后的主要思想是能够在特定事件发生时运行代码。 先普及一个概念&#xff0c;什么是事件处理程序&#xff1f; 事件处理程序就像一个特殊的通用遥控器&#xff0c;可以执行某些操作&#xff0c;例如更改电…

java自动化-03-04java基础之数据类型举例

1、需要特殊注意的数据类型举例 1&#xff09;定义float类型&#xff0c;赋值时需要再小数后面带f float num11.2f; System.out.println(num1);2&#xff09;定义double类型&#xff0c;赋值时直接输入小数就可以 3&#xff09;另外需要注意&#xff0c;float类型的精度问题…

鸿蒙开发就业前景到底怎么样?

随着科技的不断进步&#xff0c;鸿蒙操作系统的推出为开发者们带来了新的机遇和挑战。鸿蒙&#xff0c;作为华为自主研发的操作系统&#xff0c;旨在为消费者提供更为流畅、安全的智能设备体验。那么&#xff0c;鸿蒙开发就业前景如何呢&#xff1f; 一、鸿蒙操作系统的优势 …