Using combinational verification for sequential circuits

Retiming combined with combinational optimization is a powerful sequential synthesis method. However, this methodology has not found wide application because formal sequential verification is not practical and current simulation methodology requires the correspondence of latches disallowing any movement of latches. We present a practical verification technique which permits such sequential synthesis for a class of circuits. In particular, we require certain constraints to be met on the feedback paths of the latches involved in the retiming process. For a general circuit, we can satisfy these constraints by fixing the location of some latches, e.g., by making them observable. We show that equivalence checking after performing repeated retiming and synthesis on this class of circuit reduces to a combinational verification problem. We also demonstrate that our methodology covers a large class of circuits by applying it to a set of benchmarks and industrial designs.

[1]  Charles E. Leiserson,et al.  Optimizing synchronous systems , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[2]  Shi-Yu Huang,et al.  On verifying the correctness of retimed circuits , 1996, Proceedings of the Sixth Great Lakes Symposium on VLSI.

[3]  C.A.J. van Eijk Sequential equivalence checking without state space traversal , 1998, Proceedings Design, Automation and Test in Europe.

[4]  Olivier Coudert,et al.  A unified framework for the formal verification of sequential circuits , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[5]  Robert K. Brayton,et al.  The Validity of Retiming Sequential Circuits , 1995, 32nd Design Automation Conference.

[6]  G. De Micheli,et al.  Synthesis and optimization of synchronous logic circuits from recurrence equations , 1992, [1992] Proceedings The European Conference on Design Automation.

[7]  P. R. Stephan,et al.  SIS : A System for Sequential Circuit Synthesis , 1992 .

[8]  Randal E. Bryant,et al.  Boolean Analysis of MOS Circuits , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  C. A. J. van Eijk,et al.  Sequential equivalence checking without state space traversal , 1998, DATE.

[10]  Sharad Malik,et al.  Using Complete-1-Distinguishability for FSM equivalence checking , 1996, Proceedings of International Conference on Computer Aided Design.

[11]  Robert K. Brayton,et al.  Implicit state enumeration of finite state machines using BDD's , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[12]  Andreas Kuehlmann,et al.  Equivalence checking using cuts and heaps , 1997, DAC.

[13]  Sachin S. Sapatnekar,et al.  An improved algorithm for minimum-area retiming , 1997, DAC.

[14]  S.M. Reddy,et al.  On determining scan flip-flops in partial-scan designs , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[15]  Shi-Yu Huang,et al.  AQUILA: An equivalence verifier for large sequential circuits , 1997, Proceedings of ASP-DAC '97: Asia and South Pacific Design Automation Conference.

[16]  Gabriel P. Bischoff,et al.  Formal implementation verification of the bus interface unit for the Alpha 21264 microprocessor , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[17]  W. Kunz,et al.  Record and play: a structural fixed point iteration for sequential circuit verification , 1997, ICCAD 1997.

[18]  D. Ross Computer-aided design , 1961, CACM.

[19]  Giovanni De Micheli,et al.  Recurrence equations and the optimization of synchronous logic circuits , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[20]  Yusuke Matsunaga An efficient equivalence checker for combinational circuits , 1996, DAC '96.