Basic constructor macro for vl-interface structures.
(make-vl-interface [:name <name>] [:imports <imports>] [:ports <ports>] [:portdecls <portdecls>] [:modports <modports>] [:vardecls <vardecls>] [:paramdecls <paramdecls>] [:fundecls <fundecls>] [:taskdecls <taskdecls>] [:typedefs <typedefs>] [:dpiimports <dpiimports>] [:dpiexports <dpiexports>] [:properties <properties>] [:sequences <sequences>] [:clkdecls <clkdecls>] [:gclkdecls <gclkdecls>] [:defaultdisables <defaultdisables>] [:binds <binds>] [:classes <classes>] [:elabtasks <elabtasks>] [:modinsts <modinsts>] [:assigns <assigns>] [:aliases <aliases>] [:assertions <assertions>] [:cassertions <cassertions>] [:alwayses <alwayses>] [:initials <initials>] [:finals <finals>] [:generates <generates>] [:genvars <genvars>] [:warnings <warnings>] [:minloc <minloc>] [:maxloc <maxloc>] [:atts <atts>] [:origname <origname>] [:comments <comments>] [:parse-temps <parse-temps>])
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) (:imports) (:ports) (:portdecls) (:modports) (:vardecls) (:paramdecls) (:fundecls) (:taskdecls) (:typedefs) (:dpiimports) (:dpiexports) (:properties) (:sequences) (:clkdecls) (:gclkdecls) (:defaultdisables) (:binds) (:classes) (:elabtasks) (:modinsts) (:assigns) (:aliases) (:assertions) (:cassertions) (:alwayses) (:initials) (:finals) (:generates) (:genvars) (:warnings) (:minloc) (:maxloc) (:atts) (:origname) (:comments) (:parse-temps)) 'make-vl-interface nil))
Function:
(defun vl-interface (name imports ports portdecls modports vardecls paramdecls fundecls taskdecls typedefs dpiimports dpiexports properties sequences clkdecls gclkdecls defaultdisables binds classes elabtasks modinsts assigns aliases assertions cassertions alwayses initials finals generates genvars warnings minloc maxloc atts origname comments parse-temps) (declare (xargs :guard (and (stringp name) (vl-importlist-p imports) (vl-portlist-p ports) (vl-portdecllist-p portdecls) (vl-modportlist-p modports) (vl-vardecllist-p vardecls) (vl-paramdecllist-p paramdecls) (vl-fundecllist-p fundecls) (vl-taskdecllist-p taskdecls) (vl-typedeflist-p typedefs) (vl-dpiimportlist-p dpiimports) (vl-dpiexportlist-p dpiexports) (vl-propertylist-p properties) (vl-sequencelist-p sequences) (vl-clkdecllist-p clkdecls) (vl-gclkdecllist-p gclkdecls) (vl-defaultdisablelist-p defaultdisables) (vl-bindlist-p binds) (vl-classlist-p classes) (vl-elabtasklist-p elabtasks) (vl-modinstlist-p modinsts) (vl-assignlist-p assigns) (vl-aliaslist-p aliases) (vl-assertionlist-p assertions) (vl-cassertionlist-p cassertions) (vl-alwayslist-p alwayses) (vl-initiallist-p initials) (vl-finallist-p finals) (vl-genelementlist-p generates) (vl-genvarlist-p genvars) (vl-warninglist-p warnings) (vl-location-p minloc) (vl-location-p maxloc) (vl-atts-p atts) (stringp origname) (vl-commentmap-p comments) (vl-maybe-parse-temps-p parse-temps)))) (declare (xargs :guard t)) (let ((__function__ 'vl-interface)) (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)) (modports (mbe :logic (vl-modportlist-fix modports) :exec modports)) (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)) (typedefs (mbe :logic (vl-typedeflist-fix typedefs) :exec typedefs)) (dpiimports (mbe :logic (vl-dpiimportlist-fix dpiimports) :exec dpiimports)) (dpiexports (mbe :logic (vl-dpiexportlist-fix dpiexports) :exec dpiexports)) (properties (mbe :logic (vl-propertylist-fix properties) :exec properties)) (sequences (mbe :logic (vl-sequencelist-fix sequences) :exec sequences)) (clkdecls (mbe :logic (vl-clkdecllist-fix clkdecls) :exec clkdecls)) (gclkdecls (mbe :logic (vl-gclkdecllist-fix gclkdecls) :exec gclkdecls)) (defaultdisables (mbe :logic (vl-defaultdisablelist-fix defaultdisables) :exec defaultdisables)) (binds (mbe :logic (vl-bindlist-fix binds) :exec binds)) (classes (mbe :logic (vl-classlist-fix classes) :exec classes)) (elabtasks (mbe :logic (vl-elabtasklist-fix elabtasks) :exec elabtasks)) (modinsts (mbe :logic (vl-modinstlist-fix modinsts) :exec modinsts)) (assigns (mbe :logic (vl-assignlist-fix assigns) :exec assigns)) (aliases (mbe :logic (vl-aliaslist-fix aliases) :exec aliases)) (assertions (mbe :logic (vl-assertionlist-fix assertions) :exec assertions)) (cassertions (mbe :logic (vl-cassertionlist-fix cassertions) :exec cassertions)) (alwayses (mbe :logic (vl-alwayslist-fix alwayses) :exec alwayses)) (initials (mbe :logic (vl-initiallist-fix initials) :exec initials)) (finals (mbe :logic (vl-finallist-fix finals) :exec finals)) (generates (mbe :logic (vl-genelementlist-fix generates) :exec generates)) (genvars (mbe :logic (vl-genvarlist-fix genvars) :exec genvars)) (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)) (parse-temps (mbe :logic (vl-maybe-parse-temps-fix parse-temps) :exec parse-temps))) (cons :vl-interface (std::prod-cons (std::prod-cons (std::prod-cons (std::prod-cons (std::prod-cons name imports) (std::prod-cons ports portdecls)) (std::prod-cons (std::prod-cons modports vardecls) (std::prod-cons paramdecls (std::prod-cons fundecls taskdecls)))) (std::prod-cons (std::prod-cons (std::prod-cons typedefs dpiimports) (std::prod-cons dpiexports properties)) (std::prod-cons (std::prod-cons sequences clkdecls) (std::prod-cons gclkdecls (std::prod-cons defaultdisables binds))))) (std::prod-cons (std::prod-cons (std::prod-cons (std::prod-cons classes elabtasks) (std::prod-cons modinsts assigns)) (std::prod-cons (std::prod-cons aliases assertions) (std::prod-cons cassertions (std::prod-cons alwayses initials)))) (std::prod-cons (std::prod-cons (std::prod-cons finals generates) (std::prod-cons genvars (std::prod-cons warnings minloc))) (std::prod-cons (std::prod-cons maxloc atts) (std::prod-cons origname (std::prod-cons comments parse-temps))))))))))