Verification friendly models for SAT-based formal verification are
generated from a given high-level design wherein during construction the
following guidelines are enforced: 1) No re-use of functional units and
registers; 2) Minimize the use of muxes and sharing; 3) Reduce the number
of control steps; 4) Avoid pipelines; 5) Chose functional units from
"verification friendly" library; 6) Re-use operations; 7) Perform
property-preserving slicing; 8) Support "assume" and "assert" in the
language specification; and 8) Use external memory modules instead of
register arrays.