Automatic formal verification of systolic array designs

The authors have previously (1990) developed a new formalism, called systolic temporal arithmetic (STA), for formal specification and verification of systolic arrays at the array level. The formalism exploits systolic array attributes to produce elegant specification and effective formal design verification and is suitable to be combined with interval temporal logic for multilevel reasoning for several abstraction levels of systolic architecture. Besides providing a brief review of the STA formalism, the paper concentrates on discussing and expanding several formal techniques that the authors developed recently to verify the correctness of different systolic architectures. The paper emphasizes two verification strategies: verification by different induction techniques and verification by solving STA difference equations. Verification techniques are developed to produce sound and efficient verification procedures and provide short-cuts to proofs. In addition, the paper also presents a Prolog-based verifier that the authors developed to automate the proofs. Prolog is adapted for automated verification due to its popularity and its closeness in representing STA predicate-type notations. This allows easy encoding and user control to improve efficiency. The automatic backtracking and pattern matching mechanisms of Prolog serve as a useful tool for implementing the proofs.<<ETX>>

[1]  Martín Abadi,et al.  A Timely Resolution , 1986, LICS.

[2]  Rami G. Melhem,et al.  A Mathematical Model for the Verification of Systolic Networks , 1984, SIAM J. Comput..

[3]  Hon Fung Li,et al.  Abstract Specification of Synchronous Data Types for VLSI and Proving the Correctness of Systolic Network Implementations , 1988, IEEE Trans. Computers.

[4]  Tom Melham,et al.  Abstraction Mechanisms for Hardware Verification , 1988 .

[5]  Ben C. Moszkowski,et al.  A Temporal Logic for Multilevel Reasoning about Hardware , 1985, Computer.

[6]  H. T. Kung,et al.  Systolic Arrays for (VLSI). , 1978 .

[7]  Thomas Kailath,et al.  Design framework for systolic-type arrays , 1984, ICASSP.

[8]  Hanoch Lev-Ari Modular Computing Networks: A New Methodology for Analysis and Design of Parallel Algorithms/Architectures, , 1983 .

[9]  J. M. Jover,et al.  On the Analysis of Synchronous Computing Arrays , 1986 .

[10]  Danny Cohen,et al.  A mathematical approach to modelling the flow of data and control in computational networks , 1981 .

[11]  Brent Hailpern Verifying Concurrent Processes Using Temporal Logic , 1982, Lecture Notes in Computer Science.

[12]  H. Kung,et al.  An algebra for VLSI algorithm design , 1983 .

[13]  W. F. Clocksin Logic Programming and Digital Circuit Analysis , 1987, J. Log. Program..

[14]  C.-C. Jay Kuo,et al.  The specification and verification of systolic wave algorithms , 1984 .

[15]  M.A. Bayoumi,et al.  Systolic temporal arithmetic: a new formalism for specification and verification of systolic arrays , 1990, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[16]  Fumihiro Maruyama Hardware Verification , 1985, Computer.

[17]  P. Quinton Automatic synthesis of systolic arrays from uniform recurrent equations , 1984, ISCA 1984.

[18]  Paolo Prinetto,et al.  Formal verification of hardware correctness: introduction and survey of current research , 1988, Computer.

[19]  Marty Ossefort,et al.  Correctness Proofs of Communicating Processes: Three Illustrative Examples From the Literature , 1983, TOPL.

[20]  S. Kung,et al.  VLSI Array processors , 1985, IEEE ASSP Magazine.

[21]  H. T. Kung Why systolic architectures? , 1982, Computer.

[22]  Carver A. Mead,et al.  Concurrent Algorithms as Space-Time Recursion Equations , 1983 .

[23]  Matthew Hennessy Proving systolic systems correct , 1986, TOPL.

[24]  Harry G. Barrow,et al.  VERIFY: A Program for Proving Correctness of Digital Hardware Designs , 1984, Artif. Intell..