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:
- == (equal to)
- != (not equal to)
- > (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