Efficient validation input generation in RTL by hybridized source code analysis

We present HYBRO, an automatic methodology to generate high coverage input vectors for Register Transfer Level (RTL) designs based on branch-coverage directed approach. HYBRO uses dynamic simulation data and static analysis of RTL control flow graphs (CFGs). A concrete simulation is applied over a fixed number of cycles. Instrumented code records the branches covered. The corresponding symbolic trace is extracted from the CFG with an RTL symbolic execution engine. A guard in the symbolic expression is mutated. If the mutated guard has dependent branches that have not already been covered, it is mutated and passed to an SMT solver. A satisfiable assignment generates a valid input vector. We implement the Verilog RTL symbolic execution engine and show that the notion of branch-coverage directed exploration can avoid path explosion caused by previous path-based approach to input vector generation and achieve full branch and more than 90% functional(assertion) coverage quickly on ITC99 benchmark and several Openrisc designs. We also describe two types of optimizations a) dynamic UD chain slicing b)local conflict resolution to speed up HYBRO by 1.6–12 times on different benchmarks.

[1]  Masahiro Fujita,et al.  Program Slicing of Hardware Description Languages , 1999, CHARME.

[2]  F. Somenzi,et al.  Decomposing Image Computation for Symbolic Reachability Analysis Using Control Flow Information , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

[3]  Jacob A. Abraham,et al.  High level static analysis of system descriptions for taming verification complexity , 2007 .

[4]  Koushik Sen,et al.  CUTE: a concolic unit testing engine for C , 2005, ESEC/FSE-13.

[5]  R. Damiano,et al.  Symbolic RTL simulation , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[6]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

[7]  Jacob A. Abraham,et al.  A Hierarchical Test Generation Approach Using Program Slicing Techniques on Hardware Description Languages , 2003, J. Electron. Test..

[8]  Randal E. Bryant,et al.  Symbolic simulation—techniques and applications , 1990, DAC '90.

[9]  Koushik Sen DART: Directed Automated Random Testing , 2009, Haifa Verification Conference.

[10]  David L. Dill,et al.  Applications of symbolic simulation to the formal verification of microprocessors , 1999 .

[11]  David Tcheng,et al.  GoldMine: Automatic assertion generation using data mining and static analysis , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[12]  I.G. Harris,et al.  An efficient control-oriented coverage metric , 2005, Proceedings of the ASP-DAC 2005. Asia and South Pacific Design Automation Conference, 2005..

[13]  Adnan Aziz,et al.  SIVA: A System for Coverage-Directed State Space Search , 2001, J. Electron. Test..

[14]  Lingyi Liu,et al.  STAR: Generating input vectors for design validation by static analysis of RTL , 2009, 2009 IEEE International High Level Design Validation and Test Workshop.

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

[16]  Masahiro Fujita,et al.  Automatic test pattern generation for functional register-transferlevel circuits using assignment decision diagrams , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..