Cycle-based symbolic simulation of gate-level synchronous circuits

Symbolic methods are often considered the state-of-the-art technique for validating digital circuits. Due to their complexity and unpredictable run-time behavior, however, their potential is currently limited to small-to-medium circuits. Logic simulation privileges capacity, it is nicely scalable, flexible, and it has a predictable run-time behavior. For this reason, it is the common choice for validating large circuits. Simulation, however, typically visits only a small fraction of the state space. The discovery of bugs heavily relies on the expertise of the designer of the test stimuli. In this paper we consider a symbolic simulation approach to the validation problem. Our objective is to trade-off between formal and numerical methods in order to simulate a circuit with a "very large number" of input combinations and sequences in parallel. We demonstrate larger capacity with respect to symbolic techniques and better efficiency with respect to cycle-based simulation. We show that it is possible to symbolically simulate very large trace sets in parallel (over 100 symbolic inputs) for the largest ISCAS benchmark circuits, using 96 Mbytes of memory.

[1]  Alexander Saldanha,et al.  Fast discrete function evaluation using decision diagrams , 1995, ICCAD.

[2]  Edmund M. Clarke,et al.  Symbolic model checking for sequential circuit verification , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[3]  Charles J. DeVane Efficient circuit partitioning to extend cycle simulation beyond synchronous circuits , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

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

[5]  Sharad Malik,et al.  Fast functional simulation using branching programs , 1995, ICCAD.

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

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

[8]  Seh-Woong Jeong,et al.  ATPG aspects of FSM verification , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[9]  Olivier Coudert,et al.  Verification of Synchronous Sequential Machines Based on Symbolic Execution , 1989, Automatic Verification Methods for Finite State Systems.

[10]  Adnan Aziz,et al.  Hybrid techniques for fast functional simulation , 1998, DAC.

[11]  Craig Hansen,et al.  Hardware logic simulation by compilation , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[12]  John J. Zasio,et al.  SSIM: A Software Levelized Compiled-Code Simulator , 1987, 24th ACM/IEEE Design Automation Conference.

[13]  C. A. J. van Eijk,et al.  Exploiting functional dependencies in finite state machine verification , 1996, Proceedings ED&TC European Design and Test Conference.

[14]  Barry K. Rosen,et al.  HSS--A High-Speed Simulator , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[15]  Ganesh Gopalakrishnan,et al.  Efficient symbolic simulation-based verification using the parametric form of Boolean expressions , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[16]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[17]  David Bryan,et al.  Combinational profiles of sequential benchmark circuits , 1989, IEEE International Symposium on Circuits and Systems,.