Compare two runs of a module using the svtv-chase$ utility.
This sets up and runs svtv-chase$ to compare two runs of the same module. These two runs can either be a single SVTV run with different input environments, or two different SVTVs (though they should both be on the same design, or the results won't make sense). In the latter case the two SVTVs may have different environments or both run the same one. In case one of the SVTVs takes more time to initialize than the other, an offset can be given to align the time steps. See the sample invocations below.
The SVTVs may either be given as SVTV objects or defsvtv$ forms.
Sample invocations:
;; Compare two runs of the same SVTV (svtv-chase$-compare :svtv (my-svtv) :env1 '((a . 10) (b . 1)) :env2 '((a . 9) (b . 1))) ;; Compare two runs of an SVTV given by a defsvtv$ form (svtv-chase$-compare :form (defsvtv$ my-svtv :design *my-design* :steps ...) :env1 '((a . 10) (b . 1)) :env2 '((a . 9) (b . 1))) ;; Compare two SVTVS given by different defsvtv$ forms, on two envs, ;; where time step N in form1 corresponds to time step N-6 in form2 (svtv-chase$-compare :form1 (defsvtv$ my-svtv :design *my-design* :steps ...) :form2 (defsvtv$ my-svtv :design *my-design* :steps ...) :env1 '((a . 10) (b . 1)) :env2 '((a . 9) (b . 1)) :offset -6) ;; Compare an existing SVTV with another SVTV given by a form, both on the same env, ;; and where time step N in (my-svtv) corresponds to time step N+4 in form2 (svtv-chase$-compare :svtv1 (my-svtv) :form2 (defsvtv$ my-svtv :design *my-design* :steps ...) :env '((a . 10) (b . 1)) :offset 4)
Since it is sometimes confusing to determine the correct offset between the two SVTVs, there is an automatic method for making that determination which considers the labels given to the stages, finding the offset that lines up the most labels if there are common labels between the two SVTVs.