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.
- 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.
- 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.
- modinsts — vl-modinstlist
- Instances of modules and user-defined primitives, e.g.,
adder my_adder1 (...);.
- assigns — vl-assignlist
- Top-level continuous assignments like assign lhs = rhs;.
- gateinsts — vl-gateinstlist
- Instances of primitive gates, e.g., and (o, a, b);.
- paramdecls — vl-paramdecllist
- The parameter declarations for this module, e.g., parameter
width = 1;.
- imports — vl-importlist
- Package import statements for this module, like import
foo::*.
- atts — vl-atts
- Any attributes associated with this top-level module.
- 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.
- timeunit — vl-maybe-timeunitdecl
- The timeunits for this module, if specified.
- timeprecision — vl-maybe-timeprecisiondecl
- The timeprecision for this module, if specified.
- alwayses — vl-alwayslist
- Always blocks like always @(posedge clk) ....
- genvars — vl-genvarlist
- Genvar declarations.
- generates — vl-genelementlist
- Generate blocks including generate regions and for/if/case blocks.
- fundecls — vl-fundecllist
- Function declarations like function f ....
- taskdecls — vl-taskdecllist
- Task declarations, e.g., task foo ....
- typedefs — vl-typedeflist
- Type declarations such as typedef logic [3:0] nibble;.
- initials — vl-initiallist
- Initial blocks like initial begin ....
- finals — vl-finallist
- Final statements like final begin ....
- aliases — vl-aliaslist
- Wire aliases, alias lhs = rhs;
- assertions — vl-assertionlist
- Immediate (including deferred immediate) assertions.
- cassertions — vl-cassertionlist
- Concurrent assertions for the module.
- properties — vl-propertylist
- Property declarations for the module.
- sequences — vl-sequencelist
- Sequence declarations for the module.
- clkdecls — vl-clkdecllist
- (Non-global) clocking blocks for the module.
- gclkdecls — vl-gclkdecllist
- Global clocking for this module, if any. Note that
SystemVerilog only allows a single global clocking, but we
allow a list here because it makes things work much more
smoothly with modelements.
- defaultdisables — vl-defaultdisablelist
- Any default disable ... constructs for the module.
- dpiimports — vl-dpiimportlist
- DPI imports for this module.
- dpiexports — vl-dpiexportlist
- DPI exports for this module.
- binds — vl-bindlist
- Bind directives in this module.
- classes — vl-classlist
- Classes declared within this module.
- covergroups — vl-covergrouplist
- Covergroups declared within this module.
- elabtasks — vl-elabtasklist
- Elaboration system tasks like $fatal.
- parse-temps — vl-maybe-parse-temps
- Temporary stuff recorded by the parser, used to generate real
module contents.
- 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.
Subtopics
- Vl-module-p
- Recognizer for vl-module structures.
- Make-vl-module
- Basic constructor macro for vl-module structures.
- Vl-module-fix
- Fixing function 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->timeprecision
- Get the timeprecision field from a vl-module.
- Vl-module->paramdecls
- Get the paramdecls field from a vl-module.
- Vl-module->defaultdisables
- Get the defaultdisables field from a vl-module.
- Vl-module->timeunit
- Get the timeunit field from a vl-module.
- Vl-module->properties
- Get the properties field from a vl-module.
- Vl-module->parse-temps
- Get the parse-temps field from a vl-module.
- Vl-module->origname
- Get the origname field from a vl-module.
- Vl-module->modinsts
- Get the modinsts field from a vl-module.
- Vl-module->generates
- Get the generates field from a vl-module.
- Vl-module->dpiimports
- Get the dpiimports field from a vl-module.
- Vl-module->dpiexports
- Get the dpiexports field from a vl-module.
- Vl-module->covergroups
- Get the covergroups field from a vl-module.
- Vl-module->cassertions
- Get the cassertions field from a vl-module.
- Vl-module->assertions
- Get the assertions 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->typedefs
- Get the typedefs field from a vl-module.
- Vl-module->taskdecls
- Get the taskdecls field from a vl-module.
- Vl-module->sequences
- Get the sequences field from a vl-module.
- Vl-module->portdecls
- Get the portdecls 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->gclkdecls
- Get the gclkdecls 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->elabtasks
- Get the elabtasks field from a vl-module.
- Vl-module->comments
- Get the comments field from a vl-module.
- Vl-module->clkdecls
- Get the clkdecls field from a vl-module.
- Vl-module->classes
- Get the classes 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->name
- Get the name 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->finals
- Get the finals field from a vl-module.
- Vl-module->binds
- Get the binds field from a vl-module.
- Vl-module->atts
- Get the atts field from a vl-module.
- Vl-module->params
- Get the params field from a vl-module.