vivado----fpga硬件调试 (一)----mark_debug

时间:2025-01-20 18:28:06
  1. create_debug_core u_ila_0 labtools_ila_v3
  2. set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
  3. set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_0]
  4. set_property C_ADV_TRIGGER true [get_debug_cores u_ila_0]
  5. set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
  6. set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_0]
  7. set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
  8. set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
  9. set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
  10. set_property port_width 1 [get_debug_ports u_ila_0/clk]
  11. connect_debug_port u_ila_0/clk [get_nets [list clk_IBUF_BUFG]]
  12. set_property port_width 24 [get_debug_ports u_ila_0/probe0]
  13. connect_debug_port u_ila_0/probe0 [get_nets [list {counter[0]} {counter[1]} {counter[2]} {counter[3]} {counter[4]} {counter[5]} {counter[6]} {counter[7]} {counter[8]} {counter[9]} {counter[10]} {counter[11]} {counter[12]} {counter[13]} {counter[14]} {counter[15]} {counter[16]} {counter[17]} {counter[18]} {counter[19]} {counter[20]} {counter[21]} {counter[22]} {counter[23]}]]
  14. set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]

到此为止,成功将要观察的信号引出来,完成了插入调试内核,接着直接运行generate bitstream,即可生成bit文件。

最后一步,连上zedboard开始调试,用impact将bit文件下载到板卡上,或者在后面hardware manager中选择program device也可以。打开hardware manager,然后open new target,一直next直到结束,即可打开Vivado硬件逻辑分析仪,如下图所示:

要查看波形,必须要有信号触发,将counter信号拖入右方的basic trigger setup窗口,可以设置,想要counter等于何值时触发,右键counter,选择run trigger,并将counter信号添加到波形窗口中,接着便可以在打开的波形窗口中观察counter信号的变化。

硬件调试的流程大致如上述所示,这只是非常简单的一个例子,作为对官网视频教程的一个翻译加补充吧,如果工程较大的话,debug时还会遇到各种问题,就需要一步步慢慢摸索解决啦。

参考官网视频教程,另外在xilinx官网上也可以搜到debug的文档:

/training/vivado/
/training/vivado/

附加两点我曾遇到的小问题:

(1)在进行综合之前,需要将先将xdc约束文件添加到工程中,否则最后write bitstream时出错。Vivado的一个问题就是,有好多ise中综合时就能检测出的错误,而Vivado要等到生成bitstream时才报错。

(2)在打开hardware manager之后,提示vcseserver没有开启,在vivado/2013.4/bin下面运行vcseserver的bat程序即可。