Basic constructor macro for module structures.
(make-module [:wires <wires>] [:insts <insts>] [:assigns <assigns>] [:fixups <fixups>] [:constraints <constraints>] [:aliaspairs <aliaspairs>])
This is the usual way to construct module structures. It simply conses together a structure with the specified fields.
This macro generates a new module structure from scratch. See also change-module, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-module (&rest args) (std::make-aggregate 'module args '((:wires) (:insts) (:assigns) (:fixups) (:constraints) (:aliaspairs)) 'make-module nil))
Function:
(defun module (wires insts assigns fixups constraints aliaspairs) (declare (xargs :guard (and (wirelist-p wires) (modinstlist-p insts) (assigns-p assigns) (assigns-p fixups) (constraintlist-p constraints) (lhspairs-p aliaspairs)))) (declare (xargs :guard t)) (let ((__function__ 'module)) (declare (ignorable __function__)) (b* ((wires (mbe :logic (wirelist-fix wires) :exec wires)) (insts (mbe :logic (modinstlist-fix insts) :exec insts)) (assigns (mbe :logic (assigns-fix assigns) :exec assigns)) (fixups (mbe :logic (assigns-fix fixups) :exec fixups)) (constraints (mbe :logic (constraintlist-fix constraints) :exec constraints)) (aliaspairs (mbe :logic (lhspairs-fix aliaspairs) :exec aliaspairs))) (list (cons 'wires wires) (cons 'insts insts) (cons 'assigns assigns) (cons 'fixups fixups) (cons 'constraints constraints) (cons 'aliaspairs aliaspairs)))))