Basic constructor macro for vl-genblob structures.
(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.
This is an ordinary
Macro:
(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:
(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)))))))))