• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Fgl
      • Vl
        • Syntax
          • Vl-module
            • Vl-module-p
            • Make-vl-module
            • Vl-module-fix
            • Change-vl-module
            • Vl-module-equiv
            • Vl-module->defaultdisables
            • Vl-module->timeprecision
            • Vl-module->parse-temps
            • Vl-module->paramdecls
            • Vl-module->timeunit
            • Vl-module->taskdecls
            • Vl-module->sequences
            • Vl-module->properties
            • Vl-module->portdecls
            • Vl-module->origname
            • Vl-module->modinsts
            • Vl-module->generates
            • Vl-module->gclkdecls
            • Vl-module->gateinsts
            • Vl-module->elabtasks
            • Vl-module->dpiimports
            • Vl-module->dpiexports
            • Vl-module->covergroups
            • Vl-module->cassertions
            • Vl-module->assertions
            • Vl-module->warnings
            • Vl-module->vardecls
            • Vl-module->typedefs
            • Vl-module->name
            • Vl-module->minloc
            • Vl-module->maxloc
            • Vl-module->initials
            • Vl-module->imports
            • Vl-module->genvars
            • Vl-module->fundecls
            • Vl-module->finals
            • Vl-module->comments
            • Vl-module->clkdecls
            • Vl-module->classes
            • Vl-module->assigns
            • Vl-module->alwayses
            • Vl-module->aliases
            • Vl-module->ports
            • Vl-module->binds
            • Vl-module->atts
            • Vl-module->params
          • Vl-vardecl
          • Vl-fundecl
          • Vl-interface
          • Vl-design
          • Vl-assign
          • Vl-modinst
          • Vl-gateinst
          • Vl-taskdecl
          • Vl-portdecl
          • Vl-commentmap
          • Vl-dpiimport
          • Vl-ansi-portdecl
          • Vl-package
          • Vl-paramdecl
          • Vl-dpiexport
          • Vl-plainarglist->exprs
          • Vl-class
          • Vl-taskdecllist->names
          • Vl-sort-blockitems-aux
          • Vl-fundecllist->names
          • Expressions-and-datatypes
          • Vl-udp
          • Vl-port
          • Vl-genelement
          • Vl-clkdecl
          • Vl-parse-temps
          • Vl-bind
          • Vl-namedarg
          • Vl-exprdist
          • Vl-clkassign
          • Vl-range
          • Vl-propport
          • Vl-typedef
          • Vl-gatedelay
          • Vl-dimension
          • Vl-sequence
          • Vl-clkskew
          • Vl-program
          • Vl-gatestrength
          • Vl-property
          • Vl-config
          • Vl-always
          • Vl-import
          • Vl-repeateventcontrol
          • Vl-timeliteral
          • Vl-initial
          • Vl-eventcontrol
          • Vl-udpsymbol-p
          • Vl-final
          • Vl-maybe-clkskew
          • Vl-alias
          • Vl-maybe-nettypename
          • Vl-maybe-gatedelay
          • Vl-letdecl
          • Vl-direction-p
          • Vl-modelement
          • Vl-maybe-timeprecisiondecl
          • Vl-maybe-scopeid
          • Vl-maybe-gatestrength
          • Vl-maybe-direction
          • Vl-maybe-delayoreventcontrol
          • Vl-gclkdecl
          • Vl-fwdtypedef
          • Vl-maybe-udpsymbol-p
          • Vl-maybe-timeunitdecl
          • Vl-maybe-timeliteral
          • Vl-maybe-parse-temps
          • Vl-maybe-cstrength
          • Vl-arguments
          • Vl-maybe-module
          • Vl-maybe-design
          • Vl-covergroup
          • Vl-udpline
          • Vl-timeunitdecl
          • Vl-genvar
          • Vl-defaultdisable
          • Vl-context1
          • Vl-timeprecisiondecl
          • Vl-sort-blockitems
          • Vl-elabtask
          • Vl-udpedge
          • Vl-delaycontrol
          • Vl-context
          • Vl-modelement->loc
          • Vl-ctxelement
          • Vl-ctxelement->loc
          • Statements
          • Vl-interface->ifports
          • Vl-blockitem
          • Vl-vardecllist
          • Vl-module->ifports
          • Vl-lifetime-p
          • Vl-syntaxversion
          • Vl-nettypename-p
          • Vl-paramdecllist
          • Vl-modelementlist->genelements
          • Vl-importlist
          • Vl-gatetype-p
          • Vl-typedeflist
          • Vl-genelement->loc
          • Vl-cstrength-p
          • Vl-port->name
          • Vl-elabtask->loc
          • Vl-delayoreventcontrol
          • Vl-udpentry-p
          • Vl-portdecllist
          • Vl-port->loc
          • Property-expressions
          • Vl-taskdecllist
          • Vl-fundecllist
          • Vl-sequencelist
          • Vl-propertylist
          • Vl-portlist
          • Vl-dpiimportlist
          • Vl-dpiexportlist
          • Vl-classlist
          • Vl-arguments->args
          • Vl-alwaystype-p
          • Vl-modinstlist
          • Vl-importpart-p
          • Vl-importpart-fix
          • Vl-blockstmt-p
          • Vl-bindlist
          • Vl-initiallist
          • Vl-genvarlist
          • Vl-gclkdecllist
          • Vl-finallist
          • Vl-elabtasklist
          • Vl-defaultdisablelist
          • Vl-clkdecllist
          • Vl-cassertionlist
          • Vl-assignlist
          • Vl-assertionlist
          • Vl-alwayslist
          • Vl-aliaslist
          • Vl-udptable
          • Vl-udplist
          • Vl-udpentrylist
          • Vl-propportlist
          • Vl-programlist
          • Vl-packagelist
          • Vl-namedarglist
          • Vl-modulelist
          • Vl-modportlist
          • Vl-modport-portlist
          • Vl-letdecllist
          • Vl-interfacelist
          • Vl-gateinstlist
          • Vl-fwdtypedeflist
          • Vl-covergrouplist
          • Vl-configlist
          • Vl-clkassignlist
          • Vl-casekey-p
          • Vl-blockitemlist
          • Vl-ansi-portdecllist
          • Vl-regularportlist
          • Vl-paramdecllist-list
          • Vl-modelementlist
          • Vl-interfaceportlist
        • Loader
        • Warnings
        • Getting-started
        • Utilities
        • Printer
        • Kit
        • Mlib
        • Transforms
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Testing-utilities
    • Math
  • Syntax

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->defaultdisables
Get the defaultdisables field from a vl-module.
Vl-module->timeprecision
Get the timeprecision field from a vl-module.
Vl-module->parse-temps
Get the parse-temps field from a vl-module.
Vl-module->paramdecls
Get the paramdecls field from a vl-module.
Vl-module->timeunit
Get the timeunit 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->properties
Get the properties field from a vl-module.
Vl-module->portdecls
Get the portdecls 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->gclkdecls
Get the gclkdecls field from a vl-module.
Vl-module->gateinsts
Get the gateinsts field from a vl-module.
Vl-module->elabtasks
Get the elabtasks 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->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->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->fundecls
Get the fundecls field from a vl-module.
Vl-module->finals
Get the finals 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->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.