AMD Vivado Hardware Debug 技巧-如何在下载 Bitstream 后自动触发 ILA 采集

作者:Zhang Cheng,AMD工程师;来源:AMD开发者社区

在硬件调试时,经常需要用 ILA 采集一些 FPGA 内部或者对外的初始化信号,然而在下载完 Bitstream 后立即采集这些变化稍纵即逝的信号,比如在 1uS 内手动触发 ILA 采集信号,以普通人的手速显然是无能为力的。有的变通方法比如在程序中加入一定的延时量或者外部按键做触发 ILA 采集也可以实现。但是某些应用场景下,初始化必须在上电后的一定时间范围内完成。本文将介绍一种可适用于上述场景的方法,即在下载 Bitstream 后自动触发 ILA 采集,为硬件调试提供更多便利。

调试方法:

1. 设备信息

操作系统:Win10
硬件平台:Xilinx VCU118开发板
软件版本:AMD Vivado2022.1

当 MMCM 初始化完成,Locked 信号置1后,Init_Buf 开始计数,当 Init_Buf 等于 0x0E 时,Dout_Init 置1触发 Data_Buf 开始计数,最终控制 Dout 输出5个脉冲。整个过程大约在 1uS 内结束,普通人的手速是无法在如此短的时间内采集到这组信号。

3. Vivado 操作步骤

1. 打开 Vivado,新建工程按照常规流程完成 synthesis 后,点击 Setup Debug,将 Data_Buf, Dout, MMCM_locked, Dout_Init, Init_Buf 这些信号加入到 ILA 中,设置 100MHz 的时钟作为 ILA 的采集时钟。

2. Implementation 后 Generate Bitstream 并且下载到 FPGA。

3. 此时可以看到之前连接到 ILA 的信号都已经显示,设置 ILA 的触发条件,本工程设置为当 Dout_Init =1 时触发 ILA 采集。

4. 运行

cd c:/ILA_Startup/ILA_Startup.runs/impl_1/

粗体部分可设置为任意的工程路径,这样便于在生成 bit 以后找到对应的文件。

5. 在 Tcl Console 窗口输入:

run_hw_ila -file ila_trig.tas [get_hw_ilas hw_ila_1] -force

6. Open implementation design,在Tcl窗口输入:apply_hw_ila_trigger ila_trig.tas

7. 在Tcl窗口输入:

write_bitstream c:/ILA_Startup/ILA_Startup.runs/impl_1/trig_at_startup.bit -force

粗体部分可设置为任意的工程路径。

8. 把新生成的 trig_at_startup.bit 通过 JTAG 下载到器件,下载完成后可以看到 ILA 将自动触发采集信号,如下图所示:

注意事项:

改变 ILA 的触发条件后,需要重复上面 Step4- Step7 的步骤。

改变 ILA 的信号连接后,需要重复上面 Step2- Step7 的步骤。

参考文献:

UG908 Vivado Design Suite User Guide-Programming and Debugging:

https://docs.xilinx.com/r/en-US/ug908-vivado-programming-debugging

最新文章

最新文章