调试核时钟设置指南
注释 : 以下章节适用于 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 ) 中的相应内容。