使用 ILA 默认仪表板
ILA 仪表板 ( 请参阅下图 ) 是给定 ILA 核相关的所有状态和控制信息的集中显示位置。刷新硬件器件并首次检测到 ILA
核时 , 将自动打开该核的默认 ILA 仪表板。如果需要手动打开或重新打开此仪表板 , 只需在“硬件 (Hardware) ”窗口
中右键单击 ILA 核对象 , 然后选择“ Default Dashboard ”即可。
您可使用 ILA 仪表板通过多种方式来与 ILA 调试核进行交互 :
• 设置触发器模式 , 以便在硬件中发生各种事件时触发 :
○
BASIC_ONLY : “ ILA 基本触发器模式 (ILA Basic Trigger Mode) ”可用于在满足调试核比较结果的基本 AND/OR
功能时触发 ILA 核。
○
ADVANCED_ONLY : “ ILA 高级触发器模式 (ILA Advanced Trigger Mode) ”可用于按用户定义的状态机指定的
条件来触发 ILA 核。
○
TRIG_IN_ONLY : “ ILA TRIG_IN 触发器模式 (ILA TRIG_IN Trigger Mode) ”可用于在 ILA 核的 TRIG_IN 管脚从
低位转换至高位时触发 ILA 核。
○
BASIC_OR_TRIG_IN : “ ILA BASIC_OR_TRIG_IN 触发器模式 (ILA BASIC_OR_TRIG_IN Trigger Mode) ”可用于
在 ILA 核的 TRIG_IN 管脚执行逻辑 OR 操作并且目标模式为 BASIC_ONLY 触发器模式时触发 ILA 核。
○
ADVANCED_OR_TRIG_IN : “ ILA ADVANCED_OR_TRIG_IN 触发器模式 (ILA ADVANCED_OR_TRIG_IN
Trigger Mode) ”可用于在 ILA 核的 TRIG_IN 管脚执行逻辑 OR 操作并且目标模式为 ADVANCED_ONLY 触发器
模式时触发 ILA 核。
• 设置触发器输出模式。
• ALWAYS 和 BASIC 采集模式可用于控制要采集的数据的筛选操作。
• 设置 ILA 采集窗口的数量。
• 设置 ILA 采集窗口的数据深度。
• 将触发器位置设置为采集窗口内的任意样本。
• 监控 ILA 调试核的触发和采集状态。
用户定义的调试探针
在硬件管理器中使用用户定义的调试探针 ( 也称为 hw_probes ) 即可利用物理 ILA 探针端口与常量值的组合来创建探
针。随后即可在硬件管理器的“触发器设置 (Trigger Setup) ”窗口或“波形 (Waveform) ”窗口中使用这些探针。成功创
建这些探针后 , 将在“调试探针 (Debug Probes) ”窗口中列出这些探针 , 并将这些探针包含在创建期间与其关联的调试
核中。
您可创建的用户定义的探针类型如下 :
• ILA 探针端口。
• 1 个或多个常量值 ( 0 和 / 或 1 ) 。
• ILA 探针端口与常量值混合。
重要提示 ! 包含常量值的用户定义的探针只能在“ Waveform ”窗口中使用。这些探针无法在“ Trigger
Setup ”窗口中使用。
提示 : 您只能在 ILA 调试核上创建用户定义的探针。当前不支持为 VIO 核创建用户定义的调试探针。
创建用户定义的调试探针
GUI 流程
要在 Vivado IDE 硬件管理器中创建用户定义的调试核 , 请在“ Hardware ”窗口中右键单击要探测的 ILA 核并选择
“ Create User Defined Probe ”。
这样可启动“创建用户定义的探针 (Create User Defined Probe) ”对话框。选择要在其中创建探针的 ILA 核、新探针的
名称 , 最后选择探针位和 / 或组成此新探针的常量。
要向此新探针添加特定探针位 , 请单击“ + ”按钮 , 并选择“ Add Probe ”。
这样将启动“添加探针 (Add Probes) ”对话框 , 以便您选择现有探针或者现有探针的特定位。
您还可以在“创建用户定义的探针 (Create User Defined Probe) ”对话框中添加或移除位。将特定位上移或下移 , 如下
图所示。
Tcl 流程
要创建用户定义的调试探针 , 请使用 create_hw_probe Tcl 命令。
create_hw_probe [-verbose] [-map <arg>] <name> <core>
其中 :
• name : 是 hw_probe 的名称。对于属于同一器件的 hw_probes , 此名称必须唯一。必须指定总线探针的范围。
例如 , myNewProbe[31:0] 。
• core : 是要与探针关联的 hw_ila 。
• -map : 表示声明的位元 , 这些位元将作为用户定义的探针的基础。
创建用户定义的调试探针的示例 :
# Given a 512-bit counter "counterA[511:0]": Connects [255:223] to
# ILA probe port 0 [31:0]
# Create a user-defined probe called foobar pointing at the
# ILA buffer specified range [255:223]
create_hw_probe -map {probe0[31:0]} {foobar [255:223]} [get_hw_ilas
hw_ila_1]
# Constant only probe. NO triggering allowed on constant ONLY probes.
create_hw_probe -map {0} {my_constant_gnd[0:0]} [get_hw_ilas hw_ila_1]
# Create a user-defined probe as a mix of constants and ILA probe ports
create_hw_probe -map {0000 probe0[31:0] 1010} {my_mixed_probe[47:8]}
[get_hw_ilas
hw_ila_1]
# Creating scalar hw_probe called "foobar" from probe1:
create_hw_probe -map {probe1} foobar [get_hw_ilas hw_ila_1]
# Creating scalar hw_probe called "foobar" from bit 3 of probe0:
create_hw_probe -map {probe0[3]} foobar [get_hw_ilas hw_ila_1]
# Creating vector hw_probe called "foobar[0:0]" from probe1:
create_hw_probe -map {probe1} foobar[0:0] [get_hw_ilas hw_ila_1]
# Creating vector probe called "foobar[3:0]" from probe0:
create_hw_probe -map {probe0} foobar[3:0] [get_hw_ilas hw_ila_1]
# Creating vector probe called "foobar[3:2]" from probe0[1:0]:
create_hw_probe -map {probe0[1:0]} foobar[3:2] [get_hw_ilas hw_ila_1]
删除用户定义的调试探针
GUI 流程
要在 Vivado IDE Hardware Manager 中删除用户定义的探针 , 请依次单击“ Window ” → “ Debug Probe ”。这样会
在“硬件管理器 (Hardware Manager) ”仪表板旁打开“调试探针 (Debug Probes) ”窗口。请右键单击此窗口中的相应
探针 , 然后单击“ Delete ” , 如下所示。
Tcl 流程
您可使用 delete_hw_probe Tcl 命令删除用户定义的调试探针。
例如 , 要删除先前使用 create_hw_probe 创建的 foobar 探针 , 请执行以下操作 :
delete_hw_probe [get_hw_probes foobar -of_objects [get_hw_ilas -of_objects
[get_hw_devices xc7k325t_0] -filter {CELL_NAME=~"i_fast_ila"}]]
用户定义的调试探针的持久性
在工程流程中 , 硬件管理器会保留其中创建的任何用户定义的探针。下次打开该工程并使用 Vivado 硬件管理器连接到
硬件目标时 , 这些用户定义的探针就会恢复。如果这些用户定义的调试探针参与了“基本触发” , 或者已被添加到“波
形 (Waveform) ”窗口中 , 那么打开工程并连接到硬件管理器中的目标时 , 所有窗口中显示的探针设置都与先前关闭工
程时的设置完全相同。
与用户定义的探针进行交互
硬件管理器中创建的任意用户定义的调试探针均可显示在“基本触发 (Basic triggering) ”窗口、“高级触发 (Advanced
Triggering) ”窗口和 / 或“波形 (Waveform) ”窗口中。唯一例外是涉及常量值的用户定义的调试探针。这些类型的调试
探针只能在“ Waveform ”窗口中使用。