Basic constructor macro for vl-interface structures.
(make-vl-interface [:name <name>] [:ports <ports>] [:portdecls <portdecls>] [:paramdecls <paramdecls>] [:vardecls <vardecls>] [:modports <modports>] [:generates <generates>] [:imports <imports>] [:warnings <warnings>] [:minloc <minloc>] [:maxloc <maxloc>] [:atts <atts>] [:origname <origname>] [:comments <comments>] [:loaditems <loaditems>])
This is the usual way to construct vl-interface structures. It simply conses together a structure with the specified fields.
This macro generates a new vl-interface structure from scratch. See also change-vl-interface, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-vl-interface (&rest args) (std::make-aggregate 'vl-interface args '((:name) (:ports) (:portdecls) (:paramdecls) (:vardecls) (:modports) (:generates) (:imports) (:warnings) (:minloc) (:maxloc) (:atts) (:origname) (:comments) (:loaditems)) 'make-vl-interface nil))
Function:
(defun vl-interface (name ports portdecls paramdecls vardecls modports generates imports warnings minloc maxloc atts origname comments loaditems) (declare (xargs :guard (and (stringp name) (vl-portlist-p ports) (vl-portdecllist-p portdecls) (vl-paramdecllist-p paramdecls) (vl-vardecllist-p vardecls) (vl-modportlist-p modports) (vl-genelementlist-p generates) (vl-importlist-p imports) (vl-warninglist-p warnings) (vl-location-p minloc) (vl-location-p maxloc) (vl-atts-p atts) (stringp origname) (vl-commentmap-p comments) (vl-genelementlist-p loaditems)))) (declare (xargs :guard t)) (let ((__function__ 'vl-interface)) (declare (ignorable __function__)) (b* ((name (mbe :logic (str-fix name) :exec name)) (ports (mbe :logic (vl-portlist-fix ports) :exec ports)) (portdecls (mbe :logic (vl-portdecllist-fix portdecls) :exec portdecls)) (paramdecls (mbe :logic (vl-paramdecllist-fix paramdecls) :exec paramdecls)) (vardecls (mbe :logic (vl-vardecllist-fix vardecls) :exec vardecls)) (modports (mbe :logic (vl-modportlist-fix modports) :exec modports)) (generates (mbe :logic (vl-genelementlist-fix generates) :exec generates)) (imports (mbe :logic (vl-importlist-fix imports) :exec imports)) (warnings (mbe :logic (vl-warninglist-fix warnings) :exec warnings)) (minloc (mbe :logic (vl-location-fix minloc) :exec minloc)) (maxloc (mbe :logic (vl-location-fix maxloc) :exec maxloc)) (atts (mbe :logic (vl-atts-fix atts) :exec atts)) (origname (mbe :logic (str-fix origname) :exec origname)) (comments (mbe :logic (vl-commentmap-fix comments) :exec comments)) (loaditems (mbe :logic (vl-genelementlist-fix loaditems) :exec loaditems))) (cons :vl-interface (std::prod-cons (std::prod-cons (std::prod-cons name (std::prod-cons ports portdecls)) (std::prod-cons (std::prod-cons paramdecls vardecls) (std::prod-cons modports generates))) (std::prod-cons (std::prod-cons (std::prod-cons imports warnings) (std::prod-cons minloc maxloc)) (std::prod-cons (std::prod-cons atts origname) (std::prod-cons comments loaditems))))))))