Vivado简单调试技能
Vivado简单调试技能
1.关于VIO核的使用
首先配置VIO核:
配置输入输出口的数量5,5
配置输入口的位宽
配置输出口位宽和初始值。
例化与使用:
vio_0 U1 (
.clk(clk_27M), // input wire clk
.probe_in0(), // input wire [0 : 0] probe_in0
.probe_in1(), // input wire [0 : 0] probe_in1
.probe_in2(), // input wire [0 : 0] probe_in2
.probe_in3(), // input wire [0 : 0] probe_in3
.probe_in4(), // input wire [0 : 0] probe_in4
.probe_out0(), // output wire [0 : 0] probe_out0
.probe_out1(qpllreset), // output wire [0 : 0] probe_out1
.probe_out2(), // output wire [0 : 0] probe_out2
.probe_out3(), // output wire [0 : 0] probe_out3
.probe_out4() // output wire [0 : 0] probe_out4
);
一定要注意的是,准确给定这个核的时钟,probe_in端口目前还不知道怎么用,只使用了probe_out端口。使用场景就是让这个核输出某个数值到相关的信号线,比如:.probe_out1(qpllreset), // output wire [0 : 0] probe_out1;可以在调试阶段控制这个核输出0或者1给qpllreset信号,由此我们可以手动对QPLL进行复位控制了。
2.ILA核的使用
配置ILA核:
配置probes的个数,和数据采样的深度。
分别配置每个probe的位宽。
例化与使用ILA核:
ila_0 U5 (
.clk(drpclk), // input wire clk
.probe0(current_state_W), // input wire [0:0] probe0
.probe1(next_state_W), // input wire [0:0] probe1
.probe2(timeout_cntr_W),
.probe3(clear_timeout_cntr_W), // input wire [0:0] probe3
.probe4(plllock_timeout_W), // input wire [0:0] probe4
.probe5(reset_timeout_W), // input wire [0:0] probe5
.probe6(init_period_done_W), // input wire [0:0] probe6
.probe7(refclk_stable_ss_W), // input wire [2:0] probe7
.probe8(refclk_stable_s), // input wire [0:0] probe8
.probe9(pll_lock_ss_W), // input wire [2:0] probe9
.probe10(pll_lock_s), // input wire [0:0] probe10
.probe11(rxresetdone_ss_W), // input wire [2:0] probe11
.probe12(assert_pll_reset_W), // input wire [0:0] probe12
.probe13(assert_gt_reset_W), // input wire [0:0] probe13
.probe14(assert_done_W), // input wire [0:0] probe14
.probe15(assert_fail_W), // input wire [0:0] probe15
.probe16(assert_drp_req_W), // input wire [0:0] probe16
.probe17(assert_drp_busy_out_W), // input wire [0:0] probe17
.probe18(inc_retry_cntr_W), // input wire [0:0] probe18
.probe19(clear_retry_cntr_W), // input wire [0:0] probe19
.probe20(max_retries), // input wire [0:0] probe20
.probe21(rxresetdone_s) // input wire [0:0] probe21
);
同样,也需要给这个核输入时钟,probe()端口需要接入wire类型的信号,在调试的过程中我们经常需要抓取reg类型的信号进行分析,因此可以这样处理,将reg型转为wire型:
reg assert_pll_reset;
wire assert_pll_reset_W;
assign assert_pll_reset_W = assert_pll_reset; reg assert_gt_reset;
wire assert_gt_reset_W;
assign assert_gt_reset_W = assert_gt_reset; reg assert_done;
wire assert_done_W;
assign assert_done_W = assert_done; reg assert_fail;
wire assert_fail_W;
assign assert_fail_W = assert_fail; reg assert_drp_req;
wire assert_drp_req_W;
assign assert_drp_req_W = assert_drp_req;
烧写完程序之后,就可以抓这些信号的波形,得到的波形图如下:
3.关于set up debug的使用:
Set up debug算是一种自动添加ILA核的方法。在下面的对话框中加入我们要查看的信号,然后重新进行综合布局布线生成bit文件,烧写程序完成后出现波形界面。
注意其中信号的时钟域不同,生成的ILA核就不同:
手动添加的ILA核
时钟域为clk_27M
时钟域为:SDI0/SDI/CLK
时钟域为:SDI0/SDI/CLK
Vivado简单调试技能的更多相关文章
- 11个强大的 Visual Studio 调试技能
简介 调试是软件开辟周期中很首要的一项目组.它具有挑衅性,同时也很让人困惑和懊恼.总的来说,对于稍大一点的法度,调试是不成避免的.比来几年,调试对象的成长让很多调试任务变的越来越简单和省时. 这篇文章 ...
- Xcode8的调试技能Memory Graph 实战解决闭包引用循环问题
Xcode8的调试技能又增加了一个黑科技:Memory Graph.简单的说就是可以在运行时将内存中的对象生成一张图. 那么通过一个实际项目来练习一下吧. 首先我们写了一个自定义UIView:MyVi ...
- Delphi 用Web App Debugger简单调试ISAPI 转
用Web App Debugger简单调试ISAPI 以isapi为例: 1.新建一个project,用isapi/nsapi: 2.remove这个project中所有的unit: 3.加进你用 ...
- 应该具备的调试技能(java)
------Java部分---------- 1. tomcat在eclispe中怎样启动调试模式2. 带有main方法的Java应用程序怎样启动调试模式3. 调试在eclispe中的快捷键 F5 F ...
- java调试技能之dubbo调试 ---telnet
dubbo作为一个远程调用框架,虽与同类型的框架,不知道谁优谁劣,但是就公司层面使用来说,还是很棒的.这里简单的写一下怎么使用和调试技巧,就算是作个使用总结吧,供快速使用和问题解决! dubbo是基于 ...
- linux系统下gdb的简单调试
当我们写完程序后,我们会运行程序,在这个过程中,可能程序会出现错误. 我们可以利用gdb调试去看我们运行的程序,并且我们新手通过gdb调试能更好地去读懂 别人的程序.让我们更好的学习. 我们看下面这条 ...
- gdb简单调试~core文件
1.打开终端,进入项目目录,输入ulimit -a ,可以看core文件大小设置(第一行),若为0, 则没有打开core dump设置. 2.ulimit -c unlimited ,core文件大小 ...
- 串口WIF简单调试
/*********************************************************************** Title:Wifi串口调试 Hardware: Wi ...
- VBA 简单调试
在中断模式下(ctrl+Break键),可以做: 1.执行 工具----选项----编辑器----勾选“自动显示数据提示” 则当用鼠标悬停在变量或表达式上时,会出现提示窗口,显示其名称和值! 2 ...
随机推荐
- 谈谈web上种图片应用的优缺点
web中承载信息的主要方式就是图片与文字了,以下就是对一些web图片格式的优缺点进行归纳. 1.GIF GIF图是比较古老的web图片格式之一,可以追溯到1987,几乎所有的浏览器都支持这一种格式,老 ...
- Angularjs快速入门(四)-css类和样式
例子: .error{background-color:red;} .warning{background-color:yellow;} <div ng-controller='HeaderCo ...
- xmlplus 组件设计系列之六 - 下拉刷新
"下拉刷新"由著名设计师 Loren Brichter 设计,并应用于 Twitter 第三方应用 Tweetie 中.2010年4月,Twitter 收购 Tweetie 开发商 ...
- 单Js 的重力游戏开发
最近在用看cocos的时候萌生的想法,单纯js实现重力原理.然后就做了一个这样的小游戏.姑且命名为<超级玛丽>! 因为之前有人要我做超级玛丽.哈哈哈哈哈哈!这也算完成任务了吧. 先说一下原 ...
- poj2104 Kth-Number
Description You are working for Macrohard company in data structures department. After failing your ...
- 谈谈一些有趣的CSS题目(十五)-- 奇妙的 background-clip: text
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- endsWith is not a function解决方案
在写javascript脚本时,用某些方法,有时候会碰到"XXX is not a function"之类的报错. 出现这种情况,主要是因为某些方法在低版本浏览器上不支持.比如说& ...
- TypeScript入门-高级类型
高级类型 交叉类型 交叉类型,就是将多个类型合并为一个新的类型,这个新的类型具有这多个类型的成员,含有这几个类型的所有特性,是他们的综合体,像是集合的并集 例子: function extend< ...
- IOS的UIPickerView 和UIDatePicker
1.UIPickerView的常见属性 //数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id<UIPikerViewData ...
- 查看当前用户名称:whoami命令
没什么可讲的,就是显示当前用户名称,效果同"id -un"命令.