• 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
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
        • Mlib
          • Scopestack
          • Filtering-by-name
          • Vl-namefactory
          • Substitution
          • Allexprs
          • Hid-tools
          • Vl-consteval
          • Range-tools
          • Lvalexprs
          • Hierarchy
          • Finding-by-name
          • Expr-tools
          • Expr-slicing
          • Stripping-functions
          • Stmt-tools
          • Modnamespace
          • Vl-parse-expr-from-str
          • Welltyped
          • Reordering-by-name
          • Flat-warnings
          • Genblob
            • Vl-genblob
              • Vl-genblob-count
              • Vl-genblob-p
              • Vl-genblob-fix
              • Make-vl-genblob
                • Change-vl-genblob
                • Vl-genblob-equiv
                • Vl-genblob->fwdtypedefs
                • Vl-genblob->vardecls
                • Vl-genblob->typedefs
                • Vl-genblob->taskdecls
                • Vl-genblob->portdecls
                • Vl-genblob->paramdecls
                • Vl-genblob->modports
                • Vl-genblob->modinsts
                • Vl-genblob->initials
                • Vl-genblob->generates
                • Vl-genblob->gateinsts
                • Vl-genblob->fundecls
                • Vl-genblob->ports
                • Vl-genblob->name
                • Vl-genblob->imports
                • Vl-genblob->ifports
                • Vl-genblob->genvars
                • Vl-genblob->assigns
                • Vl-genblob->alwayses
                • Vl-genblob->aliases
              • Vl-genblob->module
              • Vl-genblob->elems
              • Vl-module->genblob
              • Vl-sort-genelements
            • Expr-building
            • Datatype-tools
            • Syscalls
            • Relocate
            • Expr-cleaning
            • Namemangle
            • Caremask
            • Port-tools
            • Lvalues
          • Server
          • Kit
          • Printer
          • Esim-vl
          • Well-formedness
        • Sv
        • Fgl
        • Vwsim
        • Vl
        • X86isa
        • Svl
        • Rtl
      • Software-verification
      • Math
      • Testing-utilities
    • Vl-genblob

    Make-vl-genblob

    Basic constructor macro for vl-genblob structures.

    Syntax
    (make-vl-genblob [:portdecls <portdecls>] 
                     [:assigns <assigns>] 
                     [:aliases <aliases>] 
                     [:vardecls <vardecls>] 
                     [:paramdecls <paramdecls>] 
                     [:fundecls <fundecls>] 
                     [:taskdecls <taskdecls>] 
                     [:modinsts <modinsts>] 
                     [:gateinsts <gateinsts>] 
                     [:alwayses <alwayses>] 
                     [:initials <initials>] 
                     [:typedefs <typedefs>] 
                     [:imports <imports>] 
                     [:fwdtypedefs <fwdtypedefs>] 
                     [:modports <modports>] 
                     [:genvars <genvars>] 
                     [:generates <generates>] 
                     [:ports <ports>] 
                     [:name <name>]) 
    

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

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

    Definition

    This is an ordinary make- macro introduced by defprod.

    Macro: make-vl-genblob

    (defmacro make-vl-genblob (&rest args)
      (std::make-aggregate 'vl-genblob
                           args
                           '((:portdecls)
                             (:assigns)
                             (:aliases)
                             (:vardecls)
                             (:paramdecls)
                             (:fundecls)
                             (:taskdecls)
                             (:modinsts)
                             (:gateinsts)
                             (:alwayses)
                             (:initials)
                             (:typedefs)
                             (:imports)
                             (:fwdtypedefs)
                             (:modports)
                             (:genvars)
                             (:generates)
                             (:ports)
                             (:name))
                           'make-vl-genblob
                           nil))

    Function: vl-genblob

    (defun vl-genblob (portdecls assigns
                                 aliases vardecls paramdecls fundecls
                                 taskdecls modinsts gateinsts alwayses
                                 initials typedefs imports fwdtypedefs
                                 modports genvars generates ports name)
     (declare (xargs :guard (and (vl-portdecllist-p portdecls)
                                 (vl-assignlist-p assigns)
                                 (vl-aliaslist-p aliases)
                                 (vl-vardecllist-p vardecls)
                                 (vl-paramdecllist-p paramdecls)
                                 (vl-fundecllist-p fundecls)
                                 (vl-taskdecllist-p taskdecls)
                                 (vl-modinstlist-p modinsts)
                                 (vl-gateinstlist-p gateinsts)
                                 (vl-alwayslist-p alwayses)
                                 (vl-initiallist-p initials)
                                 (vl-typedeflist-p typedefs)
                                 (vl-importlist-p imports)
                                 (vl-fwdtypedeflist-p fwdtypedefs)
                                 (vl-modportlist-p modports)
                                 (vl-genvarlist-p genvars)
                                 (vl-genelementlist-p generates)
                                 (vl-portlist-p ports)
                                 (maybe-stringp name))))
     (declare (xargs :guard t))
     (let ((__function__ 'vl-genblob))
      (declare (ignorable __function__))
      (b* ((portdecls (mbe :logic (vl-portdecllist-fix portdecls)
                           :exec portdecls))
           (assigns (mbe :logic (vl-assignlist-fix assigns)
                         :exec assigns))
           (aliases (mbe :logic (vl-aliaslist-fix aliases)
                         :exec aliases))
           (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))
           (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))
           (typedefs (mbe :logic (vl-typedeflist-fix typedefs)
                          :exec typedefs))
           (imports (mbe :logic (vl-importlist-fix imports)
                         :exec imports))
           (fwdtypedefs (mbe :logic (vl-fwdtypedeflist-fix fwdtypedefs)
                             :exec fwdtypedefs))
           (modports (mbe :logic (vl-modportlist-fix modports)
                          :exec modports))
           (genvars (mbe :logic (vl-genvarlist-fix genvars)
                         :exec genvars))
           (generates (mbe :logic (vl-genelementlist-fix generates)
                           :exec generates))
           (ports (mbe :logic (vl-portlist-fix ports)
                       :exec ports))
           (name (mbe :logic (maybe-string-fix name)
                      :exec name)))
       (cons
        :vl-genblob
        (std::prod-cons
         (std::prod-cons
             (std::prod-cons (std::prod-cons portdecls assigns)
                             (std::prod-cons aliases vardecls))
             (std::prod-cons
                  (std::prod-cons paramdecls fundecls)
                  (std::prod-cons taskdecls
                                  (std::prod-cons modinsts gateinsts))))
         (std::prod-cons
             (std::prod-cons
                  (std::prod-cons alwayses initials)
                  (std::prod-cons typedefs
                                  (std::prod-cons imports fwdtypedefs)))
             (std::prod-cons
                  (std::prod-cons modports genvars)
                  (std::prod-cons generates
                                  (std::prod-cons ports name)))))))))