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