vivado 通过修改调试核 (ILA) 来进行增量编译

通过修改调试核 (ILA) 来进行增量编译
增量编译是高级设计流程 用于接近完成且需要少量更改的设计。重新综合这些少量修改后 流程将能够
• 加速完成布局布线运行时。
• 保留 QoR 可预测性 因为它复用先前来自参考设计的布局布线。当综合更改与参考设计的相似性达到至少 95%
此流程最有效。
通过使用“增量编译”设计流程来重新实现设计 即可将增量调试更改应用于已布局布线的设计。在以下情况下建议使
用此流程
• 已实现的现有设计中无调试核 或者
• 您需要修改现有调试核 更改探针宽度、数据深度等 ,或者
• 您需要从设计中删除调试核。
增量编译流程设计
“增量编译 (Incremental Compile) ”流程涉及 2 种不同设计 参考设计与含调试核修改的当前设计。
参考设计
参考设计通常为已完成综合和布局布线的当前设计的早期迭代或变体。但您可使用检查点 且不限其中所含布局和 /
布线数量。参考设计检查点 (DCP) 可以是大量设计迭代的产物 其中涉及达成时序收敛所需的代码变更、布局规划和
约束修改。加载完当前设计后 使用 read_checkpoint -incremental <dcp> 命令即可加载参考设计检查点。
使用 -incremental 选项来加载参考设计检查点即可支持增量编译设计流程 以便后续执行布局布线操作。
当前设计
当前设计相比参考设计 具有少量调试相关的设计更改或变动。这些更改或变动可包括
• 调试核 RTL 例化更改
• 调试核插入更改
• 调试核相关 RTL 更改和插入更改
要在已实现的现有设计中插入、删除或修改调试核 请打开已综合的 DCP 或设计 然后使用调试插入流程。在“使用
网表插入调试探测流程”中可找到有关调试插入流程的详细信息。
您也可以修改现有调试核 或者将新的调试核例化到现有 RTL 设计中。“增量编译”流程复用来自参考设计的布局布
线并附带新的调试相关修改。在“ HDL 例化调试探测流程概述”中可找到有关调试例化流程的详细信息。
相关信息
使用网表插入调试探测流程
HDL 例化调试探测流程概述
使用递增编译
在工程模式和非工程模式下 使用 read_checkpoint -incremental <reference_dcp_file> 命令加载参考
设计检查点时会进入增量布局布线模式 此命令中 <reference_dcp_file> 用于指定参考设计检查点的路径和文
件名。使用 -incremental 选项来加载参考设计检查点即可支持增量编译设计流程 以便后续执行布局布线操作。在
非工程模式下 read_checkpoint -incremental 的执行应 (1) 晚于 opt_design (2) 早于
place_design 。如果使用调试插入流程 那么调试核相关的 XDC 命令应先于 opt_design 执行。
在非工程模式下使用增量编译
要在非工程模式下指定使用某个设计检查点文件 (DCP) 作为参考设计并运行增量布局 请执行以下操作
1. 加载当前设计。
2. 运行调试核命令。
3. 运行 opt_design
重要提示 确保 opt_design 选项和指令与原始参考运行中所使用的选项和指令尽可能匹配
4. 运行 read_checkpoint -incremental <reference_dcp_file>
5. 运行 place_design
6. 运行 route_design
# to load the current design
link_design;
#Create the debug core
create_debug_core u_ila_0 ila
#set debug core properties
set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0]
set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0]
#connect the probe ports in the debug core to the signals being probed
in the design
set_property port_width 1 [get_debug_ports u_ila_0/clk]
connect_debug_port u_ila_0/clk [get_nets [list clk ]]
set_property port_width 1 [get_debug_ports u_ila_0/probe0]
connect_debug_port u_ila_0/probe0 [get_nets [list A_or_B]]
create_debug_port u_ila_0 probe
opt_design
read_checkpoint -incremental <reference_dcp_file>
place_design
route_design
重要提示 您必须打开已综合的检查点才能修改设计中的调试核。不支持通过打开布线后检查点来插入调试
核。
在工程模式下使用增量编译
在工程模式下 您可在“ Design Runs ”窗口中设置增量编译选项。
要设置增量编译选项 请执行以下操作
1. 在“设计运行 (Design Runs) ”窗口中 选择运行。
2. 单击上下文菜单中的“ Set Incremental Compile ”。
3. 在“设置增量编译”窗口中 选择参考设计检查点。这样即可启用运行增量编译模式。
4. 打开综合后网表 在其中可选择修改或添加 RTL 中已例化的调试核。
5. 使用“设置调试 (Set Up Debug) Wizard 来对已插入设计的调试核执行插入、删除或修改操作。
6. 实现设计。
重要提示 您必须打开已综合的设计才能修改设计中的调试核。不支持通过打开布线后设计来插入调试核。
如需了解有关“增量编译”功能的更多信息 请访问此 链接 以参阅《 Vivado Design Suite 用户指南 实现》 ( UG904 )
中的相应内容。
检验参考设计与当前设计之间的相似性
运行 report_incremental_reuse 以检验并报告参考设计检查点文件与当前设计之间的相似性。
report_incremental_reuse 命令可将来自参考设计检查点的网表与当前存储器内的设计进行比较并报告单元、信
号线和端口的匹配百分比。
设计相似性程度越高 则复用来自参考设计的布局布线的效率越高。参考设计与当前设计之间相似性百分比越高 则布
局布线复用机会越大。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MKS 质量MFC流量控制器原理及应用课件PPT

