Vl-range
A simple [msb:lsb] style range.
This is a product type introduced by defprod.
Fields
- msb — vl-expr
- Most significant bit of the range.
- lsb — vl-expr
- Least significant bit of the range.
Ranges are discussed in Section 7.1.5 of the Verilog-2005
standard. Typically a range looks like [msb:lsb]. This same
syntax is used in many places, such as part selects, with
expressions in streaming expressions, etc.
In general, the msb is not required to be greater than
lsb, and neither index is required to be zero. However, for
instance, if a wire is declared with a range such as [7:0],
then it should be selected from using ranges such as [3:0] and
attempting to select from it using a "backwards" part-select such
as [0:3] is an error.
See range-tools for many functions for working with
ranges.
Subtopics
- Vl-maybe-range
- Option type; vl-range or nil.
- Vl-range-p
- Recognizer for vl-range structures.
- Vl-range-equiv
- Basic equivalence relation for vl-range structures.
- Make-vl-range
- Basic constructor macro for vl-range structures.
- Vl-range->msb
- Get the msb field from a vl-range.
- Vl-range->lsb
- Get the lsb field from a vl-range.
- Change-vl-range
- Modifying constructor for vl-range structures.
- Vl-rangelist
- A list of vl-range-p objects.
- Vl-range-fix
- Fixing function for vl-range structures.
- Vl-range-count
- Measure for recurring over vl-range structures.