在project模式下自定义Implementation Strategies

2024-04-04 23:12

本文主要是介绍在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”来访问这些共享的策略,并像使用其他策略一样选择和应用它们。

这篇关于在project模式下自定义Implementation Strategies的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877055

相关文章

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

kafka自定义分区器使用详解

《kafka自定义分区器使用详解》本文介绍了如何根据企业需求自定义Kafka分区器,只需实现Partitioner接口并重写partition()方法,示例中,包含cuihaida的数据发送到0号分区... 目录kafka自定义分区器假设现在有一个需求使用分区器的方法总结kafka自定义分区器根据企业需求

C++中的解释器模式实例详解

《C++中的解释器模式实例详解》这篇文章总结了C++标准库中的算法分类,还介绍了sort和stable_sort的区别,以及remove和erase的结合使用,结合实例代码给大家介绍的非常详细,感兴趣... 目录1、非修改序列算法1.1 find 和 find_if1.2 count 和 count_if1

Redis中群集三种模式的实现

《Redis中群集三种模式的实现》Redis群集有三种模式,分别是主从同步/复制、哨兵模式、Cluster,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1. Redis三种模式概述2、Redis 主从复制2.1 主从复制的作用2.2 主从复制流程2

深入理解MySQL流模式

《深入理解MySQL流模式》MySQL的Binlog流模式是一种实时读取二进制日志的技术,允许下游系统几乎无延迟地获取数据库变更事件,适用于需要极低延迟复制的场景,感兴趣的可以了解一下... 目录核心概念一句话总结1. 背景知识:什么是 Binlog?2. 传统方式 vs. 流模式传统文件方式 (非流式)流

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点