Abstract
An introduction to a number of fully mechanized methods of formal hardware verification is given. Decision-diagram based procedures for the verification of combinational circuits at the gate- and word-level are surveyed. Fixed-point calculation techniques for equivalence and property verification of sequential machines are studied. The verification of processor architectures at the instruction-set and algorithmic register-transfer level is discussed. A method of formally correct synthesis of pipelined architectures is presented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
M. Abadi and L. Lamport. The existence of refinement mappings. Research report, DEC Systems Research Center, 1988.
C. Barrett, D. Dill, and J. Levitt. Validity checking for combinations of theories with equality. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 187–201. Springer, 1996.
A. Bartsch, H. Eveking, H.-J. Faerber, M. Kelelatchew, J. Pinder, and U. Schellin. LOVERT-a logic verifier of register-transfer level descriptions. In L. Claesen, editor, Proc. IMEC-IFIP Workshop on Applied Formal Methods for Correct VLSI Design, Vol. II, pages 247–256. North-Holland, 1990.
B. Becker and R. Drechsler. How many decomposition types do we need? In Proc. ED&TC’95, pages 438–443, 1995.
A.J. Bernstein. Analysis of programs for parallel processing. IEEE Transactions on Computers, 15:757–763, 1966.
A. Biere, E. Clarke, R. Raimi, and Y. Zhu. Verifying safety properties of a PowerPC™ microprocessor using symbolic model checking without BDD’s. In Proc. CAV’99, pages 60–71, 1999.
E. Börger and S. Mazzanti. A practical method for rigorously controllable hardware design. In Proc. ZUM’97, LNCS 1212, pages 151–187. Springer, 1997.
J. Bormann, J. Lohse, M. Payer, and G. Venzl. Model checking in industrial hardware design. In Proc. DAC’95, pages 298–303, 1995.
D. Borrione, H. Eveking, and L. Pierre. Formal proofs from HDL descriptions. In J. Mermet, editor, Fundamentals and standards in hardware description languages, 249 of NATO ASI series E, pages 155–194. Kluwer, 1993.
K.S. Brace, R.L. Rudell, and R.E. Bryant. Efficient implementation of a BDD package. In Proc. DAC’90, pages 40–45, 1990.
B. Brock, M. Kaufmann, and J.S. Moore. ACL2 theorems about commercial microprocessors. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 275–293. Springer, 1996.
B.C. Brock, W.A. Hunt, and M. Kaufmann. The FM9001 microprocessor proof. Technical report 86, Computational Logic Inc., 1994.
R.E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transaction on Computers, 35:677–691, 1986.
R.E. Bryant. Symbolic boolean manipulation with ordered binary decision diagrams. ACM Computing Surveys, 24:293–318, 1992.
R.E. Bryant, D.L. Beatty, and C.J.H. Seger. Formal hardware verification by symbolic ternary trajectory evaluation. In Proc. DAC’91, pages 397–402, 1991.
R.E. Bryant and Y.A. Chen. Verification of arithmetic functions with binary moment diagrams. In Proc. DAC’95, pages 535–541, 1995.
J.R. Burch. Techniques for verifying superscalar microprocessors. In Proc. DAC’96, pages 552–557, 1996.
J.R. Burch and D.L. Dill. Automatic verification of pipelined microprocessor control. In D. Dill, editor, Proc. Computer Aided Verification’ 94, LNCS 818, pages 68–80. Springer, 1994.
J.R. Burch, E.M. Clarke, and D.E. Long. Representing circuits more efficiently in symbolic model checking. In Proc. DAC’91, pages 403–407, 1991.
J.R. Burch, E.M. Clarke, D.E. Long, K.L. McMillan, and D.L. Dill. Symbolic model checking for sequential circuit verification. IEEE Transactions on CAD, 13(4):401–424, 1994.
J.R. Burch, E.M. Clarke, K.L. McMillan, and D.L. Dill. Sequential circuit verification using symbolic model checking. In Proc. DAC’90, pages 46–51, 1990.
G. Cabodi, P. Camurati, L. Lavagno, and S. Quer. Disjunctive partitioning and partial iterative squaring. In Proc. DAC’97, pages 728–733, 1997.
G. Cabodi, P. Camurati, and S. Quer. Improved reachability analysis of large finite state machines. In Proc. ICCAD’96, pages 354–360, 1996.
Y.A. Chen and R.E. Bryant. *PHDD: an efficient graph representation for floating point circuit verification. In Proc. ICCAD’97, pages 2–7, 1997.
E. Clarke, M. Fujita, and X. Zhao. Hybrid decision diagrams-overcoming the limitations of MTBDD’s and BMD’s. In Proc. ICCAD’95, 1995.
E.M. Clarke, E.A. Emerson, and A.P. Sistla. Automatic verification of finitestate concurrent systems using temporal logic specifications. ACM Trans. on Programming Languages and Systems, 8(2):244–263, 1986.
E.M. Clarke, O. Grumberg, and D.E. Long. Model checking and abstraction. In Proc. POPL’92, pages 343–354, 1992.
E.M. Clarke, M. Khaira, and X. Zhao. Word level model checking-avoiding the Pentium FDIV error. In Proc. DAC’96, pages 645–648, 1996.
E.M. Clarke, K.L. McMillan, X. Zhao, M. Fujita, and J. Yang. Spectral transforms for large boolean functions with application to technology mapping. In Proc. DAC’93, pages 54–60, 1993.
E.M. Clarke and J.M. Wing. Formal methods: state of the art and future directions. ACM Computing Surveys, 28(4):626–643, 1996.
O. Coudert, C. Berthet, and J.C. Madre. Verification of synchronous sequential machines based on symbolic execution. In Proc. Workshop on Automatic Verification Methods for Finite State Systems, Grenoble, pages 365–373, 1989.
D. Cyrluk. Microprocessor verification in PVS. Technical Report SRI-CSL-93-12, SRI International, 1993.
D. Cyrluk. Inverting the abstraction mapping: a methodology for hardware verification. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 172–186. Springer, 1996.
D. Cyrluk, O. Möller, and H. Rueß. An efficient decision procedure for the theory of fixed-sized bit-vectors. In Proc. CAV’97, LNCS 1254, pages 60–71. Springer, 1997.
W. Damm and A. Pnueli. Verifying out-of-order executions. In E. Cerny and D. Probst, editors, Proc. CHARME’ 97-Advances in Hardware and Verification Methods, pages 23–47. Chapman & Hall, 1997.
R. Drechsler and B. Becker. Graphbasierte Funktionsdarstellung. Teubner, 1998.
R. Drechsler, B. Becker, and S. Ruppertz. K*BMD’s: a new data structure for verification. In Proc. EDBTC’96, pages 2–8, 1996.
R. Drechsler, A. Sarabi, M. Theobald, B. Becker, and M.A. Perkowski. Efficient representation and manipulation of switching functions based on ordered Kronecker functional decision diagrams. In Proc. DAC’94, pages 415–419, 1994.
E.A. Emerson. Temporal and modal logic. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Vol. B, pages 995–1072. Elsevier, 1990.
H. Eveking. Verification, synthesis and correctness-preserving transformations-cooperative approaches to correct hardware design. In [96], 1990.
H. Eveking. Verifikation digitaler Systeme. Teubner, 1991.
H. Eveking, H. Hinrichsen, and G. Ritter. Automatic verification of scheduling results in high-level synthesis. In Proc. DATE’99, pages 59–64, 1999.
V.M. Glushkov. Automata theory and formal microprogram transformations. Kibernetika, 1(5):1–9, 1965.
A. Goel, K. Sajid, H. Zhou, A. Aziz, and V. Singhal. BDD based procedures for a theory of equality with uninterpreted functions. In Proc. CAV’98, LNCS 1427, pages 244–255. Springer, 1998.
G.D. Hachtel and F. Somenzi. Logic synthesis and verification algorithms. Kluwer, 1996.
S. Hazelhurst and C.J.H. Seger. A simple theorem prover based on symbolic trajectory evaluation and OBDD’s. Technical Report 93-41, Dept. of Computer Science, Univ. of British Columbia, 1993.
J. L. Hennessy and D. A. Patterson. Computer architecture-a quantitative approach (2nd ed.). Morgan Kaufmann, 1996.
H. Hinrichsen. URL http://www.rs.e-technik.tu-darmstadt.de/~hinni/document/index.html, 1998.
H. Hinrichsen, H. Eveking, and G. Ritter. Formal synthesis for pipeline design. In Proc. Discrete Mathematics and Theoretical Computer Science Conference (DMTCS) and Computing: The Australian Theory Symposium (CATS), 21, number 3 of Discrete Mathematics and Theoretical Computer Science, pages 247–261. Springer, 1999.
S. Höreth. Implementation of a multiple-domain decision diagram package. In E. Cerny and D. Probst, editors, Proc. CHARME’97-Advances in Hardware and Verification Methods, pages 185–202. Chapman & Hall, 1997.
S. Höreth. URL http://www.rs.e-technik.tu-darmstadt.de/~sth/demo.html, 1997.
S. Höreth and R. Drechsler. Dynamic minimization of word-level decision diagrams. In Proc. DATE98, pages 612–617, 1998.
C. Ip and D. Dill. Better verification through symmetry. Formal Methods in System Design, 9:41–75, 1996.
A. Jain, K.L. Nelson, and R.E. Bryant. Verifying nondeterministic implementations of deterministic systems. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 109–125. Springer, 1996.
R.B. Jones, D.L. Dill, and J.R. Burch. Efficient validity checking for processor verification. In Proc. ICCAD’95, 1995.
U. Kebschull, E. Schubert, and W. Rosenstiel. Multilevel logic synthesis based on functional decision diagrams. In Proc. EuroDAC’92, pages 43–47, 1992.
Th. Kropf, editor. Formal hardware verification: methods and systems in comparison, LNCS 1287. Springer, 1997.
A. Kuehlmamm and F. Krohm. Equivalence checking using cuts and heaps. In Proc. DAC’97, pages 263–268, 1997.
R. Kumar, C. Blumenröhr, D. Eisenbiegler, and D. Schmid. Formal synthesis in circuit design-a classification and survey. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 294–309. Springer, 1996.
W. Kunz. Hannibal: an efficient tool for logic verification based on recursive learning. In Proc. ICCAD’93, 1993.
R.P. Kurshan. Computer-aided verification of coordinating processes-the automata-theoretic approach. Princeton Univ. Press, 1994.
R.P. Kurshan. Formal verification in a commercial setting. In Proc. DAC’97, pages 258–262, 1997.
Y.T. Lai and S. Sastry. Edge-valued binary decision diagrams for multi-level hierarchical verification. In Proc. ICCAD’ 93, pages 188–193, 1993.
J. Levitt and K. Olukotun. A scalable formal verification methodology for pipelined microprocessors. In Proc. DAC’96, pages 558–563, 1996.
J. Levitt and K. Olukotun. Verifying correct pipeline implementation for microprocessors. In Proc. ICCAD’97, pages 162–169, 1997.
Z. Manna and A. Pnueli. The temporal logic of reactive and concurrent systems. Springer, 1991.
Y. Matsunaga. An efficient equivalence checker for combinational circuits. In Proc. DAC’96, pages 629–634, 1996.
K.L. McMillan. Symbolic model checking. Kluwer, 1993.
K.L. McMillan. Verification of infinite state systems by compositional model checking. In Proc. CHARME’99, LNCS 1703, pages 219–233. Springer, 1999.
Chr. Meinel and T. Theobald. Algorithms and data-structures in VLSI design. Springer, 1998.
J.P. Mermet, editor. Fundamentals and standards in hardware description languages, 249 of NATO ASI series E. Kluwer, 1993.
S. Minato. Binary decision diagrams and applications for VLSI CAD. Kluwer, 1996.
J.S. Moore, T. Lynch, and M. Kaufmann. A mechanically checked proof of the correctness of the kernel of the AMD586 floating point division algorithm. Research Report, Computational Logic Inc., 1996.
A. Narayan, A.J. Isles, J. Jain, R.K. Brayton, and A.L. Sangiovanni-Vincentelli. Reachability analysis using partitioned-ROBDD’s. In Proc. ICCAD’97, pages 388–393, 1997.
G. Nelson and D.C. Oppen. Fast decision procedures based on congruence closure. In JACM, 27, pages356–364, 1980.
K.L. Nelson, A. Jain, and R.E. Bryant. Formal verification of a superscalar execution unit. In Proc. DAC’97, pages 161–166, 1997.
J. O’Leary, X. Zhao, R. Gerth, and C. Seger. Formally verifying IEEE compliance of floating point hardware. Intel Technology Journal, (Q1), 1999.
M. Pandey, R. Raimi, R.E. Bryant, and M.S. Abadir. Formal verification of content addressable memories using symbolic trajectory evaluation. In Proc. DAC’97, pages 167–172, 1997.
N. Park and A.C. Parker. Sehwa: a software package for synthesis of pipelines from behavioral specifications. IEEE Transactions on CAD, 7(3):356–370, 1988.
M. Rahmouni and A.A. Jerraya. Formulation end evaluation of scheduling techniques for control flow graphs. In Proc. EuroDAC’95, Brighton, 1995.
G. Ritter, H. Eveking, and H. Hinrichsen. Formal verification of designs with complex control by symbolic simulation. In CHARME’99, LNCS 1703, pages 234–249. Springer, 1999.
G. Ritter, H. Hinrichsen, and H. Eveking. Formal verification of descriptions with distinct order of memory operations. In ASIAN’99, 5. Springer, 1999.
R. Rudell. Dynamic variable ordering for Ordered Binary Decision Diagrams. Proc. ICCAD’93, pages 42–47, 1993.
T. Sasao and M. Fujita. Representations of discrete functions. Kluwer, 1996.
C.J.H. Seger and R.E. Bryant. Formal verification by symbolic evaluation of partially-ordered trajectories. Formal Methods in System Design, 6:147–189, 1995.
M. Sheeran and G. Stålmarck. A tutorial on Stiilmarck’s proof procedure for propositional logic. In G. Gopalakrishnan and P. Windley, editors, Proc. FMCAD’ 98, LNCS 1522, pages 82–99. Springer, 1998.
R.E. Shostak. A practical decision procedure for arithmetic with function symbols. JACM, 26:351–360, 1979.
M.K. Srivas and S.P. Miller. Formal verification of an avionics microprocessor. Technical Report SRI-CSL-95-04, SRI International, 1995.
D. Stoffel and W. Kunz. Record & play: a structural fixed point iteration for sequential circuit verification. In Proc. ICCAD’97, pages 394–399, 1997.
R.E. Tarjan. Efficiency of a good but not linear set union algorithm. JACM, 22:215–225, 1975.
C. van Eijk. Sequential equivalence checking without state space traversal. In Proc. DATE’98, pages 618–623, 1998.
C. van Eijk and G. Janssen. Exploiting structural similarities in a BDD-based verification method. In Proc. Theorem Provers in Circuit Design, LNCS 901, pages 110–125. Springer, 1994.
C.A.J. van Eijk. Formal methods for the verification of digital circuits. Dissertation, Technical University of Eindhoven, 1997.
M.N. Velev and R.E. Bryant. Superscalar processor verification using efficient reductions of the logic of equality with uninterpreted functions to propositional logic. In Proc. CHARME’99, LNCS 1703, pages 37–53. Springer, 1999.
P.J. Windley and J.R. Burch. Mechanically checking a lemma used in an automatic verification tool. In M. Srivas and A. Camilleri, editors, Proc. FMCAD’ 96, LNCS 1166, pages 362–376. Springer, 1996.
M. Yoeli, editor. Formal Verification of Hardware Design. IEEE Computer Society Press Tutorial, 1990.
H. Zhang. SATO: An efficient propositional prover. In Proc. CADE’97, LNAI 1249, pages 272–275. Springer, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Eveking, H. (2000). Machine Assisted Verification. In: Börger, E. (eds) Architecture Design and Validation Methods. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-57199-2_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-57199-2_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-62976-1
Online ISBN: 978-3-642-57199-2
eBook Packages: Springer Book Archive