Debug Probe Conditions - 2020.2 English

Vivado Design Suite User Guide: Programming and Debugging (UG908)

Document ID
UG908
Release Date
2020-12-07
Version
2020.2 English

Debug probe conditions can be used in two-way and three-way branching conditional statements. Each debug probe condition consumes one trigger comparator on the PROBE port of the ILA to which the debug probe is attached.

Important: Each PROBE port can have from 1 to 16 trigger comparators as configured at compile time. This means that you can only use a particular debug probe in a debug probe condition up from 1 to 16 times in the entire trigger state machine program, depending on the number of comparators configured on the PROBE port.

The debug probe conditions consist of a comparison operator and a value. The valid debug probe condition comparison operators are:

  • == (equals)
  • != (not equals)
  • > (greater than)
  • < (less than)
  • >= (greater than or equal to)
  • <= (less than or equal to)

Valid values are of the form:

<bit_width>'<radix><value>

Where:

  • <bit width> is the width of the probe (in bits)
  • <radix> is one of
    • b (binary)
    • h (hexadecimal)
    • u (unsigned decimal)
  • <value> is one of
    • 0 (Logical zero)
    • 1 (Logical one)
    • X (dont care)
    • R (0-to-1 transition) - Valid only for 1 bit probes
    • F (1-to-0 transition) - Valid only for 1 bit probes
    • B (both transitions) - Valid only for 1 bit probes
    • N (No transitions) - Valid only for 1 bit probes

    Examples of valid debug probe condition values are:

  • 1-bit binary value of 0
    1'b0
  • 12-bit hex value of 7A
    12'h07A
  • 9-bit integer value of 123
    9'u123

Examples of debug probe condition statements are:

  • A single-bit debug probe called abc equals 0
    if (abc == 1'b0) then
  • A 23-bit debug probe xyz equals 456
    if (xyz >= 23'u456) then
  • A 23-bit debug probe klm does not equal hex A5
    if (klm != 23'h0000A5) then

Examples of multiple debug probe condition statements are:

  • Two debug probe comparisons combined with an "OR" function:
    if ((xyz >= 23'u456) || (abc == 1'b0)) then
  • Two debug probe comparisons combined with an "AND" function:
    if ((xyz >= 23'u456) && (abc == 1'b0)) then
  • Three debug probe comparisons combined with an "OR" function:
    if ((xyz >= 23'u456) || (abc == 1'b0) || (klm != 23'h0000A5)) then
  • Three debug probe comparisons combined with an "AND" function:
    if ((xyz >= 23'u456) && (abc == 1'b0) && (klm != 23'h0000A5)) then