MKS 质量MFC流量控制器原理及应用课件PPT

SpringBoot+Vue开发记录(四)

说明&#xff1a; 本篇文章的主要内容是软件架构以及项目的前端Vue创建 一、软件架构 我道听途说的&#xff0c;听说这个东西很关键很重要什么的。 软件架构&#xff08;software architecture&#xff09;是一个系统的草图,是一系列相关的抽象模式&#xff0c;用于指导大型软…

W801学习笔记十四:掌机系统——菜单——尝试打造自己的UI

未来将会有诸多应用&#xff0c;这些应用将通过菜单进行有序组织和管理。因此&#xff0c;我们需要率先打造好菜单。 LCD 驱动通常是直接写屏的&#xff0c;虽然速度较快&#xff0c;但用于界面制作则不太适宜。所以&#xff0c;最好能拥有一套 UI 框架。如前所述&#xff0c;…

4.26日学习记录

[湖湘杯 2021 final]Penetratable SUID提权 SUID是一种对二进制程序进行设置的特殊权限&#xff0c;可以让二进制程序的执行者临时拥有属主的权限 SUID具有一定的限制&#xff1a; 1.仅对于二进制有效&#xff1b; 2.执行者在程序中有可以执行的权限&#xff1b; 3.权限仅在程序…

使用Spring 完成转账业务添加日志功能

