调试核时钟设置指南
注释
:
以下章节适用于
7
系列、
UltraScale
和
UltraScale+
器件。
Versal
调试核使用基于
AXI
的连接
,
且不受本章中的
时钟设置指南的约束。
Vivado
硬件管理器使用
JTAG
接口来与
Vivado Debug Hub
核进行通信
,
后者可在
FPGA
器件的
JTAG
边界扫描
(BSCAN)
接口与
Vivado
调试核之间提供接口。
•
JTAG
时钟
:
此时钟可用于同步
JTAG
边界扫描
(BSCAN)
接口的内部状态机操作。通常
,
连接到目标器件时
,
可在
Vivado
硬件管理器中选择
JTAG
时钟频率。如果您的设计包含调试核
,
请确保
JTAG
时钟比
Debug Hub
时钟慢
2.5x
倍。
您可使用“打开新硬件目标
(Open New Hardware Target)
”
Wizard
或者使用以下
Tcl
命令来修改
JTAG
频率
:
set_property PARAM.FREQUENCY 250000 [get_hw_targets
*/xilinx_tcf/Digilent/210203327962A]
• “
Debug Hub Clock
”
:
Vivado Debug Hub
核
,
可在
FPGA
器件的
JTAG
边界扫描
(BSCAN)
接口与
Vivado
调试核之间提供接口。在设计
实现步骤中
,
如果在设计中检测到调试核
,
那么
Vivado IDE
会自动插入
Debug Hub
核。
Vivado IDE
会在设计实现
步骤中选择驱动
Debug Hub
核的时钟。
赛灵思建议
Debug Hub
时钟频率设置为约
100 MHz
或更低
,
因为
JTAG
时钟速度不需要特别高的频率。
您可使用以下
Tcl
命令来更改
Debug Hub
时钟。
connect_debug_port dbg_hub/clk [get_nets <clock net name>]
注释
:
您需要在设计完成综合后且实现之前运行此命令。
您还可以使用以下
Tcl
命令将
Debug Hub
时钟频率降低至
100 MHz
。
set_property C_CLK_INPUT_FREQ_HZ 200000000 [get_debug_cores dbg_hub]
set_property C_ENABLE_CLK_DIVIDER true [get_debug_cores dbg_hub]
注释
:
您需要在设计完成综合后且实现之前运行此命令。对于时钟速度极高的设计
,
建议采用此方法。此命令支持
在
Debug Hub
核内部包含基于
MMCM
的时钟分频器
,
以使时钟频率达到
100 MHz
。
调试核时钟
Vivado IP
目录中可用的所有调试核都需要时钟
,
以确保与受监控的输入探针或者由调试核驱动的任意输出信号保持同
步。在核发现与调试测量阶段中
,
时钟应可*运行并保持稳定。并且时钟应与受监控或受驱动的信号保持同步。否则
可能导致数据周期不精确。
Debug Hub IP
用于桥接主机
(
通过支持串行接口的
BSCAN
原语
)
与芯片上的调试核
(
通过支持并行接口的
XSDB
接
口
)
。
BSCAN
原语时钟用于以串行方式将进出芯片的数据转换为
Debug Hub IP
。
Debug Hub IP
会收集数据
,
并使用
Debug Hub
时钟将其发送至并行接口上的所有调试核
,
反之亦然。如有任一调试核时钟未*运行或者不稳定
,
则将
发生数据损坏
,
导致出现“
Debug Cores not detected
”消息。为了避免数据损坏
,
重要的是确保
JTAG
时钟和
Debug Hub
时钟在调试核检测流程中保持稳定并*运行。
1. Debug Hub
时钟必须*运行并保持稳定。赛灵思建议从已正确约束并且已满足时序的时钟驱动器来驱动时钟。
2.
如果从
MMCM/PLL
驱动时钟
,
那么在执行任何调试核测量之前
,
请确保
MMCM/PLL LOCKED
信号处于高电
平。如果时钟连接到
Debug Hub
或任一调试核并且在调试操作中间
MMCM/PLL LOCKED
信号转换为
0
,
那么时
钟可能发生显著抖动
,
从而可能导致调试逻辑出现不可预测的行为。
3.
为了检测调试核
,
请使用满足上述要求的核与捕获的数据来执行测量。所有关联的时钟都必须*运行并保持稳
定。
下表列出了各调试阶段以及特定阶段内所需的时钟。
注释
:
1.
稳定时钟
:
事件期间不发生暂停或停止的时钟。
2.
假定调试核时钟不同于
Debug Hub
时钟。
3.
调试核测量阶段包含对调试核上的属性执行
get
或
set
的所有步骤。
Vivado
硬件管理器时钟设置相关错误消息
如果
JTAG
时钟处于不活动或不可用状态
,
那么您将无法连接到硬件目标。
如果
Debug Hub
时钟处于不活动或不可用状态
,
那么
Vivado
硬件管理器会发出以下错误消息
:
INFO: [Labtools 27-1434] Device xxx (JTAG device index = 0) is programmed
with a
design that has no supported debug core(s) in it.
WARNING: [Labtools 27-3123] The debug hub core was not detected at User
Scan Chain 1
or 3.
Resolution:
1. Make sure the clock connected to the debug hub (dbg_hub) core is a free
running
clock and is active OR
2. Manually launch hw_server with -e "set xsdb-user-bscan
<C_USER_SCAN_CHAIN
scan_chain_number>" to detect the debug hub at User Scan Chain of 2 or 4.
To determine
the user scan chain setting, open the implemented design and use:
get_property
C_USER_SCAN_CHAIN [get_debug_cores dbg_hub].
如有任何调试核时钟处于不活动或不可用状态
,
那么
Vivado
硬件管理器会发出以下错误消息
:
INFO: [Labtools 27-2302] Device xxx (JTAG device index = 1) is programmed
with a
design that has 1 ILA core(s).
CRITICAL WARNING: [Labtools 27-1433] Device xxx (JTAG device index = 1) is
programmed
with a design that has an unrecognizable debug core (slave type = 17) at
user chain
= 1, index = 0.
Resolution:
1) Ensure that the clock signal connected to the debug core and/or debug
hub is clean
and free-running.
2) Ensure that the clock connected to the debug core and/or debug hub meets
all timing
constraints.
3) Ensure that the clock connected to debug core and/or debug hub is faster
than the
JTAG clock frequency.
下图提供了含
2
个
ILA
核的设计示例
:
此设计示例包含
2
个
ILA
核
:
ILA
“
A
”和
ILA
“
B
”。
此调试网络的时钟设置拓扑结构如下所示。当设计编程到器件中之后
,
Vivado
硬件管理器会尝试在设计中发现存在的
Debug Hub
核。而
Debug Hub
则会尝试发现并考量连接到自己的所有调试核。在此设计中
,
调试核为
ILA
“
A
”和
ILA
“
B
”。请注意
,
CLKA
同时驱动
ILA
“
A
”和
Debug Hub
核。
CLKB
则驱动
ILA
“
B
”调试核。
连接到目标并进行器件编程时
,
JTAG clk
应处于活动状态。在“调试核发现阶段”
,
应有*运行且保持稳定的时
钟
,
用于驱动
Debug Hub
核
,
在此情况下
,
即
CLKA
。在“调试核测量阶段”
(
即
,
涉及在调试核上获取
/
设置属性的
任何操作
),
JTAG
、
Debug Hub
和调试核时钟应处于活动状态。如果要触发并采集
ILA
“
B
”上的数据
,
那么
JTAG
、
Debug Hub (CLKA)
和调试核
(CLKB)
时钟应*运行并保持稳定。
将
Vivado
调试核添加至
Dynamic Function eXchange
设计
Vivado
调试核可在
Dynamic Function eXchange
设计中进行例化
,
在可重配置模块中也同样如此。添加和连接这些核
存在一些具体的要求和方法。请访问此
链接
并参阅《
Vivado Design Suite
用户指南
:
Dynamic Function eXchange
》
(
UG909
)
中的相应内容
,
以了解添加和连接这些
Vivado
调试核所需的方法。
要获取在
Dynamic Function eXchange
设计中例化调试核的示例以及
Vivado
硬件管理器中该功能的相关描述信息
,
请
访问此
链接
并参阅《
Vivado Design Suite
教程
:
Dynamic Function eXchange
》
(
UG947
)
中的相应内容。