The Counting Algorithm for simulation of million-gate designs

A key part in the development and verification of d igital systems is simulation. But hardware simulators are expensive, and software simulation is not fast enough for designs with a la rge number of gates. As today’s digital designs constantly grow in size (nu mber of gates), and that trend shows no signs to end, faster simulators hand ling millions of gates are needed. We investigate how to create a software gate-level simulator able to simulate a high number of gates fast. This involves a trade-off between memory requirement and speed. A compact netlist rep resentation can utilize cache memories more efficient but requires more work to interpret, while high memory requirements can limit the perfor mance to the speed of main memory. We have selected the Counting Algorithm to implemen t the experimental simulator MICA. The main reasons for this choice is the compact way in which gates can be stored, but still be evaluated i n a simple and standard way. The report describes the issues and solutions encou ntered and evaluate the resulting simulator. MICA simulates a SPARC archite cture processor called Leon. Larger netlists are achieved by simula ting several instances of this processor. Simulation of 128 instances is done at a speed of 9 million gates per second using only 3.5MB memory. In MICA t his design correspond to 2.5 million gates.

[1]  Peter M. Maurer Event driven simulation without loops or conditionals , 2000, IEEE/ACM International Conference on Computer Aided Design. ICCAD - 2000. IEEE/ACM Digest of Technical Papers (Cat. No.00CH37140).

[2]  Yun Sik Lee,et al.  Gateways: a technique for adding event-driven behavior to compiled simulations , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[3]  David Blaauw,et al.  Reducing the scheduling cost in event-driven simulation through component clustering , 1993, 1993 European Conference on Design Automation with the European Event in ASIC Design.

[4]  Randal E. Bryant,et al.  COSMOS: a compiled simulator for MOS circuits , 1987, DAC '87.

[5]  Zhicheng Wang,et al.  LECSIM: a levelized event driven compiled logic simulation , 1991, DAC '90.

[6]  Peter M. Maurer The Inversion Algorithm for digital simulation , 1994, ICCAD '94.

[7]  Valeria Bertacco,et al.  Cycle-based symbolic simulation of gate-level synchronous circuits , 1999, DAC '99.

[8]  Daniel Weise,et al.  Automatic generation of compiled simulations through program specialization , 1991, 28th ACM/IEEE Design Automation Conference.

[9]  G. Jennings A case against event-driven simulation for digital system design , 1991, [1991] Proceedings of the 24th Annual Simulation Symposium.

[10]  David M. Lewis A hierarchical compiled code event-driven logic simulator , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[11]  Peter M. Maurer The shadow algorithm: a scheduling technique for both compiled and interpreted simulation , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

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

[13]  David Blaauw,et al.  A cache-based method for accelerating switch-level simulation , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[14]  Peter M. Maurer Efficient simulation for hierarchical and partitioned circuits , 1999, Proceedings Twelfth International Conference on VLSI Design. (Cat. No.PR00013).

[15]  Charles J. DeVane Efficient circuit partitioning to extend cycle simulation beyond synchronous circuits , 1997, ICCAD 1997.

[16]  Leendert M. Huisman,et al.  SLS-a fast switch-level simulator [for MOS] , 1988, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[17]  Kunle Olukotun,et al.  A General Method for Compiling Event-Driven Simulations , 1995, 32nd Design Automation Conference.

[18]  Peter M. Maurer Is compiled simulation really faster than interpreted simulation? , 1996, Proceedings of 9th International Conference on VLSI Design.