vivado 手动设置自下而上的流量并导入网表、创建较低级别的网表

2024-02-05 02:12

本文主要是介绍vivado 手动设置自下而上的流量并导入网表、创建较低级别的网表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

手动设置自下而上的流量并导入网表

要手动运行自下而上的流,请将较低级别的网表或第三方网表实例化为黑色盒子,Vivado工具在合成完成后将黑盒子融入完整的设计中。这个以下部分描述了该过程。

重要!Vivado合成不合成或优化加密或非加密合成网表;因此,XDC约束或合成属性不会影响导入的合成核心网表。此外,Vivado synthesis不会读取核心网表并修改实例化的组件默认情况下;然而,Vivado合成确实合成了安全IP和RTL。约束确实会影响合成后果

创建较低级别的网表

要创建较低级别的网表,请设置一个以该网表作为顶层模块的项目。之前运行合成后,设置上下文外(OOC)模式,如下图所示。

在“更多选项”部分中,可以键入-mode out_of_context以使该工具不在此级别中插入任何I/O缓冲区。运行合成后,打开合成的设计,并在Tcl控制台中键入在Tcl控制台中的write_edif Tcl命令。语法如下:

write_edif <design_name>.edf

设计中下级网表的实例化

要使用较低级别的网表或第三方网表运行顶层设计,请实例化通过向Vivado提供较低级别的端口描述,将较低级别设置为黑盒工具在设置自下而上的上下文外流中,这被称为存根文件。重要!提供给Vivado工具的端口名称和网表中的端口名称必须匹配。在VHDL中,用component语句描述端口,如以下代码所示一小条

component <name>
port (in1, in2 : in std_logic;
out1 : out std_logic);
end component;

因为Verilog没有等效的组件,所以使用包装文件进行通信Vivado工具的端口。包装文件看起来像一个典型的Verilog文件,但只包含端口列表,如以下代码片段所示:

module <name> (in1, in2, out1);
input in1, in2;
output out1;
endmodule

将手动自下而上组合在一起组件

创建较低级别的网表并正确实例化顶级网表后,可以在项目模式下,将较低级别的网表添加到Vivado项目中,或者可以使用read_edif或read_verilog命令。在这两种模式中,Vivado工具在合成后合并网表。

注意:如果设计仅来自第三方网表,并且没有其他RTL文件是项目的一部分,可以使用这些网表创建项目,也可以使用read_edif和read_verilog-Tcl命令以及非项目模式下的link_ design Tcl命令。

增量合成

Vivado Synthesis可以增量运行。在这个流程中,该工具将增量合成信息放入生成的DCP文件,可在以后的运行中引用。它检测设计何时具有已更改,并且仅在已更改的设计部分上重新运行合成。关键这种流程的优点是,对于更改较小的设计,运行时间显著减少。此外,当RTL中插入小的变化时,设计的QoR波动较小。在项目模式下建立增量综合可以在“设置”对话框的“合成”页面中使用项目设置“增量合成”盒

请注意以下重要设置:

•增量合成选择框:使用浏览按钮指示增量合成使用已知的检查点、创建的最后一个检查点(默认值),或者如果是增量的合成被禁用。

•incremental_mode Synth Design选项:描述与跨分区优化。这些值有快速、默认、激进和关闭。快速关闭大多数优化,积极地打开更多,并对某些重复合成部分。Off告诉合成不要使用DCP中的增量合成信息文件

在非项目模式下使用增量综合

在项目模式下,该工具会自动读取合成时的最后一个DCP文件最后一次运行(如果在默认模式或特别提到的任何DCP下运行)。在非项目中模式下,合成前必须读取参考DCP。其命令是:

read_checkpoint -auto_incremental -incremental<path to dcp file>
Or
read_checkpoint -incremental <path to dcp file>

之后,正常运行synth_design命令。

注意:read_checkpoint中的-auto_incremental选项与中的默认行为相同石斑鱼类。

解释日志文件

执行参考运行时,该工具会在执行时对设计进行分区合成当增量运行开始时,它将详细的设计与参考运行并识别更改的模块。引用运行的分区是在增量运行中初始化。包含已更改模块的分区和标记受其影响的分区。基于此,该工具对标记的分区。关于设计的内容和设计的哪些部分的信息可以在增量运行后的日志文件中找到重新合成的。此信息在“增量综合报告摘要”中。以下是一个示例报告的一部分。

本节提供了设计中哪些部分发生了更改,需要重新合成的信息。此外,它还提供了设计与参考运行到增量运行。

重新综合整个设计

有些情况或类型的设计会导致流触发设计这些情况发生在以下条件下:

1.当对层次结构的顶层进行更改时

2.合成设置更改时

3.当小的设计包含很少的分区时

4.当超过50%的分区发生更改时

此外,异常大的XDC文件可能会触发整个设计的重新合成。这在未来版本。

注意:即使是合成设置,-mode out_of_context也不会触发完全的重新合成。

在Vivado中使用第三方合成工具IP

Vivado IP目录使用Vivado Design Suite进行设计、约束和验证合成

注意:即使这是一个合成设置,-mode out_of_context也不会触发完全的重新合成。大多数AMD提供的IP都有用IEEE P1735加密的HDL,并且不支持用于AMD IP的第三方合成工具。为了实例化在第三方合成工具内部使用Vivado IDE交付的AMD IP,建议采用以下流程:

1.在托管IP项目中创建IP自定义。

2.生成IP的输出产品,包括合成设计检查点(DCP)。Vivado IDE创建一个存根HDL文件,该文件在第三方合成工具中用于推断IP的黑匣子(_stub.v|_stub.vhd)。存根文件包含防止I/O缓冲区不会被推断;您可能需要修改这些文件以支持其他合成工具指令。

3.使用AMD IP的存根文件来综合设计。

4.使用第三方合成工具生成的网表和AMD IP的DCP文件,运行Vivado实现。有关更多信息,请参阅Vivado Design Suite用户指南:用IP(UG896)进行设计。

将进程移到后台

当Vivado IDE启动运行合成或实现的过程时对话框中,您可以将进程置于后台。当你把跑步放在在后台,它发布了Vivado IDE来执行其他功能,例如查看报告。

监控合成运行

从日志窗口监视合成运行的状态,如下图所示在合成期间显示在此窗口中的消息也是包含在合成日志文件。

这篇关于vivado 手动设置自下而上的流量并导入网表、创建较低级别的网表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时