Vl-index
A reference to some part of something that is somewhere in the
design. Could be a simple wire name like foo, or something
much fancier with scoping, hierarchy, indexing, and part-selects
like ape::bat::cat.dog[3][2][1].elf[6][5][10:0].
This is a product type, introduced by deftagsum in support of vl-expr.
Fields
- scope — vl-scopeexpr
- Captures the scoping that leads to some object in the
design. This captures the ape::bat::cat.dog[3][2][1].elf
part of the example above.
- indices — vl-exprlist
- Captures any subsequent indexing once we get to the thing
pointed to by scope. This captures the [6][5] part
of the example above.
- part — vl-partselect
- Captures any subsequent part-selection once we get past all of
the indexing. This captures the [10:0] part of the
example above.
- atts — vl-atts
- Any associated attributes. BOZO where would you put such
attributes?
SystemVerilog provides a very rich syntax for referring to things
in different scopes and throughout the module hierarchy. Any such
reference—whether it is a very simple identifier like foo
or a very complex scoped, hierarchical, indexed, mess of
indirection—is ultimately represented as a single
vl-index expression.
Subtopics
- Vl-scopeexpr
- Representation of a (possibly scoped, possibly hierarchical)
reference to something in the design. For example:
ape::bat::cat.dog[3][2][1].elf.
- Vl-hidindex
- Representation of a leading piece of a hierarchical reference to
something, perhaps with associated indices.
- Vl-partselect
- Representation of any kind of part-select that is being applied to
a some object in the design.
- Vl-hidexpr
- Representation of a (possibly) hierarchical reference to something
in the design. For example: cat.dog[3][2][1].elf.
- Make-vl-index
- Basic constructor macro for vl-index structures.
- Vl-index->indices
- Get the indices field from a vl-index.
- Vl-index->scope
- Get the scope field from a vl-index.
- Vl-index->part
- Get the part field from a vl-index.
- Vl-index->atts
- Get the atts field from a vl-index.
- Change-vl-index
- Modifying constructor for vl-index structures.
- Vl-scopeexpr->expr
- Promote an vl-scopeexpr into a proper vl-index without
any part select.
- Vl-hidname
- Leading names that can be used in a vl-hidindex: $root or
a user-defined name.