Turn a VL design into an SVEX hierarchical design, with a list of top modules.
(vl-to-sv-main topmods x config &key (allow-bad-topmods 'nil) (post-filter 't)) → (mv err modalist good bad)
Function:
(defun vl-to-sv-main-fn (topmods x config allow-bad-topmods post-filter) (declare (xargs :guard (and (string-listp topmods) (vl-design-p x) (vl-simpconfig-p config) (booleanp allow-bad-topmods) (booleanp post-filter)))) (let ((__function__ 'vl-to-sv-main)) (declare (ignorable __function__)) (vl-to-sv x (change-vl-simpconfig config :pre-elab-topmods topmods :post-elab-topmods topmods :post-elab-filter post-filter :allow-bad-topmods allow-bad-topmods))))
Theorem:
(defthm modalist-p-of-vl-to-sv-main.modalist (b* (((mv ?err ?modalist ?good ?bad) (vl-to-sv-main-fn topmods x config allow-bad-topmods post-filter))) (sv::modalist-p modalist)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-p-of-vl-to-sv-main.good (b* (((mv ?err ?modalist ?good ?bad) (vl-to-sv-main-fn topmods x config allow-bad-topmods post-filter))) (vl-design-p good)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-p-of-vl-to-sv-main.bad (b* (((mv ?err ?modalist ?good ?bad) (vl-to-sv-main-fn topmods x config allow-bad-topmods post-filter))) (vl-design-p bad)) :rule-classes :rewrite)
Theorem:
(defthm modalist-addr-p-of-vl-to-sv-main (b* (((mv ?err ?modalist ?good ?bad) (vl-to-sv-main-fn topmods x config allow-bad-topmods post-filter))) (sv::svarlist-addr-p (sv::modalist-vars modalist))))