vivado 制定执行策略

制定执行策略

策略是一组到工具的开关,这些开关在预先配置的一组选项中定义用于合成应用程序或在实现期间运行的各种实用程序和程序。每个主要版本都有特定于版本的策略选项。

视频:有关更多信息,请参阅以下内容:Vivado Design Suite QuickTake视频:创建和管理跑步。

从Flow Navigator中选择Settings,选择Synthesis,然后从策略下拉列表,如上图所示,然后单击“确定”。设置合成输入Vivado合成允许两种输入类型:RTL源代码和定时约束。添加RTL或

到管路的约束文件:

1.从“文件”菜单或“流导航器”中,选择“添加源”命令以打开“添加”源向导,如下图所示。

2.选择与要添加的文件相对应的选项,然后单击“下一步”。下图显示了添加或创建设计源页面,如果添加或选择“创建设计源”。

3.添加约束、RTL或其他项目文件,单击“完成”。

有关更多信息,请参阅Vivado Design Suite用户指南:系统级设计入门(UG895)关于创建RTL源项目。Vivado合成工具读取可以用VHDL、Verilog、Verilog等进行合成的文件的子集SystemVerilog或AMD工具中支持的混合语言选项。

控制文件编译顺序

当一个文件具有声明而另一个文件依赖于声明时,特定的编译顺序是必要的根据该声明。Vivado IDE从的顶部控制RTL源文件的编译图形层次结构显示在“源”窗口“编译顺序”窗口的底部。Vivado工具可自动识别并设置最佳顶级模块候选者,以及自动管理编译顺序。顶部模块文件和下的所有源活动层次结构以正确的顺序传递给合成和模拟。在“源”窗口中,弹出菜单提供“层次更新”命令。提供的选项为Vivado IDE指定如何处理对顶部模块和源代码的更改设计中的文件。

默认设置“自动更新和编译顺序”指定该工具管理编译顺序,如“编译顺序”窗口中所示,并显示哪些模块使用的,以及它们在“层次结构”窗口的层次结构树中的位置。当您更改源文件时,编译顺序会自动更新。要在合成前修改编译顺序,请选择一个文件,然后右键单击“层次更新”>自动更新,手动编译顺序,使Vivado IDE可以自动确定设计的最佳顶部模块,并允许手动指定编译顺序。默认情况下,“手动编译”处于禁用状态。如果选择一个文件并在“编译顺序”窗口中移动它弹出菜单询问是否要打开“手动编译”,如下图所示。

从“源”窗口的“编译顺序”选项卡中,拖放文件以安排编译顺序,或使用菜单“上移”或“下移”命令。其他选项可从“层次更新”上下文菜单中获得,如下所示图形

有关设计的信息,请参阅Vivado Design Suite用户指南:设计流程概述(UG892)流量。

定义全局包含文件

Vivado IDE支持将一个或多个Verilog或Verilog Header源文件指定为全局'包括文件并在任何其他来源之前处理这些文件。使用公共的设计头文件可能需要在多个Verilog中重复多个`include语句设计中使用的来源。

要将Verilog或Verilog头文件指定为全局`include文件:

1.在“源”窗口中,选择文件。

2.选中“源文件属性”窗口中的“全局包含”复选框,如如下图所示。

提示:在Verilog中,引用专门应用于单个Verilog源的头文件(用于实例特定的“define macro”),使用“include”语句,而不是将其标记为全局`include文件。有关的信息,请参阅Vivado Design Suite用户指南:使用Vivado IDE(UG893)“源”窗口。

RTL过梁

Vivado Synthesis附带了一个RTL linter,它可以分析您的代码,以确定是否存在任何可能导致您的设计出现问题的合法代码段。

运行Linter

运行Linter有两种方法。第一个是中带有-lint选项的命令行合成设计:

synth_design-顶部<顶部级别>-部分<部分>-lint

第二种方法是使用IDE。在项目经理的RTL分析部分,有一个运行Linter按钮,该按钮将运行当前零件和顶层的Linter。

注意:RTL linter目前不适用于OOC模块。这将在以后的版本中得到支持。

Linter输出

运行linter后,该工具将显示一个带有结果的新选项卡。

输出将有一个规则ID,有问题的信号或端口的RTL名称找到它的层次结构,以及潜在问题所在的消息和文件名。在在上图中,test.v中有一个名为“in3”的端口,但从未使用过。

注意:如果RTL已更改并保存,则RTL linter将不会更新。在之后查看新结果如果RTL发生变化,则需要重新运行过梁。为RTL Linter创建弃权可以创建弃权,以便林特可以忽略某些条件。这些是用创建的带有-type LINT选项的create_waiver命令例如:

create_waiver -type LINT -id ASSIGN-1 -rtl_hierarchy x/y

停止报告x/y层次结构中的任何ASSIGN-1问题。弃权可以使用以下内容任何组合的选项。

•id:弃权的规则id。

•rtl_name:信号或端口名称。

•rtl_hierarchy:设计中的层次结构。

•rtl_file:有问题的文件。

一旦你的设计获得了正确的豁免,你就可以把它们写到Tcl文件中,供将来使用您的流量:

write_waivers -type LINT -file <filename>.tcl

相关推荐

  1. powershell执行策略不受限制

    2024-02-04 01:30:02       65 阅读
  2. 100条安全原则来制定安全策略

    2024-02-04 01:30:02       51 阅读
  3. 针对私域流量的营销策略该如何制定

    2024-02-04 01:30:02       32 阅读
  4. python制作执行文件(cython)

    2024-02-04 01:30:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-04 01:30:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-04 01:30:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-04 01:30:02       87 阅读
  4. Python语言-面向对象

    2024-02-04 01:30:02       96 阅读

热门阅读

  1. 假期day2,进程间通信。(2024/2/3)

    2024-02-04 01:30:02       49 阅读
  2. 五大架构风格之四-虚拟机架构风格

    2024-02-04 01:30:02       53 阅读
  3. 深入Go反射

    2024-02-04 01:30:02       41 阅读
  4. Go语言学习踩坑记

    2024-02-04 01:30:02       54 阅读
  5. 堆的实现(源码)

    2024-02-04 01:30:02       46 阅读
  6. mysql-常见函数合集

    2024-02-04 01:30:02       55 阅读