干掉Vivado幺蛾子(2)-- 快速替换debug probes
我们做项目,进入找bug阶段时,需要用ILA捕获相关的信号。之前我做项目,每改动一次探针(debug probes),都要重新综合、实现,通常要花掉1个小时,一天下来调试不了两下就过去了,效率极其低下,因此也吐槽过vivado的编译时间问题。这两天无意从高老师的公众号中看了高效的方法,有种相见恨晚的感觉。因为从原来的1个小时,提升到了5-10分钟,感激涕零。
根据高老师的公众号的介绍,我自己手动操作一遍,记录一下相对详细的操作方法。
1. 什么是ECO
ECO 指的是Engineering Change Order ,即工程变更指令。目的是为了在设计的后期,快速灵活地做小范围修改,从而尽可能的保持已经验证的功能和时序。ECO 的叫法算是从IC 设计领域继承而来,其应用在FPGA设计上尚属首次,但这种做法其实在以往的FPGA 设计上已被广泛采用。简单来说, ECO 便相当于ISE 上的FPGA Editor 。但与FPGA Editor 不同, Vivado 中的ECO 并不是一个独立的界面或是一些特定的命令,要实现不同的ECO 功能需要使用不同的方式。
我们的操作环境就是在ECO模式下进行的。
2. 操作步骤
基于vivado 2016.4
- 打开布线DCP文件
经过综合、实现后的工程,会生产几个DCP文件,其中一个是布线文件(routed dcp)。通过“open Checkpoint”打开。

将vivado layout切换为ECO模式。

- replace debug probes
点击“ECO Navigator”栏中的“Replace Debug Probes”,会出现之前设计的ILA中的各种探针,一个探针代表一个观测信号。


选中要被替换的信号,右键点击“Edit Probes”或者点击最右侧的"铅笔"标志,会出现“Choose Nets”小窗口,查询需要用来替换的信号。
注意事项:最开始我直接搜索代码中的信号名,一直搜索不出来。结果忽视了综合、实现过程中,已将代码转换为网表,所以只能用schematic中的nets名来进行搜索。
查到nets之后,移向右侧。各种确定之后保存,这就完成了debug probes的替换工作。
- 生成新的bit 、ltx文件

在Navigator栏最下面保存、生成bit和ltx文件。就可以进行新的测试了。
关于ECO还有更多内容,包括手动布局、布线之类的,可以参考官方文档UG904。
参考文献:
- UG904;
- 《替换Debug Probes其实很简单》——高亚军;
干掉Vivado幺蛾子(2)-- 快速替换debug probes的更多相关文章
- 干掉Vivado幺蛾子(1)-- Xilinx Tcl Store
目录 1. 安装Xilinx Tcl Store 2. 手动更新 2.1 下载库 2.2 修改环境变量 参考文献: 最近在跟着高亚军老师的分析文章来学习Xilinx最近发布的<UltraFast ...
- 快速替换dll命名空间
时15年9月18日,闲来无事,更一博. 背景 三天前,Y公司为避免法律诉讼,需要将代码(包括dll)中有关老东家的命名空间全部改掉.现在我就将快速替换命名空间的方法一步步告诉大家,注意,此举不是为了 ...
- Python_内置函数之round的幺蛾子
pycharm运行结果 1 ret = round(0.5) print(ret) >>> 0 ret1 = round(1.5) print(ret1) >>> ...
- pycharm如何快速替换代码中的字符
使用快捷键: ctrl+r:快速定位到替换栏,选择要替换的关键字即可方面快捷,特别适用于重复造文字的代码编程上 废话不多少,上图说话硬气:
- 转载:vim的复制,删除,粘贴,块操作以及快速替换功能
掌握如下命令有什么好办法,我可以告诉你唯手熟尔!!多看多练对于VIM而言,复制,删除,粘贴的操作应该是非常多的.这次也做一个总结,关于处理VIM下的复制,删除,粘贴等操作.学会使用帮助文件,命令的帮助 ...
- 让现有vue前端项目快速支持多语言 - 用.net core程序快速替换中文为资源Key,咱不干体力活
前言 最近应公司上层要求,需要将现有项目尽快支持多语言,而中文内容可以找专业人员翻译.那么咱们说干就干,首先我们项目的前端是用vue写的spa程序且组件方面用的element ui,那么自然而然想到用 ...
- Sed+Grep 快速替换查找字段(批量替换字符串)
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl路径` 命令分解: grep 查找字段 -rl路径 列出”路径”中” 查找字段” 的所有文件 ...
- 快速替换dll命名空间 z
Step1:使用ildasm将代码反编译成il中间语言. 名字存贮为你想要的名字. Step2:用记事本打开il文件全局替换命名空间. Step3:使用ilasm将il文件编译成dll 按下回车即可生 ...
- js快速替换json里的key值
需求是将b根据a的值替换对象中的key值 let a = ["code","name","date","font"]; ...
随机推荐
- c/c++中关于String类型的思考
首先说明:String并不是一种内置类型,因此任何通过String声明出来的实例都不是一个变量,不同于内置类型因此String仅仅能称之为一种特殊的型别,没错String是一个类类型. 一般来说c语言 ...
- Ubuntu14.04下使用PPA安装php5.6,php7
1.为了使用ppa(Personal Package Archives) 选安装依赖: # apt-get install python-software-properties 2.添加不同版本php ...
- PHP Windows系统下调用OpenOffice
项目需要把用户上传的word文档转换为pdf文件,方便用户浏览.经过谷歌百度找到PHP可以使用COM组件调用微软的openoffice来实现文档转换 1,安装OpenOffice 安装OpenOffi ...
- BZOJ 2038 小Z的袜子(hose) (莫队算法)
题意:中文题. 析:很著名的莫队算法,先把这个求概率的式子表达出来,应该是分子:C(x1, 2) + C(x2, 2) + C(x3, 2) + ... + C(xn, 2) 分母:C(n, 2), ...
- CSS 形状绘制
最后一个 先放代码 <style type="text/css"> #heart { positio ...
- UT源码 065
NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...
- Java文件路径
几大常用的方法 Class.getResource("") 返回的是当前Class这个类所在包开始的位置 getClassLoader().getResource(" ...
- Android-帧布局(FrameLayout)
帧布局的特点是,一层一层的覆盖在上面 帧布局,使用比较多的属性是: android:layout_gravity="bottom" 也支持这些属性的设置: <!-- andr ...
- ajax 多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题
多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题 浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉.当我们执行异步ajax的时候没有问 ...
- codeVS 动态最大子段和
题目链接:戳我 对于最大子段和,我们只需要维护四个变量--maxl,maxr,maxs,sum(分别表示区间最大前缀子段和,区间最大后缀子段和,区间最大子段和,区间所有数的和) 然后合并的时候是这样的 ...