Automatic verification of implementations of large circuits against HDL specifications

This paper addresses the problem of verifying the correctness of gate-level implementations of large synchronous sequential circuits with respect to their higher level specifications in a hardware description language (HDL). The verification strategy is to verify containment of the finite state machine (FSM) represented by the HDL description in the gate-level FSM by computing pairs of compatible states. This formulation of the verification problem dissociates the verification process from the specification of initial states, whose encoding may be unknown or obscured during optimization and also enables verification of reset circuitry. To make verification of large circuits with merged data path and control tractable, the concept of strong containment is introduced. This is a conservative approach which exploits correspondence between data path-registers in the two descriptions without requiring any correspondence between the control units. We also present an important result and associated proof that computation of pairs of equivalent or compatible states can be achieved by considering subsets of the circuit outputs. Consequently, verification of circuits with large and diverse input-output sets, which was previously intractable due to lack of a single effective variable order for the binary decision diagrams (BDD's), is now feasible. Experimental results are presented for the verification of several industry level circuits.

[1]  W. J. Cullyer Implementing Safety-Critical Systems: The VIPER Microprocessor , 1988 .

[2]  A. Richard Newton,et al.  An efficient verifier for finite state machines , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[3]  Alan J. Hu,et al.  Reducing BDD Size by Exploiting Functional Dependencies , 1993, 30th ACM/IEEE Design Automation Conference.

[4]  Jacob A. Abraham,et al.  Verification of circuits described in VHDL through extraction of design intent , 1994, Proceedings of 7th International Conference on VLSI Design.

[5]  Thomas Tamisier Computing the observable equivalence relation of a finite state machine , 1993, ICCAD.

[6]  Robert P. Kurshan,et al.  Analysis of Discrete Event Coordination , 1989, REX Workshop.

[7]  Edmund M. Clarke,et al.  Sequential circuit verification using symbolic model checking , 1991, DAC '90.

[8]  Thomas Filkorn A Method for Symbolic Verification of Synchronous Circuits , 1991 .

[9]  Carl Pixley,et al.  Automatic derivation of FSM specification to implementation encoding , 1991, [1991 Proceedings] IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[10]  J. Moondanos,et al.  VERTEX: VERification of Transistor-level circuits based on model EXtraction , 1993, 1993 European Conference on Design Automation with the European Event in ASIC Design.

[11]  A. D. Friedman,et al.  Theory and Design of Switching Circuits , 1983 .

[12]  Elizabeth M. Rudnick,et al.  Microprocessor Design Verification , 2000, The VLSI Handbook.

[13]  John Moondanos Formal VLSI verification techniques based on state machine comparison , 1993 .

[14]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[15]  Randal E. Bryant,et al.  Formal hardware verification by symbolic ternary trajectory evaluation , 1991, 28th ACM/IEEE Design Automation Conference.

[16]  H. De Man,et al.  Automatic formal verification of Cathedral-II circuits from transistor switch level implementation up to high level behavioral specifications by the SFG-tracing methodology , 1992, [1992] Proceedings The European Conference on Design Automation.

[17]  Masahiro Fujita,et al.  Evaluation and improvement of Boolean comparison method based on binary decision diagrams , 1988, [1988] IEEE International Conference on Computer-Aided Design (ICCAD-89) Digest of Technical Papers.

[18]  Frederick C. Hennie,et al.  Finite-state Models for Logical Machines , 1968 .

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

[20]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[21]  Masahiro Fujita,et al.  RTL design verification by making use of datapath information , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

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

[23]  A. Richard Newton,et al.  Don't care minimization of multi-level sequential logic networks , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[24]  Srinivas Devadas,et al.  Event-based verification of synchronous, globally controlled, logic designs against signal flow graphs , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..