• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
          • Vl-module
            • Vl-module-p
            • Vl-module-fix
            • Make-vl-module
            • Change-vl-module
            • Vl-module-equiv
            • Vl-module->paramdecls
            • Vl-module->taskdecls
            • Vl-module->portdecls
            • Vl-module->name
            • Vl-module->modinsts
            • Vl-module->loaditems
            • Vl-module->generates
            • Vl-module->warnings
            • Vl-module->vardecls
            • Vl-module->origname
            • Vl-module->maxloc
            • Vl-module->initials
            • Vl-module->imports
            • Vl-module->genvars
            • Vl-module->gateinsts
            • Vl-module->fundecls
            • Vl-module->comments
            • Vl-module->assigns
            • Vl-module->alwayses
            • Vl-module->aliases
            • Vl-module->ports
            • Vl-module->minloc
            • Vl-module->atts
            • Vl-module->esim
            • Vl-module->params
          • Vl-vardecl
          • Expressions
          • Vl-fundecl
          • Vl-assign
          • Vl-gateinst
          • Vl-modinst
          • Vl-commentmap
          • Vl-portdecl
          • Vl-taskdecl
          • Vl-design
          • Vl-interface
          • Vl-plainarglist->exprs
          • Vl-taskdecllist->names
          • Vl-fundecllist->names
          • Vl-package
          • Vl-port
          • Vl-udp
          • Vl-paramdecl
          • Vl-genelement
          • Vl-cycledelayrange
          • Vl-namedarg
          • Vl-sort-blockitems-aux
          • Vl-distitem
          • Vl-gatedelay
          • Vl-repetition
          • Vl-typedef
          • Vl-range
          • Vl-gatestrength
          • Vl-program
          • Vl-datatype-update-dims
          • Vl-config
          • Vl-always
          • Vl-import
          • Vl-enumbasetype
          • Vl-repeateventcontrol
          • Vl-paramargs
          • Vl-initial
          • Vl-eventcontrol
          • Vl-udpsymbol-p
          • Maybe-string-fix
          • Vl-maybe-range
          • Vl-maybe-nettypename
          • Vl-maybe-gatestrength
          • Vl-maybe-gatedelay
          • Vl-maybe-delayoreventcontrol
          • Vl-alias
          • Vl-maybe-packeddimension
          • Vl-fwdtypedef
          • Vl-evatom
          • Vl-packeddimension-p
          • Vl-maybe-udpsymbol
          • Vl-maybe-module
          • Vl-maybe-direction
          • Vl-maybe-datatype
          • Vl-maybe-cstrength
          • Vl-direction-p
          • Vl-arguments
          • Vl-maybe-design
          • Vl-udpline
          • Vl-exprdist
          • Vl-context1
          • Vl-genvar
          • Vl-enumitem
          • Vl-datatype-update-udims
          • Vl-datatype-update-pdims
          • Vl-modelement
          • Vl-udpedge
          • Vl-delaycontrol
          • Vl-context
          • Vl-sort-blockitems
          • Vl-distweighttype-p
          • Vl-ctxelement->loc
          • Vl-blockitem
          • Vl-vardecllist
          • Vl-module->ifports
          • Vl-modelement->loc
          • Vl-gatetype-p
          • Vl-ctxelement
          • Vl-coretypename-p
          • Vl-packeddimensionlist
          • Vl-modelementlist->genelements
          • Vl-timeunit-p
          • Vl-paramdecllist
          • Vl-lifetime-p
          • Vl-genelement->loc
          • Vl-datatype->udims
          • Vl-datatype->pdims
          • Vl-repetitiontype-p
          • Vl-port->name
          • Vl-nettypename-p
          • Vl-importlist
          • Vl-delayoreventcontrol
          • Vl-cstrength-p
          • Statements
          • Vl-udpentry-p
          • Vl-port->loc
          • Vl-packeddimension-fix
          • Vl-portdecllist
          • Vl-enumbasekind-fix
          • Vl-arguments->args
          • Vl-taskdecllist
          • Vl-portlist
          • Vl-importpart-p
          • Vl-importpart-fix
          • Vl-fundecllist
          • Vl-blockstmt-p
          • Vl-assignlist
          • Vl-alwaystype-p
          • Vl-typedeflist
          • Vl-syntaxversion-p
          • Vl-randomqualifier-p
          • Vl-modinstlist
          • Vl-gateinstlist
          • Vl-blockitemlist
          • Vl-udptable
          • Vl-udplist
          • Vl-udpentrylist
          • Vl-programlist
          • Vl-paramvaluelist
          • Vl-packagelist
          • Vl-namedparamvaluelist
          • Vl-namedarglist
          • Vl-modulelist
          • Vl-modportlist
          • Vl-modport-portlist
          • Vl-interfacelist
          • Vl-initiallist
          • Vl-genvarlist
          • Vl-fwdtypedeflist
          • Vl-evatomlist
          • Vl-enumitemlist
          • Vl-distlist
          • Vl-configlist
          • Vl-alwayslist
          • Vl-aliaslist
          • Vl-regularportlist
          • Vl-rangelist-list
          • Vl-rangelist
          • Vl-paramdecllist-list
          • Vl-modelementlist
          • Vl-maybe-range-list
          • Vl-interfaceportlist
          • Vl-argumentlist
          • Data-types
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Vwsim
      • Fgl
      • Vl
      • 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.
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->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->modinsts
Get the modinsts field from a vl-module.
Vl-module->loaditems
Get the loaditems field from a vl-module.
Vl-module->generates
Get the generates 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->origname
Get the origname 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->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->minloc
Get the minloc 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.