Verilog——Chipscope简单实用的使用方法(基于ISE14.7 )
FPGA程序设计也避免不了需要进行在线调试工作,XILINX的ISE提供了Chipscope工具进行在线调试。
但之前查阅了很多Chipscope的调试方法,总是觉得这些方法很多都复杂冗长。最近寻找到一种较为简单的Chipscope的在线调试方法。
Chipscope在线调试的两个步骤:
- 生成Chipscope文件(生成的文件可以保存起来,以后重复利用)
- 项目中Chipscope在线调试
1. 生成Chipscope文件
本步骤生成的四个文件可以保存起来,在以后其他项目中直接拷贝过去,并将这四个文件添加到项目中。
最后生成的四个文件分别是:
- chipscope_ila.v
- chipscope_ila.ngc
- chipscope_icon.v
- chipscope_icon.ngc
2.项目中Chipscope在线调试
1) 代码修改
将上一步骤中最后生成的四个文件加入到要调试的项目中,然后根据程序中出现的问题推断大概是哪个module的哪些信号(以rd_req和rd_cmd信号为例)出现问题,然后在有问题的module中加入调试代码:
//DEBUG
//---------------------------------------------------------------------
wire [ 35:0] CONTROL0 ;
wire [255:0] TRIG0 ;
chipscope_icon icon_debug(
.CONTROL0 (CONTROL0) //INOUT BUS[35:0]
);
chipscope_ila ila_filter_debug(
.CONTROL (CONTROL0 ),
.CLK (clk50M ),
.TRIG0 (TRIG0 )
);
//以上代码直接复制粘贴
//=====================================================================
//以下代码请根据自己的程序进行修改
//---------------------------------------------------------------------
assign TRIG0[0] = rd_req ;//待观测信号
assign TRIG0[4:1] = rd_cmd ;//待观测信号
完成代码修改后重新编译工程,并连接仿真器下载程序。
2)启动Chipscope
-
点击Xilinx Designer Tools -> Analyzer启动Chipscope
-
启动后点击下面的按钮与电路板连接
-
弹出下面的对话框单击ok
-
进入到Chipscope主界面。Chipscope的主界面主要包括工程窗口、信号窗口、触发条件设置串口、波形窗口。
-
在主界面首先对波形窗口waveform的信号进行设置。主要是对DataPort各个信号进行组合和命名,使debug代码中输出的信号和观测数据接口对应起来。右键单击信号选择Rename即可重命名:
选择多个信号后右键单击选择Move to Bus -> New Bus即可将选择的多个信号组合起来。
-
然后对Trigger Setup触发条件设置窗口内的信号进行触发条件设置。找到Trigger Setup串口下面Match窗口里面的触发信号,对触发条件Value进行设置,触发条件包括:
符号 | 触发条件 |
---|---|
X | 不定值(默认) |
0 | 逻辑0 |
1 | 逻辑1 |
R | 上升沿 |
F | 下降沿 |
N | 非沿 |
- 完成触发条件设置后点击“▶”开始调试,当遇到设置的触发条件时Waveform窗口会展现捕捉到的波形,这样就可以开始观察波形寻找bug了。如果不对触发条件进行修改,即全部都是X,波形窗口会展现波形,但可能不是想要的。