ON THE CONSTRUCTION OF A PROLOG‐BASED VERIFIER FOR SYSTOLIC ARRAY DESIGNS

In this paper, we present VSTA, our Prolog‐based verifier, for formal specification and verification of systolic architectures. VSTA allows users to design systolic array architectures in the STA specification language (STA was developed earlier by Ling for formal description and reasoning of systolic designs) and semi‐automatically verifies these designs The implementation of VSTA is based on a standard Prolog system. Its interface uses Motif system calls based on the X11 and UNIX environments. VSTA provides facilities to assist the user in the design of systolic array specifications. The system allows a formal proof to be derived interactively with suggestions from the user. The proof techniques used are mathematical induction and rewriting. The induction technique is adopted to exploit the regularity and locality nature of systolic array architectures. A number of verification tactics are developed and their operational rules are used in the verifier. Using the powerful symbolic computation ability of Prolog, particularly pattern matching, automatic backtracking, and depth‐first searching, the verifier performs efficiently in the construction of proofs. We also describe the strategies we used in proving a matrix multiplication systolic array and an LU decomposition systolic array.

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

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

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

[4]  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..

[5]  HuetGérard Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980 .

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

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

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

[9]  Mark E. Stickel,et al.  Complete Sets of Reductions for Some Equational Theories , 1981, JACM.

[10]  Sanjay V. Rajopadhye,et al.  Verification of Systolic Arrays: A Stream Function Approach , 1986, ICPP.

[11]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

[12]  Dan I. Moldovan,et al.  ADVIS: A Software Package for the Design of Systolic Arrays , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

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

[14]  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.

[15]  Hideyuki Nakashima Prolog/KR - Language Features , 1982, ICLP.

[16]  Udi Manber Using induction to design algorithms , 1988, CACM.

[17]  Paola Mello,et al.  Logic Programming in a Software Engineering Perspective , 1989, NACLP.

[18]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

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

[20]  Masahiro Fujita,et al.  Specifying Hardware in temporal Logic & Efficient Synthesis of State-Diagrams Using Prolog , 1984, Fifth Generation Computer Systems.

[21]  Robert S. Boyer,et al.  Proving Theorems about LISP Functions , 1973, JACM.

[22]  Donald E. Knuth,et al.  Simple Word Problems in Universal Algebras††The work reported in this paper was supported in part by the U.S. Office of Naval Research. , 1970 .

[23]  Leon Sterling,et al.  Logic based timing verification , 1988 .

[24]  M. C. Chen,et al.  Transformations of Parallel Programs in Crystal , 1986, IFIP Congress.

[25]  S. Purushothaman Iyer,et al.  Reasoning about Systolic Algorithms , 1988, J. Parallel Distributed Comput..

[26]  Ewing Lusk,et al.  Automated reasoning system ITP , 1984 .

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