问题描述
在使用JTAG仿真器在vivado环境下抓信号时,报如下错误:
Warning: The debug hub core was not detected
Resolution:
1、Make sure the clock connected to the debug hub(dbg hub) core is free running clock and is active
2、Make sure the BSCAN_SWITCH_USER_MASK device property in Vivado hardware Manager reflects the user scan chain setting in the design and refresh the device.To determine the user scan chain setting in the design,open the implemented design and use 'get porperty C_USER_SCAN_CHAIN [get debug cores dbg hub]'.
什么是debug hub core?
debug hub负责将一个或几个ILA与JTAG连接起来。JTAG指令下发以及抓取的波形数据回传到screen都要通过它,相当于是一个中间件。在vivado中打开原理图可以看到,连接到debug hub上的信号,包括clk、oport、inport。
从warning的提示看,可能的原因是:
1、这个hub的clock不正常;
2、两个参数不匹配(一般都是01 没问题,可以在properties查到)
则为什么是clk不对呢?
1、clock线连上了,但这个wire上却没有clock波形,因为zynq的ps端没有启动配置,所以没有任何clock到pl端;
2、我们设置的clock频率跟JTAG仿真器的不匹配。
怎么解决?
若debug_hub上一共挂了3个device,clock分别是40MHz、20MHz、800KHz,debug_hub会自动选择频率较低的时钟作为它的时钟。
在xilinx官网上,指出ILA和HUB的clock一定要比JTAG高(经本人测试,至少为JTAG速率的1.8倍)。因此,错误原因是debug_bub这个中间件的clock比JTAG仿真器的低了,应该确保JTAG是最低的!
解决方法
1、将JTAG仿真器的频率降下去
Program and Debug->Open hardware manager->Open Target->Open new target(先关掉之前的hardware)
其中JATAG Clock Frequency可以选择JTAG的频率。
2、将debug_hub的频率升上去
在setup debug中产生的ILA相关的XDC约束文件中最后一段,把connect _debug_port dbg_hub/clk [get_nets clk]中的clk改为想要设置的频率,如connect_debug_port dbg_hub/clk [get_nets[list inst_clk_wiz/inst/clk_out1]]。
延伸
是否可以设置XDC文件中的C_CLK_INPUT_FREQ_HZ?
答案是不行的,这个明显是设置dbg_hub的,默认 300MHz,实际还是由connect _debug_port dbg_hub/clk [get_nets clk]决定的,还得改JTAG的Hz。
ILA及DEBUG模块占用FPGA的资源,也会影响用户逻辑timing。所以一般系统默认连lowest的那个clock,或者把C_ENABLE_CLK_DIVIDER true。
参考TCL指令
set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_bub]
审核编辑:刘清
-
仿真器
+关注
关注
14文章
1016浏览量
83621 -
JTAG
+关注
关注
6文章
398浏览量
71587 -
hub
+关注
关注
1文章
115浏览量
41623 -
CLK
+关注
关注
0文章
127浏览量
17122 -
Vivado
+关注
关注
19文章
807浏览量
66312
原文标题:vivado报错-debug hub core时钟检测不到
文章出处:【微信号:FPGA通信小白成长之路,微信公众号:FPGA通信小白成长之路】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论