• 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-module-p
            • Vl-module-fix
            • Make-vl-module
              • Change-vl-module
              • Vl-module-equiv
              • Vl-module->paramdecls
              • Vl-module->modinsts
              • Vl-module->warnings
              • Vl-module->vardecls
              • Vl-module->taskdecls
              • Vl-module->portdecls
              • Vl-module->name
              • Vl-module->loaditems
              • Vl-module->initials
              • Vl-module->imports
              • Vl-module->genvars
              • Vl-module->generates
              • Vl-module->gateinsts
              • Vl-module->fundecls
              • Vl-module->comments
              • Vl-module->assigns
              • Vl-module->alwayses
              • Vl-module->aliases
              • Vl-module->ports
              • Vl-module->origname
              • Vl-module->minloc
              • Vl-module->maxloc
              • 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-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-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-module

    Make-vl-module

    Basic constructor macro for vl-module structures.

    Syntax
    (make-vl-module [:name <name>] 
                    [:params <params>] 
                    [:imports <imports>] 
                    [:ports <ports>] 
                    [:portdecls <portdecls>] 
                    [:vardecls <vardecls>] 
                    [:paramdecls <paramdecls>] 
                    [:fundecls <fundecls>] 
                    [:taskdecls <taskdecls>] 
                    [:assigns <assigns>] 
                    [:aliases <aliases>] 
                    [:modinsts <modinsts>] 
                    [:gateinsts <gateinsts>] 
                    [:alwayses <alwayses>] 
                    [:initials <initials>] 
                    [:genvars <genvars>] 
                    [:generates <generates>] 
                    [:atts <atts>] 
                    [:minloc <minloc>] 
                    [:maxloc <maxloc>] 
                    [:origname <origname>] 
                    [:warnings <warnings>] 
                    [:comments <comments>] 
                    [:loaditems <loaditems>] 
                    [:esim <esim>]) 
    

    This is the usual way to construct vl-module structures. It simply conses together a structure with the specified fields.

    This macro generates a new vl-module structure from scratch. See also change-vl-module, which can "change" an existing structure, instead.

    Definition

    This is an ordinary make- macro introduced by defprod.

    Macro: make-vl-module

    (defmacro make-vl-module (&rest args)
      (std::make-aggregate 'vl-module
                           args
                           '((:name)
                             (:params)
                             (:imports)
                             (:ports)
                             (:portdecls)
                             (:vardecls)
                             (:paramdecls)
                             (:fundecls)
                             (:taskdecls)
                             (:assigns)
                             (:aliases)
                             (:modinsts)
                             (:gateinsts)
                             (:alwayses)
                             (:initials)
                             (:genvars)
                             (:generates)
                             (:atts)
                             (:minloc)
                             (:maxloc)
                             (:origname)
                             (:warnings)
                             (:comments)
                             (:loaditems)
                             (:esim))
                           'make-vl-module
                           nil))

    Function: vl-module

    (defun vl-module (name params imports ports
                           portdecls vardecls paramdecls fundecls
                           taskdecls assigns aliases modinsts
                           gateinsts alwayses initials genvars
                           generates atts minloc maxloc origname
                           warnings comments loaditems esim)
     (declare (xargs :guard (and (stringp name)
                                 (vl-importlist-p imports)
                                 (vl-portlist-p ports)
                                 (vl-portdecllist-p portdecls)
                                 (vl-vardecllist-p vardecls)
                                 (vl-paramdecllist-p paramdecls)
                                 (vl-fundecllist-p fundecls)
                                 (vl-taskdecllist-p taskdecls)
                                 (vl-assignlist-p assigns)
                                 (vl-aliaslist-p aliases)
                                 (vl-modinstlist-p modinsts)
                                 (vl-gateinstlist-p gateinsts)
                                 (vl-alwayslist-p alwayses)
                                 (vl-initiallist-p initials)
                                 (vl-genvarlist-p genvars)
                                 (vl-genelementlist-p generates)
                                 (vl-atts-p atts)
                                 (vl-location-p minloc)
                                 (vl-location-p maxloc)
                                 (stringp origname)
                                 (vl-warninglist-p warnings)
                                 (vl-commentmap-p comments)
                                 (vl-genelementlist-p loaditems))))
     (declare (xargs :guard t))
     (let ((__function__ 'vl-module))
      (declare (ignorable __function__))
      (b* ((name (mbe :logic (str-fix name) :exec name))
           (imports (mbe :logic (vl-importlist-fix imports)
                         :exec imports))
           (ports (mbe :logic (vl-portlist-fix ports)
                       :exec ports))
           (portdecls (mbe :logic (vl-portdecllist-fix portdecls)
                           :exec portdecls))
           (vardecls (mbe :logic (vl-vardecllist-fix vardecls)
                          :exec vardecls))
           (paramdecls (mbe :logic (vl-paramdecllist-fix paramdecls)
                            :exec paramdecls))
           (fundecls (mbe :logic (vl-fundecllist-fix fundecls)
                          :exec fundecls))
           (taskdecls (mbe :logic (vl-taskdecllist-fix taskdecls)
                           :exec taskdecls))
           (assigns (mbe :logic (vl-assignlist-fix assigns)
                         :exec assigns))
           (aliases (mbe :logic (vl-aliaslist-fix aliases)
                         :exec aliases))
           (modinsts (mbe :logic (vl-modinstlist-fix modinsts)
                          :exec modinsts))
           (gateinsts (mbe :logic (vl-gateinstlist-fix gateinsts)
                           :exec gateinsts))
           (alwayses (mbe :logic (vl-alwayslist-fix alwayses)
                          :exec alwayses))
           (initials (mbe :logic (vl-initiallist-fix initials)
                          :exec initials))
           (genvars (mbe :logic (vl-genvarlist-fix genvars)
                         :exec genvars))
           (generates (mbe :logic (vl-genelementlist-fix generates)
                           :exec generates))
           (atts (mbe :logic (vl-atts-fix atts)
                      :exec atts))
           (minloc (mbe :logic (vl-location-fix minloc)
                        :exec minloc))
           (maxloc (mbe :logic (vl-location-fix maxloc)
                        :exec maxloc))
           (origname (mbe :logic (str-fix origname)
                          :exec origname))
           (warnings (mbe :logic (vl-warninglist-fix warnings)
                          :exec warnings))
           (comments (mbe :logic (vl-commentmap-fix comments)
                          :exec comments))
           (loaditems (mbe :logic (vl-genelementlist-fix loaditems)
                           :exec loaditems)))
       (cons
           :vl-module
           (cons (cons (cons (cons name (cons params imports))
                             (cons ports (cons portdecls vardecls)))
                       (cons (cons paramdecls (cons fundecls taskdecls))
                             (cons assigns (cons aliases modinsts))))
                 (cons (cons (cons gateinsts (cons alwayses initials))
                             (cons genvars (cons generates atts)))
                       (cons (cons minloc (cons maxloc origname))
                             (cons (cons warnings comments)
                                   (cons loaditems esim)))))))))