A divide-and-conquer-based algorithm for automatic simulation vector generation

Testbenches play one of the most important roles in simulation-based design verification. Given a simulation scenario, a testbench provides specific vectors to simulate the design, then collects responses from the design to monitor whether the simulation has satisfied the scenario. The major bottleneck in writing testbenches is generating valid simulation vectors. Many current automatic-vector-generation methods focus on exploring a design's state space. Due to memory or runtime limitations, these methods cannot keep up with the rapid growth of design complexity. We propose a novel algorithm based on the divide-and-conquer paradigm that helps these methods decompose the design's complexity. The algorithm uses a partitioning method that recursively divides a design into smaller, more manageable components. Other approaches handle the divided components while maintaining the entire design's proper functioning. Random simulation generates sets of simulation vectors by randomly assigning the logic values to the design's primary inputs (Pis) one cycle at a time. Unlike random simulation, which uses only a single trace, symbolic solvers attempt to simultaneously enumerate all possible primary inputs to explore the entire state space. They typically use binary decision diagrams (BDDs) or satisfiability (SAT) solvers as their core engine.

[1]  J. P. Marques,et al.  GRASP : A Search Algorithm for Propositional Satisfiability , 1999 .

[2]  Srinivas Devadas,et al.  Simulation vector generation from HDL descriptions for observability-enhanced statement coverage , 1999, DAC '99.

[3]  Kavita Ravi,et al.  High-density reachability analysis , 1995, ICCAD.

[4]  Janick Bergeron,et al.  Writing Testbenches: Functional Verification of HDL Models , 2000 .

[5]  Mark Horowitz,et al.  Improving coverage analysis and test generation for large designs , 1999, 1999 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (Cat. No.99CH37051).

[6]  Malay K. Ganai,et al.  Enhancing simulation with BDDs and ATPG , 1999, Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361).

[7]  Mark Horowitz,et al.  Validation coverage analysis for complex digital designs , 1996, ICCAD 1996.

[8]  K. Keutzer,et al.  Functional Vector Generation for HDL Models Using , 2001 .

[9]  Jiang Long,et al.  Smart simulation using collaborative formal and simulation engines , 2000, IEEE/ACM International Conference on Computer Aided Design. ICCAD - 2000. IEEE/ACM Digest of Technical Papers (Cat. No.00CH37140).