A Multiway Design-driven Partitioning Algorithm for Distributed Verilog Simulation

Many partitioning algorithms have been proposed for distributed Very-large-scale integration (VLSI) simulation. Typically, they make use of a gate level netlist and attempt to achieve a minimal cutsize subject to a load balance constraint. The algorithm executes on a hypergraph which represents the netlist. We propose a design-driven iterative partitioning algorithm for Verilog based on module instances instead of gates. We do this in order to take advantage of the design hierarchy information contained in the modules and their instances. A Verilog instance represents one vertex in the circuit hypergraph. The vertex can be flattened into multiple vertices in the event that a load balance is not achieved by instance-based partitioning. In this case, the algorithm flattens the largest instance and moves gates between the partitions in order to improve the load balance. Our experiments show that this partitioning algorithm produces a smaller cutsize than is produced by hMetis on a gate-level netlist. It produces better speedup for the simulation because it takes advantage of the design hierarchy.

[1]  Shantanu Dutt,et al.  Cluster-aware iterative improvement techniques for partitioning large VLSI circuits , 2002, TODE.

[2]  Chau-Shen Chen,et al.  Architecture driven circuit partitioning , 1998, ICCAD.

[3]  H. Avril,et al.  The Dynamic Load Balancing of Clustered Time Warp for Logic Simulation , 1996, Proceedings of Symposium on Parallel and Distributed Tools.

[4]  Charles M. Fiduccia,et al.  A linear-time heuristic for improving network partitions , 1988, 25 years of DAC.

[5]  Herbert Bauer,et al.  Dynamic load balancing of a multi-cluster simulator on a network of workstations , 1995, PADS.

[6]  Shashi Shekhar,et al.  Multilevel hypergraph partitioning: application in VLSI domain , 1997, DAC.

[7]  Gabriele Saucier,et al.  Partitioning with cone structures , 1993, ICCAD.

[8]  Shashi Shekhar,et al.  Multilevel hypergraph partitioning: applications in VLSI domain , 1999, IEEE Trans. Very Large Scale Integr. Syst..

[9]  Jack S. N. Jean,et al.  Concurrency preserving partitioning (CPP) for parallel logic simulation , 1996, Workshop on Parallel and Distributed Simulation.

[10]  Donald E. Thomas,et al.  The Verilog hardware description language (4th ed.) , 1998 .

[11]  J. Abraham,et al.  Simulation on a Network of Workstations * , 2004 .

[12]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .

[13]  Erich Barke,et al.  Design driven partitioning , 1997, Proceedings of ASP-DAC '97: Asia and South Pacific Design Automation Conference.

[14]  Carl Tropper,et al.  Scalable Clustered Time Warp and Logic Simulation , 1999, VLSI Design.

[15]  David R. Jefferson,et al.  Virtual time , 1985, ICPP.

[16]  Naraig Manjikian,et al.  High performance parallel logic simulations on a network of workstations , 1993, PADS '93.

[17]  J. Cong,et al.  Multiway partitioning with pairwise movement , 1998, ICCAD '98.

[18]  Jan-Ming Ho,et al.  An efficient two-level partitioning algorithm for VLSI circuits , 1999, Proceedings of the ASP-DAC '99 Asia and South Pacific Design Automation Conference 1999 (Cat. No.99EX198).

[19]  Carl Tropper,et al.  A Design-Driven Partitioning Algorithm for Distributed Verilog Simulation , 2007, 21st International Workshop on Principles of Advanced and Distributed Simulation (PADS'07).

[20]  Herbert Bauer,et al.  Corolla partitioning for distributed logic simulation of VLSI-circuits , 1993, PADS '93.

[21]  Andrew B. Kahng,et al.  Recent directions in netlist partitioning: a survey , 1995, Integr..

[22]  Shang-Hua Teng,et al.  How Good is Recursive Bisection? , 1997, SIAM J. Sci. Comput..

[23]  Carl Tropper,et al.  The dynamic load balancing of clustered time warp for logic simulation , 1996, Workshop on Parallel and Distributed Simulation.

[24]  Roger D. Chamberlain,et al.  Parallel Logic Simulation of VLSI Systems , 1995, 32nd Design Automation Conference.

[25]  Roger D. Chamberlain,et al.  Evaluating the use of pre-simulation in VLSI circuit partitioning , 1994, PADS '94.

[26]  Andrew B. Kahng,et al.  Design and Implementation of the Fiduccia-Mattheyses Heuristic for VLSI Netlist Partitioning , 1999, ALENEX.

[27]  Philip A. Wilsey,et al.  Applying Multilevel Partitioning to Parallel Logic Simulation , 2001, Scalable Comput. Pract. Exp..

[28]  Carl Tropper,et al.  DVS: an object-oriented framework for distributed Verilog simulation , 2003, Seventeenth Workshop on Parallel and Distributed Simulation, 2003. (PADS 2003). Proceedings..

[29]  Carl Tropper Guest Editor's Introduction: Parallel Discrete-Event Simulation Applications , 2002, J. Parallel Distributed Comput..

[30]  Vipin Kumar,et al.  A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs , 1998, SIAM J. Sci. Comput..

[31]  Tong Zhang,et al.  Parallel logic simulation of million-gate VLSI circuits , 2005, 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[32]  Rolf Drechsler,et al.  Recursive bi-partitioning of netlists for large number of partitions , 2002, Proceedings Euromicro Symposium on Digital System Design. Architectures, Methods and Tools.

[33]  Shawki Areibi Recursive and flat partitioning for VLSI circuit design , 2001, ICM 2001 Proceedings. The 13th International Conference on Microelectronics..