调试探针条件 - 2023.2 简体中文

Vivado Design Suite 用户指南: 编程和调试 (UG908)

Document ID
UG908
Release Date
2023-10-19
Version
2023.2 简体中文

调试探针条件可在双向或三向分支条件语句中使用。每个调试探针条件都占用调试探针连接到的 ILA 的 PROBE 端口上的 1 个触发器比较器。

重要: 每个 PROBE 端口都可包含 1 到 16 个触发器比较器(在编译时配置)。这意味着根据 PROBE 端口上配置的比较器数量,在整个触发器状态机程序中,您只能使用调试探针条件中的特定调试探针,且次数仅限 1 到 16 次。

调试探针条件由 1 个比较运算符和 1 个值组成。有效的调试探针条件比较运算符包括:

  • ==(等于)
  • !=(不等于)
  • >(大于)
  • <(小于)
  • >=(大于或等于)
  • <=(小于或等于)

有效值格式如下:

<bit_width>'<radix><value>

其中:

  • <bit width> 表示探针的宽度(以位数为单位)
  • <radix> 为以下值之一
    • b(二进制)
    • h(十六进制)
    • u(无符号十进制)
  • <value> 为以下值之一
    • 0(逻辑 0)
    • 1(逻辑 1)
    • X(忽略)
    • R(0 到 1 转换)- 仅对 1 位探针有效
    • F(1 到 0 转换)- 仅对 1 位探针有效
    • B(双向转换)- 仅对 1 位探针有效
    • N(无转换)- 仅对 1 位探针有效

    有效的调试探针条件值示例如下:

  • 1 位二进制值 0
    1'b0
  • 12 位十六进制值 7A
    12'h07A
  • 9 位整数值 123
    9'u123

调试探针条件语句示例如下:

  • 单一位调试探针 abc 等于 0
    if (abc == 1'b0) then
  • 23 位调试探针 xyz 等于 456
    if (xyz >= 23'u456) then
  • 23 位调试探针 klm 不等于十六进制值 A5
    if (klm != 23'h0000A5) then

多重调试探针条件语句示例如下:

  • 2 个调试探针比较,使用“OR”函数组合:
    if ((xyz >= 23'u456) || (abc == 1'b0)) then
  • 2 个调试探针比较,使用“AND”函数组合:
    if ((xyz >= 23'u456) && (abc == 1'b0)) then
  • 3 个调试探针比较,使用“OR”函数组合:
    if ((xyz >= 23'u456) || (abc == 1'b0) || (klm != 23'h0000A5)) then
  • 3 个调试探针比较,使用“AND”函数组合:
    if ((xyz >= 23'u456) && (abc == 1'b0) && (klm != 23'h0000A5)) then