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核的方法;
补充:
在操作的过程中,如果不小心删掉了窗口,可以通过此地方来进行打开对应的窗口: