Basic constructor macro for vl-module structures.
(make-vl-module [:name <name>] [:minloc <minloc>] [:maxloc <maxloc>] [:origname <origname>] [:ports <ports>] [:portdecls <portdecls>] [:vardecls <vardecls>] [:modinsts <modinsts>] [:assigns <assigns>] [:gateinsts <gateinsts>] [:paramdecls <paramdecls>] [:imports <imports>] [:atts <atts>] [:warnings <warnings>] [:comments <comments>] [:timeunit <timeunit>] [:timeprecision <timeprecision>] [:alwayses <alwayses>] [:genvars <genvars>] [:generates <generates>] [:fundecls <fundecls>] [:taskdecls <taskdecls>] [:typedefs <typedefs>] [:initials <initials>] [:finals <finals>] [:aliases <aliases>] [:assertions <assertions>] [:cassertions <cassertions>] [:properties <properties>] [:sequences <sequences>] [:clkdecls <clkdecls>] [:gclkdecls <gclkdecls>] [:defaultdisables <defaultdisables>] [:dpiimports <dpiimports>] [:dpiexports <dpiexports>] [:binds <binds>] [:classes <classes>] [:covergroups <covergroups>] [:elabtasks <elabtasks>] [:parse-temps <parse-temps>] [:params <params>])
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.
This is an ordinary
Macro:
(defmacro make-vl-module (&rest args) (std::make-aggregate 'vl-module args '((:name) (:minloc) (:maxloc) (:origname) (:ports) (:portdecls) (:vardecls) (:modinsts) (:assigns) (:gateinsts) (:paramdecls) (:imports) (:atts) (:warnings) (:comments) (:timeunit) (:timeprecision) (:alwayses) (:genvars) (:generates) (:fundecls) (:taskdecls) (:typedefs) (:initials) (:finals) (:aliases) (:assertions) (:cassertions) (:properties) (:sequences) (:clkdecls) (:gclkdecls) (:defaultdisables) (:dpiimports) (:dpiexports) (:binds) (:classes) (:covergroups) (:elabtasks) (:parse-temps) (:params)) 'make-vl-module nil))
Function:
(defun vl-module (name minloc maxloc origname ports portdecls vardecls modinsts assigns gateinsts paramdecls imports atts warnings comments timeunit timeprecision alwayses genvars generates fundecls taskdecls typedefs initials finals aliases assertions cassertions properties sequences clkdecls gclkdecls defaultdisables dpiimports dpiexports binds classes covergroups elabtasks parse-temps params) (declare (xargs :guard (and (stringp name) (vl-location-p minloc) (vl-location-p maxloc) (stringp origname) (vl-portlist-p ports) (vl-portdecllist-p portdecls) (vl-vardecllist-p vardecls) (vl-modinstlist-p modinsts) (vl-assignlist-p assigns) (vl-gateinstlist-p gateinsts) (vl-paramdecllist-p paramdecls) (vl-importlist-p imports) (vl-atts-p atts) (vl-warninglist-p warnings) (vl-commentmap-p comments) (vl-maybe-timeunitdecl-p timeunit) (vl-maybe-timeprecisiondecl-p timeprecision) (vl-alwayslist-p alwayses) (vl-genvarlist-p genvars) (vl-genelementlist-p generates) (vl-fundecllist-p fundecls) (vl-taskdecllist-p taskdecls) (vl-typedeflist-p typedefs) (vl-initiallist-p initials) (vl-finallist-p finals) (vl-aliaslist-p aliases) (vl-assertionlist-p assertions) (vl-cassertionlist-p cassertions) (vl-propertylist-p properties) (vl-sequencelist-p sequences) (vl-clkdecllist-p clkdecls) (vl-gclkdecllist-p gclkdecls) (vl-defaultdisablelist-p defaultdisables) (vl-dpiimportlist-p dpiimports) (vl-dpiexportlist-p dpiexports) (vl-bindlist-p binds) (vl-classlist-p classes) (vl-covergrouplist-p covergroups) (vl-elabtasklist-p elabtasks) (vl-maybe-parse-temps-p parse-temps)))) (declare (xargs :guard t)) (let ((__function__ 'vl-module)) (declare (ignorable __function__)) (b* ((name (mbe :logic (str-fix name) :exec name)) (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)) (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)) (modinsts (mbe :logic (vl-modinstlist-fix modinsts) :exec modinsts)) (assigns (mbe :logic (vl-assignlist-fix assigns) :exec assigns)) (gateinsts (mbe :logic (vl-gateinstlist-fix gateinsts) :exec gateinsts)) (paramdecls (mbe :logic (vl-paramdecllist-fix paramdecls) :exec paramdecls)) (imports (mbe :logic (vl-importlist-fix imports) :exec imports)) (atts (mbe :logic (vl-atts-fix atts) :exec atts)) (warnings (mbe :logic (vl-warninglist-fix warnings) :exec warnings)) (comments (mbe :logic (vl-commentmap-fix comments) :exec comments)) (timeunit (mbe :logic (vl-maybe-timeunitdecl-fix timeunit) :exec timeunit)) (timeprecision (mbe :logic (vl-maybe-timeprecisiondecl-fix timeprecision) :exec timeprecision)) (alwayses (mbe :logic (vl-alwayslist-fix alwayses) :exec alwayses)) (genvars (mbe :logic (vl-genvarlist-fix genvars) :exec genvars)) (generates (mbe :logic (vl-genelementlist-fix generates) :exec generates)) (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)) (initials (mbe :logic (vl-initiallist-fix initials) :exec initials)) (finals (mbe :logic (vl-finallist-fix finals) :exec finals)) (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)) (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)) (dpiimports (mbe :logic (vl-dpiimportlist-fix dpiimports) :exec dpiimports)) (dpiexports (mbe :logic (vl-dpiexportlist-fix dpiexports) :exec dpiexports)) (binds (mbe :logic (vl-bindlist-fix binds) :exec binds)) (classes (mbe :logic (vl-classlist-fix classes) :exec classes)) (covergroups (mbe :logic (vl-covergrouplist-fix covergroups) :exec covergroups)) (elabtasks (mbe :logic (vl-elabtasklist-fix elabtasks) :exec elabtasks)) (parse-temps (mbe :logic (vl-maybe-parse-temps-fix parse-temps) :exec parse-temps))) (cons :vl-module (cons (cons (cons (cons (cons name minloc) (cons maxloc (cons origname ports))) (cons (cons portdecls vardecls) (cons modinsts (cons assigns gateinsts)))) (cons (cons (cons paramdecls imports) (cons atts (cons warnings comments))) (cons (cons timeunit timeprecision) (cons alwayses (cons genvars generates))))) (cons (cons (cons (cons fundecls taskdecls) (cons typedefs (cons initials finals))) (cons (cons aliases assertions) (cons cassertions (cons properties sequences)))) (cons (cons (cons clkdecls gclkdecls) (cons defaultdisables (cons dpiimports dpiexports))) (cons (cons binds (cons classes covergroups)) (cons elabtasks (cons parse-temps params))))))))))