Vl-modinst
Representation of a single module instance, user-defined primitive
instance, or a direct interface instance (not an interface port).
This is a product type introduced by defprod.
Fields
- instname — maybe-string
- Either the name of this instance or nil if the instance has
no name. See also the addnames transform.
- modname — stringp
- Name of the module, user-defined primitive, or interface that is
being instantiated.
- portargs — vl-arguments
- Connections to use for the submodule's input, output, and inout
ports.
- paramargs — vl-paramargs
- Values to use for module parameters. For instance, this might
specify the width to use for an adder module, etc.
- loc — vl-location
- Where the instance was found in the source code.
- range — vl-maybe-range
- When present, indicates that this is an array of instances,
instead of a single instance.
- atts — vl-atts
- Any attributes associated with this instance.
- str — vl-maybe-gatestrength
- Strength for user-defined primitive instances. Does not make
sense for module instances. VL mostly ignores this.
- delay — vl-maybe-gatedelay
- Delay for user-defined primitive instances. Does not make sense
for module instances. VL mostly ignores this.
We represent module and user-defined primitive instances in a
uniform manner with vl-modinst-p structures. Because of this, certain
fields do not make sense in one context or another. In particular, a UDP
instance should never have any parameter arguments, its port arguments should
always be an plain argument list, and it may not have a instname. Meanwhile, a
module instance should never have a drive strength or a delay, and should
always have a instname.
As with variables, nets, etc., we split up combined instantiations such as
modname inst1 (...), inst2 (...) into separate, individual structures, one
for inst1, and one for inst2, so that each vl-modinst-p
represents exactly one instance (or instance array).
Subtopics
- Vl-modinst-p
- Recognizer for vl-modinst structures.
- Vl-modinst-fix
- Fixing function for vl-modinst structures.
- Make-vl-modinst
- Basic constructor macro for vl-modinst structures.
- Vl-modinst-equiv
- Basic equivalence relation for vl-modinst structures.
- Change-vl-modinst
- Modifying constructor for vl-modinst structures.
- Vl-modinst->str
- Get the str field from a vl-modinst.
- Vl-modinst->portargs
- Get the portargs field from a vl-modinst.
- Vl-modinst->paramargs
- Get the paramargs field from a vl-modinst.
- Vl-modinst->instname
- Get the instname field from a vl-modinst.
- Vl-modinst->delay
- Get the delay field from a vl-modinst.
- Vl-modinst->range
- Get the range field from a vl-modinst.
- Vl-modinst->modname
- Get the modname field from a vl-modinst.
- Vl-modinst->loc
- Get the loc field from a vl-modinst.
- Vl-modinst->atts
- Get the atts field from a vl-modinst.