(完整的代码在文章附带文件中 , 文章里的代码仅作展示 , 可能有部分不完善 代码地址 :下载:https://javazhang.lanzn.com/i5oLI1vyiile 密码:1234 ) 任务目标 具体实现方法和心得 步骤1. 导入依赖项Spring依赖 , aop依赖,德鲁伊依赖,mybatis依赖 , mysql驱动 , mybatis-sprin…

深度学习框架pytorch:tensor.data和tensor.detach()的区别

本文重点 本文我们区别一下tensor.data和tensor.detach(),我们所讲解的都是pytorch的1.0版本的情况 官方解释 返回一个新的张量,它与当前图形分离。结果永远不需要梯度。返回的张量与原始张量共享相同的存储空间。将看到对其中任何一个的就地修改,并且可能在正确性检查中…

【神经网络结构可视化】PlotNeuralNet的安装、测试及创建自己的神经网络结构可视化图形

文章目录 前提准备1、下载MikTeX2、下载Git bash3、下载PlotNeuralNet 进行测试1、解压PlotNeuralNet-master.zip2、打开Git bash3、 在my_project中查看生成的pdf文件 创建自己的神经网络结构可视化图形 前提准备 1、下载MikTeX 下载链接&#xff1a; MikTeX ( https://mikt…

闲话 ASP.NET Core 数据校验(一):内置数据校验

前言 所谓输入的是垃圾&#xff0c;输出也必然是垃圾&#xff0c;有多少安全问题隐藏在请求的数据中&#xff0c;所以永远不能相信来自用户端的输入。 对请求数据的合法性进行校验&#xff0c;不仅有助于提升用户界面的友好性&#xff0c;而且有助于提高后台程序的安全性和稳…

区块链安全应用------压力测试

测试要求&#xff1a; 1. 对以下AccountManager智能合约进行压测(基础要求set函数测试&#xff0c;balanceOf涵为20分加分项)2. 在本地链进行测试&#xff0c;需要监控本地进程的资源使用情况。每个进程的multiOutput属性为Avg3. 需要将每一个更改的配置文件截图&#xff0c;和…

初入数据库

SQL&#xff1a;操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库的统一标准。 DDL&#xff08;Data Definition Language&#xff09;数据定义语言 数据库 show databases;create database db01;use db01;select database(); 显示当前使用的数据库drop d…

制作一个RISC-V的操作系统十三-抢占式多任务和兼容协作式多任务

文章目录 强占式多任务流程代码具体流程兼容协作式多任务&#xff08;软中断&#xff09;寄存器 msip流程代码结果 强占式多任务 流程 抢占式多任务由计时器中断触发&#xff0c;最后在处理程序中切换到下一个进程 代码具体流程 上下文中增加pc寄存器 寄存器保留上下文和切…

AI计算中的光学模块:波分复用器的应用前景

在人工智能&#xff08;AI&#xff09;的计算领域&#xff0c;光学模块扮演着至关重要的角色。随着AI技术的飞速发展&#xff0c;对数据处理速度和带宽的需求日益增长。光学模块&#xff0c;特别是波分复用器&#xff08;WDM&#xff09;&#xff0c;因其高速、大容量的数据传输…

实战技巧:Android 14适配从挂号到出院

公众号「稀有猿诉」 原文链接 实战技巧&#xff1a;Android 14适配从挂号到出院 啥&#xff1f;这都4202年了&#xff0c;你的应用还没有升级到targetSDK 34&#xff1f;莫慌&#xff0c;本文就带着你全面的了解升级targetSDK 34的方法以及避坑指南。 注意&#xff0c;A…

机器学习/算法工程师面试题目与答案-深度学习部分1

机器学习/算法工程师面试题目与答案-深度学习部分 BatchNormalization的作用梯度消失循环神经网络&#xff0c;为什么好?什么是GroupConvolution什么是RNN神经网络中权重共享的是&#xff1f;神经网络激活函数&#xff1f;为什么在深度学习中常进行finetuning画GRU结构图什么是…

JavaEE初阶之IO流快速顿悟一(超详细)

目录 题外话 正题 IO流 Java.io.FileInputStream int read() int read(byte[] b) 关于异常 Java7的新特性: try-with-resources ( 资源自动关闭) Java.io.FileOutputStream void write(int b) void write(byte[] b) 小结 题外话 十年青铜无人问,一朝顿悟冲王者 前天…

网工内推 | 深圳网工专场,上市公司、国企,安全认证优先

01 深圳市同为数码科技股份有限公司武汉分公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、负责网络设备的管理、调试、配置、维护等&#xff1b; 2、负责信息安全网络安全设备、系统的运维&#xff1b; 3、负责整体网络系统技术的相关工作&#xff0c;包括架构…

使用C++实现尾插式循环链表结构

在编码中避免不了使用链表&#xff0c;特别是循环链表&#xff0c;很多同学使用时为了省事直接使用C STL库中的链表实现&#xff0c;这样当然很简单也不容易出错&#xff0c;但同时也不可避免的带来了一些问题&#xff1a; 是半个黑盒&#xff0c;虽然能看源码&#xff0c;但是…

如何免费生成网址二维码?支持自定义设计的二维码生成器

在国内外的许多创意广告中都在使用网址二维码。比如&#xff1a;大众汽车隐藏在汽车零件上的企业招聘二维码&#xff0c;扫码后进入大众汽车官网在线申请投递简历&#xff1b;帕森斯设计学院的户外广告中打印在红色沙滩椅上的二维码&#xff0c;扫描后可以在线申请暑期课程&…

详细分析mysqlslap的基本知识 | 压力测试(附Demo)

目录 前言1. 基本知识2. 参数解读2.1 auto-generate-sql2.2 only-print2.3 iterations2.4 并发处理参数 前言 对数据库进行压力测试&#xff0c;对此补充这方面的详细知识点 1. 基本知识 mysqlslap 是 MySQL 自带的用于模拟数据库负载的压力测试工具 可以模拟多个客户端并发…

【Java | 多线程】LockSupport 的使用和注意事项

了解一下 LockSupport LockSupport是一个类&#xff0c;位于java.util.concurrent.locks包中&#xff0c;提供了基本的线程同步机制。 LockSupport的主要作用是挂起和唤醒线程。它提供了两个主要的静态方法&#xff1a;park()和unpark()。 park()&#xff1a;用于挂起当前线…
最新文章