1. 在线调试简介
1.1 在线调试工具的使用
在仿真的时候;
时钟的产生是由软件产生;
若因时钟不起振导致错误;
单独使用在线调试无法实现;
调试工具:
示波器,逻辑分析仪;
在线逻辑分析仪;
不同厂商的在线逻辑分析仪:
| FPGA厂商 | FPGA开发工具 | 在线调试工具 |
|---|---|---|
| Xilinx | Vivado | ILA(Integrated Logic Analyzer) |
| Xilinx | ISE | ChipScope |
| Altera | Quartus II | SignalTap II |
| 紫光同创 | PDS | Debugger |
| ...... | ...... | ...... |
在线调试工具连线示意图:
如下图所示:
通过片内的BSRAM,完成数据的存储,通过JTAG接口,与开发工具链接;
实现逻辑显示的功能;

2 Xilinx在线调试方案
- Vivado工具集成了逻辑分析仪(ILA),用于替换外部的逻辑分析仪;
- 添加ILA核和VIO核实现在线调试;
- 通过JTAG接口和PC链接;
2.1 ILA
ILA(Integrated Logic Analyzer)
集成逻辑分析仪;
- 主要用于监控逻辑内部信号和端口信号;
VIO(Virtual Input/Output)
虚拟输入输出;
- 实时监控和驱动逻辑内部信号和端口信号;
主要使用ILA;
在FPGA内部,具有一个XADC内核;
可以通过这个硬核采集对应的电压;

2.2 添加ILA的方法
- 添加ILA IP核,在代码中对ILA IP核进行例化;
- 在原理图或者网表文件中添加"mark debug"属性;
- 手动地在XDC约束文件中编写对应的TCL XDC调试命令;
上述为三个方法;
2.3 通过XADC查看各部分电压
1. 打开任务部分的硬件管理:

2. 链接板子:

3. 双击XADC:

2.4 ILA在线调试工具的使用
2.4.1 通过添加ILA IP核的调试方式
- 点击IP catalog,搜索ILA:

- 设置内容,这里主要是设置了探针的数量,以及采样的深度,采样深度类似于数据缓存宽度,可以查看对应的数据的长度;

- 上述的为通用设置,此部分主要设置数据的位宽:

- 设置ooc,也就是每个IP核都单独编译,上面那个是全编译,比较慢;
以及对应的核心数,这里也是保持默认;

- 此时这部分进行编译,等待完成:

- 找到对应的IP核的例化模板;

- 按照对应检测的端口,对变量进行例化:

- 此时源文件下出现了对应的ILA文件:

- 生成比特流,等待综合执行完成,因为加入了debug文件,所以编译时间上会长很多:

- 点击下载,下载完成后,会出现对应的调试界面:

- 调试界面:
上面的是调试的按钮;
下面部分是触发条件 的选择,可以根据细节具体查看;

- 在完成了调试后,还需要将对应的例化代码删除;
若出现无法识别调试文件的报错,可以手动将Debug路径移除;
防止占用资源:

2.4.2 通过网表中添加信号的调试方式
-
如下图所示,找到对应的连线,点击加入Debug即可:

或者通过网络进行添加:

或者通过代码的方式添加Debug;

-
这里是对应的debug打开方式:

以及对应的debug代码的存在方式,存在于xdc文件中:

-
添加信号后,后面的操作与之前相同,只是不同的导出IP核的方法;
补充:
在操作的过程中,如果不小心删掉了窗口,可以通过此地方来进行打开对应的窗口:
