vivado 探针值枚举

探针值枚举
此功能支持按符号名称引用探针值 既可在“触发 / 采集设置 (Trigger/Capture Setup) ”期间引用探针值进行比较 也可
在“ Waveform ”窗口中引用探针值。
以下提供了常见用例。
• 状态机状态值
• 操作代码
• 任意探针匹配值 以供您按名称 而不是按值 来引用。
流程包括输入枚举名称 / 值对 以及将其与探针关联。枚举名称 / 值对关联可使用 Tcl 命令来执行并在会话间进行存储。
如果使用 mark_debug 属性来探测状态机中含枚举状态的状态寄存器 那么可通过实现来保留状态枚举 并自动显示在
Waveform ”窗口中。
探针比较值可使用“触发器设置 (Trigger Setup) ”窗口和“采集控制设置 (Capture Control Setup) ”窗口中的枚举名称
来设置。探针及其枚举名称 对应于值 同样可显示在“ Waveform ”窗口中。
添加 / 编辑枚举
使用硬件管理器定义新的枚举
要将新的枚举名称 / 值对与调试探针相关联 请在“调试探针 (Debug Probes) ”窗口或“触发 / 采集设置 (Trigger/
Capture Setup) ”窗口中右键单击调试探针 然后选中“ Edit Enumeration ”。
在“触发器设置”窗口中编辑与调试探针关联的枚举
您也可以在“调试探针 (Debug Probes) ”窗口或“触发器设置 (Trigger Setup) ”窗口中选中调试探针以将新的枚举名称 /
值对关联到调试探针。“调试探针属性 (Debug Probe Properties) ”窗口的“枚举 (Enumeration) ”选项卡也支持您将新
的名称 / 值对关联到探针。
单击“ Edit Enumeration ”以打开“编辑枚举 (Edit Enumeration) ”对话框。
选择名称 / 值对 并使用左侧的“ + ”和“ - ”按钮来添加或删除枚举。您可更改表中的“名称 (Name) ”、“基数
(Radix) ”和“值 (Value) ”字段。
使用 Tcl 命令添加枚举
add_hw_probe_enum 命令可用于将枚举名称 / 值对与调试探针相关联。您可将 add_hw_probe 命令添加到 Tcl 文件
中以使其定义显示在独立文件中。枚举名称保留其输入时的大小写 但查找时不区分大小写。
示例
set probe [get_hw_probes fast_cnt_count -of_objects [get_hw_ilas -
of_objects
[get_hw_devices xc7k325t_0] -filter {CELL_NAME=~"i_fast_ila"}]]
add_hw_probe_enum ZERO eq5'h00 $probe
add_hw_probe_enum TWELVE eq5'u12 $probe
add_hw_probe_enum THIRTEEN eq5'u13 $probe
add_hw_probe_enum FOURTEEN eq5'u14 $probe
add_hw_probe_enum FIFTEEN eq5'u15 $probe
add_hw_probe_enum SIXTEEN eq5'u16 $probe
add_hw_probe_enum SEVENTEEN eq5'u17 $probe
使用 Tcl 命令删除枚举
remove_hw_probe_enum 命令可用于移除明确指定的枚举条目或者 hw_probe 的所有枚举。
示例
remove_hw_probe_enum -list {zero } [get_hw_probes U_SINEGEN/sel -of_objects
[get_hw_ilas -of_objects [get_hw_devices xc7k325t_0] -filter
{CELL_NAME=~"u_ila_0"}]]
提示 使用 remove_hw_probe_enum 中的 -remove_all 选项可移除与探针关联的所有枚举。
访问枚举
枚举作为 hw_probe 属性来存储 因此可在这些属性上使用 set_property get_property
report_property 命令。
枚举属性带有 ENUM 前缀 将枚举与 set_property get_property 命令配合使用时 需使用此前缀。请参阅以
下示例。
get_property ENUM.FIFTEEN -of_objects [get_hw_ilas -of_objects
[get_hw_devices
xc7k325t_0] -filter {CELL_NAME=~"i_fast_ila"}]]
eq5'u15
report_property [get_hw_probes fast_vio_slice5_fb -of_objects [get_hw_ilas
hw_ila_1]] ENUM*
Property Type Read-only Visible Value
ENUM.FIFTEEN string true true eq5'u15
ENUM.FOURTEEN string true true eq5'u14
ENUM.SEVENTEEN string true true eq5'u17
ENUM.SIXTEEN string true true eq5'u16
ENUM.THIRTEEN string true true eq5'u13
ENUM.TWELVE string true true eq5'u12
ENUM.ZERO string true true eq5'h00
set_property ENUM.FIFTEEN eq5'h0F [get_hw_probes fast_vio_slice5_fb -
of_objects
[get_hw_ilas hw_ila_1]]
在“触发器设置”窗口中使用枚举
在“触发器设置 (Trigger Setup) ”窗口中设置比较值 其语法与数字比较值类似。基数字符为“ e ”。针对枚举比较
仅支持运算符“ eq ”和“ neq ”。
set_property TRIGGER_COMPARE_VALUE eq2'ethree [get_hw_probes U_SINEGEN/sel
-of_objects [get_hw_ilas -of_objects [get_hw_devices xc7k325t_0] -filter
{CELL_NAME=~"u_ila_0"}]]
在“采集设置”窗口中使用枚举
您还可在 Vivado IDE 的“采集设置 (Capture Setup) ”窗口中使用枚举或者使用 Tcl 命令来比较各值。
set_property CAPTURE_COMPARE_VALUE eq2'eone [get_hw_probes locked -
of_objects
[get_hw_ilas -of_objects [get_hw_devices xc7k325t_0] -filter
{CELL_NAME=~"u_ila_0_0"}]]
高级触发器
您可在高级触发器状态机 (Advanced Trigger State Machine) 脚本中使用枚举来比较各值 如以下示例所示。
state my_state0:
if (fast_ila_slice5_fb == 5'eFIFTEEN) then
set_flag $flag1;
goto my_state0;
elseif (fast_ila_slice5_fb == 5'eTWELVE) then
trigger;
else
clear_flag $flag1;
goto my_state0;
endif
在波形窗口中使用枚举
您可在“波形 (Waveform) ”窗口中针对每个信号选中“以枚举方式显示 (Show as Enumeration) ”选项来显示枚举。在
“波形 (Waveform) ”窗口中右键单击信号 并从显示的菜单中选择“ Show as Enumeration ”。不以枚举方式显示时
总线值根据常规基数选择来显示。
枚举信息将保存到波形数据文件中 并在后续显示波形数据时使用。已定义“枚举”的波形探针的默认设置是显示“枚
举”。
当波形对象选中“以枚举方式显示”时 将显示枚举名称。如果波形值没有匹配的枚举 则将改为根据所选基数来显
示。
重要提示 如果在创建枚举前已创建波形 则可通过使用以下 Tcl 命令来保存波形 ILA 数据的方式将新枚举应用
于波形。
write_hw_ila_data -force data_ila_3.ila [upload_hw_ila_data hw_ila_3]
display_hw_ila_data [read_hw_ila_data ./data_ila_3.ila]
  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值