Skip to content

Boolean conditions

This page describes the boolean expressions that wavepeek accepts with property --eval and extract generic --when and evaluates over sampled waveform values. An iff guard in an event expression uses the same expression language.

The language is a SystemVerilog-compatible subset. Signal references keep the types and widths recovered from the dump, including four-state x and z values where the operation supports them.

See Boolean expression language contract for operand types, casts, conversions, operators, precedence, and grammar.

Simple conditions work as expected:

valid && ready
state == 3
count >= 8'd10

Expressions can also use arithmetic, bitwise and logical operators, shifts, bit-selects, part-selects, concatenation, and replication:

(count + 1) == limit
data[7:4] == 4'ha
(data & mask) != 0
{header, payload[3:0]} == expected
value == {4{2'b10}}

The full language also includes casts, reductions, inside, the ?: conditional operator, and SystemVerilog equality forms such as === and ==?.

Literals

Integral literals use SystemVerilog syntax:

12
'd12
'hff
8'hff
16'sd12
4'b10xz

C-style literals such as 0xff and 0b1010 are not supported. Use 8'hff and 4'b1010 instead.