Specification-driven directed test generation for validation of pipelined processors

Functional validation is a major bottleneck in pipelined processor design due to the combined effects of increasing design complexity and lack of efficient techniques for directed test generation. Directed test vectors can reduce overall validation effort, since shorter tests can obtain the same coverage goal compared to the random tests. This article presents a specification-driven directed test generation methodology. The proposed methodology makes three important contributions. First, a general graph model is developed that can capture the structure and behavior (instruction set) of a wide variety of pipelined processors. The graph model is generated from the processor specification. Next, we propose a functional fault model that is used to define the functional coverage for pipelined architectures. Finally, we propose two complementary test generation techniques: test generation using model checking, and test generation using template-based procedures. These test generation techniques accept the graph model of the architecture as input and generate test programs to detect all the faults in the functional fault model. Our experimental results on two pipelined processor models demonstrate several orders-of-magnitude reduction in overall validation effort by drastically reducing both test-generation time and number of test programs required to achieve a coverage goal.

[1]  Andrew Piziali,et al.  Functional verification coverage measurement and analysis , 2004 .

[2]  Magdy S. Abadir,et al.  Directed Micro-architectural Test Generation for an Industrial Processor: A Case Study , 2006, Seventh International Workshop on Microprocessor Test and Verification (MTV'06).

[3]  Todd M. Austin,et al.  StressTest: an automatic approach to test generation via activity monitors , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[4]  Prabhat Mishra,et al.  Test generation using SAT-based bounded model checking for validation of pipelined processors , 2006, GLSVLSI '06.

[5]  Adrian J. Isles,et al.  Formal verification of pipeline control using controlled token nets and abstract interpretation , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[6]  Paul Ammann,et al.  Using model checking to generate tests from specifications , 1998, Proceedings Second International Conference on Formal Engineering Methods (Cat.No.98EX241).

[7]  Kimberly Ryan,et al.  Cadence Design Systems Inc. , 1993 .

[8]  Edmund M. Clarke,et al.  Efficient generation of counterexamples and witnesses in symbolic model checking , 1995, DAC '95.

[9]  John P. Hayes,et al.  High-level test generation for design verification of pipelined microprocessors , 1999, DAC '99.

[10]  B. Ramakrishna Rau,et al.  HMDES Version 2.0 Specification , 1996 .

[11]  Nikil D. Dutt,et al.  EXPRESSION: a language for architecture exploration through compiler/simulator retargetability , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[12]  Corporate SPARC architecture manual - version 8 , 1992 .

[13]  Christian Jacobi Formal Verification of Complex Out-of-Order Pipelines by Combining Model-Checking and Theorem-Proving , 2002, CAV.

[14]  Nikil D. Dutt,et al.  Graph-based functional test program generation for pipelined processors , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[15]  Hai Zhou,et al.  Parallel CAD: Algorithm Design and Programming Special Section Call for Papers TODAES: ACM Transactions on Design Automation of Electronic Systems , 2010 .

[16]  Nikil D. Dutt,et al.  Functional abstraction driven design space exploration of heterogeneous programmable architectures , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[17]  Jacob A. Abraham,et al.  Test Generation for Microprocessors , 1980, IEEE Transactions on Computers.

[18]  Heinrich Meyr,et al.  LISA-machine description language and generic machine model for HW/SW co-design , 1996, VLSI Signal Processing, IX.

[19]  Avi Ziv,et al.  Coverage directed test generation for functional verification using Bayesian networks , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[20]  References , 1971 .

[21]  Nikil D. Dutt,et al.  Synthesis-driven exploration of pipelined embedded processors , 2004, 17th International Conference on VLSI Design. Proceedings..

[22]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[23]  Per Bjesse,et al.  Using counter example guided abstraction refinement to find complex bugs , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[24]  Aharon Aharon,et al.  Test Program Generation for Functional Verification of PowePC Processors in IBM , 1995, 32nd Design Automation Conference.

[25]  Nikil Dutt,et al.  Architecture Description Language driven Functional Test Program Generation for Microprocessors using SMV , 2003 .

[26]  Nikil D. Dutt,et al.  Specification-driven directed test generation for validation of pipelined processors , 2008, TODE.

[27]  Allon Adir,et al.  Genesys-Pro: innovations in test program generation for functional processor verification , 2004, IEEE Design & Test of Computers.

[28]  Magdy S. Abadir,et al.  Enhanced equivalence checking: toward a solidarity of functional verification and manufacturing test generation , 2004, IEEE Design & Test of Computers.

[29]  Prabhat Mishra,et al.  Functional Test Generation using Property Decompositions for Validation of Pipelined Processors , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[30]  Ranjit Jhala,et al.  Microarchitecture Verification by Compositional Model Checking , 2001, CAV.

[31]  Shmuel Ur,et al.  Micro architecture coverage directed generation of test programs , 1999, DAC '99.

[32]  Kwang-Ting Cheng,et al.  Combining ATPG and symbolic simulation for efficient validation of embedded array systems , 2002, Proceedings. International Test Conference.

[33]  Kurt Keutzer,et al.  Coverage Metrics for Functional Validation of Hardware Designs , 2001, IEEE Des. Test Comput..

[34]  Giovanni Squillero,et al.  Automatic test program generation for pipelined processors , 2003, SAC '03.

[35]  Sujit Dey,et al.  Embedded Software-Based Self-Test for Programmable Core-Based Designs , 2002, IEEE Des. Test Comput..

[36]  Mark Horowitz,et al.  Architecture validation for processors , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[37]  Kwang-Ting Cheng,et al.  Safety property verification using sequential SAT and bounded model checking , 2004, IEEE Design & Test of Computers.

[38]  Nikil D. Dutt,et al.  Functional coverage driven test generation for validation of pipelined processors , 2005, Design, Automation and Test in Europe.

[39]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .