• Top
    • Documentation
    • Books
    • 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-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-config
          • Vl-always
          • Vl-datatype-update-dims
          • Vl-import
          • Vl-enumbasetype
          • Vl-repeateventcontrol
          • Vl-paramargs
          • Vl-initial
          • Vl-eventcontrol
          • Vl-udpsymbol-p
          • Vl-maybe-range
          • Vl-maybe-nettypename
          • Vl-maybe-gatestrength
          • Vl-maybe-gatedelay
          • Vl-maybe-delayoreventcontrol
          • Vl-alias
          • Maybe-string-fix
          • 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-arguments-p
              • Vl-plainarg
                • Vl-plainarg-p
                • Vl-plainarg-fix
                • Vl-plainarg-equiv
                • Make-vl-plainarg
                • Vl-plainarg->portname
                • Vl-plainarg->expr
                • Vl-plainarg->dir
                • Change-vl-plainarg
                • Vl-plainarg->atts
              • Vl-arguments-lvaluecheck
              • Vl-plainarglist
              • Vl-plainarglistlist
              • Vl-jp-arguments
            • Vl-arguments-fix
            • Vl-arguments-case
            • Vl-arguments-equiv
            • Vl-arguments-named
            • Vl-arguments-plain
            • Vl-arguments-kind
          • 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-ctxelement
          • Vl-coretypename-p
          • Vl-packeddimensionlist
          • Vl-modelementlist->genelements
          • Vl-gatetype-p
          • Vl-paramdecllist
          • Vl-lifetime-p
          • Vl-datatype->udims
          • Vl-datatype->pdims
          • Vl-timeunit-p
          • Vl-repetitiontype-p
          • Vl-port->name
          • Vl-importlist
          • Vl-genelement->loc
          • Vl-delayoreventcontrol
          • Vl-cstrength-p
          • Statements
          • Vl-udpentry-p
          • Vl-packeddimension-fix
          • Vl-nettypename-p
          • Vl-portdecllist
          • Vl-port->loc
          • 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
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Vl-arguments-p

Vl-plainarg

Representation of a single argument in a plain argument list.

This is a product type introduced by defprod.

Fields
expr — vl-maybe-expr
Expression being connected to the port. In programming languages parlance, this is the actual. Note that this may be nil because Verilog allows expressions to be "blank", in which case they represent an unconnected wire.
portname — maybe-string
Not part of the Verilog syntax. This may indicate the name of the port (i.e., the formal) that this expression is connected to; see below.
dir — vl-maybe-direction
Not part of the Verilog syntax. This may indicate the direction of this port; see below.
atts — vl-atts
Any attributes associated with this argument.

There are two kinds of argument lists for module instantiations, which we call plain and named arguments.

modname instname ( 1, 2, 3 );             <-- "plain" arguments
modname instname ( .a(1), .b(2), .c(3) ); <-- "named" arguments

A vl-plainarg-p represents a single argument in a plain argument list.

The dir is initially nil but may get filled in by the argresolve transformation to indicate whether this port for this argument is an input, output, or inout for the module or gate being instantiated. After argresolve, all well-formed gate instances will have their direction information computed and so you may rely upon the dir field for gate instances. HOWEVER, for module instances the direction of a port may not be apparent; see vl-port-direction for details. So even after argresolve some arguments to module instances may not have a dir annotation, and you should generally not rely on the dir field for module instances.

The portname is similar. The argresolve transformation may sometimes be able to fill in the name of the port, but this is meant only as a convenience for error message generation. This field should never be used for anything that is semantically important. No argument to a gate instance will ever have a portname. Also, since not every vl-port-p has a name, some arguments to module instances may also not be given portnames.

Subtopics

Vl-plainarg-p
Recognizer for vl-plainarg structures.
Vl-plainarg-fix
Fixing function for vl-plainarg structures.
Vl-plainarg-equiv
Basic equivalence relation for vl-plainarg structures.
Make-vl-plainarg
Basic constructor macro for vl-plainarg structures.
Vl-plainarg->portname
Get the portname field from a vl-plainarg.
Vl-plainarg->expr
Get the expr field from a vl-plainarg.
Vl-plainarg->dir
Get the dir field from a vl-plainarg.
Change-vl-plainarg
Modifying constructor for vl-plainarg structures.
Vl-plainarg->atts
Get the atts field from a vl-plainarg.