不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

debug hub

在进行 复杂的FPGA系统调试时经常会用到 Xilinx 的Debug Core(Chip scope), 但是烧录程序后, 想通过ILA 查看波形时,经常会遇到以下问题。找不到Debug Core/ILA,怎么办?

1. dbg_hub 没有时钟

如果硬件正常,找不到Debug Core,90%是因为这个原因。

  • 什么是dbg_hub

Debug Hub 就是 Jtag 与 Debug Cores 之间的中间件,如果它没时钟或者时钟没有运行,jtag 就无法识别其他的dbg core。用原理图方式打开,可以查到debug 信号与 dbg_hub 连接到 一起,dbg_hub的信号可能没有连接,下图中直接与地相连。

  • dbg_hub 怎么产生的

Vivado 在综合后的 opt_design 阶段自动产生的 不能手动例话。正常情况下会自动分配到一个已有时钟上,如果自动分配的时钟没有没有正常运行,那么Debug hub 就无法被识别。如果系统没有系统时钟,可能就会分配到GND。

  • 怎样设定dbg_hub 所使用的时钟
    在约束文件中添加如下命令,手动设置好时钟(get_nets sys_clk_200m),然后生产bit即可。
connect_debug_port dbg_hub/clk [get_nets sys_clk_200m]
  • dbg_hub Clk 注意事项

Jtag 的时钟要比 Dbg hub的时钟慢2.5 倍。因此如果实在不能达到次条件的话,需要手动修改Jtag 的时钟频率。

Program and Debug --> Open hardware manager--> Open Target --> Open new target

2. BSCAN_SWITCH_USER_MASK 不正确

正常此参数不会出现问题,如果出现问题 可以尝试修改。

  • User scan Chain 是啥

User scan chain 用于检测debug core。类似与通道的概念,默认是1 , 设置成其他的可能是xilinx 内部调试用,或者以其他方式调用, 如下图所示。

  • BSCAN_SWITCH_USER_MASK 是啥
    bscan_switch_user_mask 的每一位就是用来表示是否使能这个 user scan chain,默认是0001(二进制)。如果不是,可以通过约束文件约束C_USER_SCAN_CHAIN ,然后生产bit文件即可。

( Debug hub 的 User Scan chain “1”与 BSCAN_SWITCH_USER_MASK“0001”对应即可)

 set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub] 
 
 
vivado-programming-debugging​www.xilinx.com/support/documentation/sw_manuals/xilinx2017_1/ug908-vivado-programming-debugging.pdf
AR# 64764​www.xilinx.com/support/answers/64764.html

posted on   皮皮祥  阅读(3021)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-11-24 LVDS信号
点击右上角即可分享
微信分享提示