Vl-module
Representation of a single module.
This is a product type introduced by defprod.
Fields
- name — stringp
- The name of this module as a string. The name is used to
instantiate this module, so generally we require that modules
in our list have unique names. A module's name is initially
set when it is parsed, but it may not remain fixed throughout
simplification. For instance, during unparameterization
a module named adder might become adder$size=12.
- params
- Any defparam statements for this module. BOZO these are
bad form anyway, but eventually we should provide better
support for them and proper structures.
- imports — vl-importlist
- Import statements for this module, like import foo::*.
- ports — vl-portlist
- The module's ports list, i.e., a, b, and c in
module mod(a,b,c);.
- portdecls — vl-portdecllist
- The input, output, and inout declarations for this module,
e.g., input [3:0] a;.
- vardecls — vl-vardecllist
- Wire and variable declarations like wire [3:0] w, tri v,
reg [3:0] r;, integer i;, real foo;, and so forth.
- paramdecls — vl-paramdecllist
- The parameter declarations for this module, e.g., parameter
width = 1;.
- fundecls — vl-fundecllist
- Function declarations like function f ....
- taskdecls — vl-taskdecllist
- Task declarations, e.g., task foo ....
- assigns — vl-assignlist
- Top-level continuous assignments like assign lhs = rhs;.
- aliases — vl-aliaslist
- Wire aliases, alias lhs = rhs;
- modinsts — vl-modinstlist
- Instances of modules and user-defined primitives, e.g.,
adder my_adder1 (...);.
- gateinsts — vl-gateinstlist
- Instances of primitive gates, e.g., and (o, a, b);.
- alwayses — vl-alwayslist
- Always blocks like always @(posedge clk) ....
- initials — vl-initiallist
- Initial blocks like initial begin ....
- genvars — vl-genvarlist
- Genvar declarations.
- generates — vl-genelementlist
- Generate blocks including generate regions and for/if/case blocks.
- atts — vl-atts
- Any attributes associated with this top-level module.
- minloc — vl-location
- Where we found the module keyword for this module, i.e.,
the start of this module's source code.
- maxloc — vl-location
- Where we found the endmodule keyword for this module, i.e.,
the end of this module's source code.
- origname — stringp
- Original name of the module from parse time. Unlike the
module's name, this is meant to remain fixed throughout
all simplifications. That is, while a module named adder
might be renamed to adder$size=12 during unparameterization, its origname will always be adder.
The origname is only intended to be used for display
purposes such as hyperlinking.
- warnings — vl-warninglist
- A warnings accumulator that stores any problems we have
with this module. Warnings are semantically meaningful only in
that any fatal warning indicates the module is invalid
and should not be discarded. The list of warnings may be
extended by any transformation or well-formedness check.
- comments — vl-commentmap
- A map from locations to source-code comments that occurred in
this module. We expect that comments are never consulted for
any semantic meaning. This field is mainly intended for
displaying the transformed module with comments preserved,
e.g., see vl-ppc-module.
- loaditems — vl-genelementlist
- See make-implicit-wires. This is a temporary container
to hold the module elements, in program order, until the rest
of the design has been loaded. This field is "owned" by the
make-implicit-wires transform. You should never access it
or modify it in any other code.
- esim
- This is meant to be nil until esim conversion, at
which point it becomes the E module corresponding to this
VL module.
Subtopics
- Vl-module-p
- Recognizer for vl-module structures.
- Vl-module-fix
- Fixing function for vl-module structures.
- Make-vl-module
- Basic constructor macro for vl-module structures.
- Change-vl-module
- Modifying constructor for vl-module structures.
- Vl-module-equiv
- Basic equivalence relation for vl-module structures.
- Vl-module->paramdecls
- Get the paramdecls field from a vl-module.
- Vl-module->modinsts
- Get the modinsts field from a vl-module.
- Vl-module->warnings
- Get the warnings field from a vl-module.
- Vl-module->vardecls
- Get the vardecls field from a vl-module.
- Vl-module->taskdecls
- Get the taskdecls field from a vl-module.
- Vl-module->portdecls
- Get the portdecls field from a vl-module.
- Vl-module->name
- Get the name field from a vl-module.
- Vl-module->loaditems
- Get the loaditems field from a vl-module.
- Vl-module->initials
- Get the initials field from a vl-module.
- Vl-module->imports
- Get the imports field from a vl-module.
- Vl-module->genvars
- Get the genvars field from a vl-module.
- Vl-module->generates
- Get the generates field from a vl-module.
- Vl-module->gateinsts
- Get the gateinsts field from a vl-module.
- Vl-module->fundecls
- Get the fundecls field from a vl-module.
- Vl-module->comments
- Get the comments field from a vl-module.
- Vl-module->assigns
- Get the assigns field from a vl-module.
- Vl-module->alwayses
- Get the alwayses field from a vl-module.
- Vl-module->aliases
- Get the aliases field from a vl-module.
- Vl-module->ports
- Get the ports field from a vl-module.
- Vl-module->origname
- Get the origname field from a vl-module.
- Vl-module->minloc
- Get the minloc field from a vl-module.
- Vl-module->maxloc
- Get the maxloc field from a vl-module.
- Vl-module->atts
- Get the atts field from a vl-module.
- Vl-module->esim
- Get the esim field from a vl-module.
- Vl-module->params
- Get the params field from a vl-module.