• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
      • Vwsim
      • Fgl
      • Vl
        • Syntax
          • Vl-module
          • Vl-vardecl
          • Vl-fundecl
          • Vl-interface
          • Vl-design
          • Vl-assign
          • Vl-modinst
            • Vl-modinst-p
            • Vl-modinst-fix
            • Make-vl-modinst
            • Vl-modinst-equiv
            • Change-vl-modinst
            • Vl-modinst->paramargs
            • Vl-modinst->str
            • Vl-modinst->range
            • Vl-modinst->portargs
            • Vl-modinst->modname
            • Vl-modinst->instname
            • Vl-modinst->delay
            • Vl-modinst->loc
            • Vl-modinst->atts
          • 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-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->paramargs
Get the paramargs field from a vl-modinst.
Vl-modinst->str
Get the str field from a vl-modinst.
Vl-modinst->range
Get the range field from a vl-modinst.
Vl-modinst->portargs
Get the portargs field from a vl-modinst.
Vl-modinst->modname
Get the modname 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->loc
Get the loc field from a vl-modinst.
Vl-modinst->atts
Get the atts field from a vl-modinst.