Automated debugging with high level abstraction and refinement

Design debugging is a manual and time consuming task which takes as much as 60% of the verification effort. To alleviate the debugging pain automated debuggers must tackle industrial problems by increasing their capacity and improving their performance. This work introduces an abstraction and refinement methodology for debugging that leverages the high level information inherent to RTL designs. Function abstraction uses the modular nature of designs to simplify the debugging problem. If required, refinement re-introduces the necessary circuitry back into the design in order to find all error locations. The abstraction and refinement process is applied throughout the design's hierarchy allowing for a divide and conquer methodology. The proposed technique is shown to reduce the memory requirement by as much as 27x and reduce the run-time by two orders of magnitude over a conventional debugger.

[1]  Igor L. Markov,et al.  Automating Postsilicon Debugging and Repair , 2007, Computer.

[2]  Harry D. Foster,et al.  Assertion-Based Design , 2010 .

[3]  Ibrahim N. Hajj,et al.  Design error diagnosis and correction via test vector simulation , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

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

[5]  Rolf Drechsler,et al.  On the relation between simulation-based and SAT-based diagnosis , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[6]  Rolf Drechsler,et al.  Post-verification debugging of hierarchical designs , 2005, ICCAD 2005.

[7]  Andreas G. Veneris Fault diagnosis and logic debugging using Boolean satisfiability , 2003, Proceedings. 4th International Workshop on Microprocessor Test and Verification - Common Challenges and Solutions.

[8]  Harry Foster Assertion-Based Verification: Industry Myths to Realities (Invited Tutorial) , 2008, CAV.

[9]  Ofer Strichman,et al.  SAT-based counterexample-guided abstraction refinement , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[10]  Sean Safarpour,et al.  Abstraction and refinement techniques in automated design debugging , 2007 .

[11]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[12]  Shi-Yu Huang,et al.  Formal Equivalence Checking and Design Debugging , 1998 .

[13]  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.

[14]  Igor L. Markov,et al.  Automating Postsilicon Debugging and Repair , 2008, Computer.