Using Transformations and Verification in Circuit Design
We show how machine-checked verification can support an approach to circuit design based on transformations. This approach starts with a conceptually simple (but inefficient) initial design and uses a combination of ad hoc and algorithmic transformations to produce a design that is more efficient (but more complex).
We present an example in which we start with a simplified CPU design and derive an efficient pipelined form, including circuitry for reverting the effects of partially executed instructions when a successful branch is detected late in the pipeline. The algorithmic stage of our derivation applies a transformation, retiming, that has been proven to preserve functional behavior in the general case. The ad hoc stage requires special justification, which we supply in the form of a machine-checked formal verification.
Unable to display preview. Download preview PDF.
- David Detlefs and Randy Forgaard, “A procedure for automatically proving the termination of a set of rewrite rules,” Proceedings of the First International Conference on Rewriting Techniques and Applications, Dijon, France, Lecture Notes in Computer Science 202, Springer-Verlag, May 1985, pp. 255–270.Google Scholar
- Randy Forgaard and John V. Guttag, “REVE: A term rewriting system generator with a failure-resistant Knuth-Bendix,” Proceedings of a Workshop on Term Rewriting (ed. by D. Kapur and D. Musser ), April 1984, pp. 5–31.Google Scholar
- Stephen J. Garland and John V. Guttag, “A guide to LP, the Larch Prover,” in preparation.Google Scholar
- Stephen J. Garland, John V. Guttag, and Jurgen Staunstrup, “Verification of VLSI circuits using LP,” Proceedings of the IFIP WG.10.2 Conference on the Fusion of Hardware Design and Verification, North Holland, 1988, pp. 329–345.Google Scholar
- Pierre Lescanne, “REVE: a rewrite rule laboratory,” Proceedings of the 8th International Conference on Automated Deduction,Oxford, England, Lecture Notes in Computer Science 230, Springer-Verlag, July 1986, pp. 695696.Google Scholar
- Charles E. Leiserson and James B. Saxe, “Optimizing synchronous systems,” Journal of VLSI and Computer Systems, Vol. 1, No. 1, Spring 1983, pp. 41–67.Google Scholar
- John Rushby and Friedrich von Henke, “Formal verification of the interactive convergence clock synchronization algorithm using EHDM,” SRI International report SRI-CSL-89–3, February, 1989.Google Scholar
- Mary Sheeran, “Retiming and slowdown in Ruby,” in George J. Milne, ed., The Fusion of Hardware Design and Verification, North-Holland, 1988, pp. 289–308.Google Scholar
- Jurgen Staunstrup and Mark Greenstreet, “Synchronized transitions,” in Jurgen Staunstrup, ed., Formal Methods for VLSI Design, NorthHolland/Elsevier, 1990, pp. 71–129.Google Scholar
- Jurgen Staunstrup and Robin Sharp, editors, Proceedings of the Second IFIP WG10.2/WG10.5 Workshop on Designing Correct Circuits,NorthHolland/Elsevier, 1992.Google Scholar