Turn a VL design into an SVEX hierarchical design.
(vl-design->sv-design topmod x config) → (mv err design good bad)
Function:
(defun vl-design->sv-design (topmod x config) (declare (xargs :guard (and (stringp topmod) (vl-design-p x) (vl-simpconfig-p config)))) (let ((__function__ 'vl-design->sv-design)) (declare (ignorable __function__)) (b* (((mv err modalist good bad) (vl-to-sv-main (list topmod) x config)) (design (sv::make-design :modalist modalist :top topmod))) (mv err design good bad))))
Theorem:
(defthm design-p-of-vl-design->sv-design.design (b* (((mv ?err ?design ?good ?bad) (vl-design->sv-design topmod x config))) (sv::design-p design)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-p-of-vl-design->sv-design.good (b* (((mv ?err ?design ?good ?bad) (vl-design->sv-design topmod x config))) (vl-design-p good)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-p-of-vl-design->sv-design.bad (b* (((mv ?err ?design ?good ?bad) (vl-design->sv-design topmod x config))) (vl-design-p bad)) :rule-classes :rewrite)
Theorem:
(defthm modalist-addr-p-of-vl-design->sv-design (b* (((mv ?err ?design ?good ?bad) (vl-design->sv-design topmod x config))) (sv::svarlist-addr-p (sv::modalist-vars (sv::design->modalist design)))))