Formal equivalence verification and debugging techniques with auto-correction mechanism for RTL designs

By increasing the complexity of system on chip (SoC) designs formal equivalence verification and debugging have become more and more important. Lower level methods such as BDDs and SAT solvers suffer from space and time explosion problems to match sizes of industrial designs in formal equivalence verification and debugging. This paper proposes techniques to verify and debug datapath intensive designs based on a canonical decision diagram called Horner Expansion Diagram (HED). It allows us to check the equivalence between two models in different levels of abstraction, e.g., a Register Transfer Level (RTL) implementation and a non-cycle-accurate specification. In order to reduce the complexity of equivalence checking problem, we tackle the exponential path enumeration problem by automatically identifying internal equivalent conditional expressions as well as suitable merge points. Our debugging technique is based on introducing mutations into the buggy implementation and then observing if the specification is capable of detecting these changes. We make use of a simple heuristic to reduce the number of mutants when dealing with multiple errors. We report the results of deploying our equivalence verification technique on several industrial designs which show 16.8x average memory usage reduction and 8.0x speedup due to merge-point detection. Furthermore, our debugging technique shows 13.7x average memory usage reduction and 4.6x speedup due to using SMT solvers to find equivalent conditions. In addition, the proposed debugging technique can avoid the computation of unnecessary mutants so that the results show 2.9x average reduction of the number of mutants to be processed.

[1]  Yi-Yuan Chang,et al.  An efficient mechanism for debugging RTL description , 2003, The 3rd IEEE International Workshop on System-on-Chip for Real-Time Applications, 2003. Proceedings..

[2]  Jerry R. Burch,et al.  Memory Modeling in ESL-RTL Equivalence Checking , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[3]  Rolf Drechsler,et al.  Automatic Fault Localization for Property Checking , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[4]  Fei Xie,et al.  Optimizing equivalence checking for behavioral synthesis , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[5]  Igor L. Markov,et al.  Fixing Design Errors with Counterexamples and Resynthesis , 2007, 2007 Asia and South Pacific Design Automation Conference.

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

[7]  Yuan Lu,et al.  Embedded tutorial: formal equivalence checking between system-level models and RTL , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[8]  Masahiro Fujita,et al.  A Formal Approach for Debugging Arithmetic Circuits , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Carl Pixley,et al.  Solver technology for system-level to RTL equivalence checking , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[10]  Masahiro Fujita,et al.  Automatic Merge-Point Detection for Sequential Equivalence Checking of System-Level and RTL Descriptions , 2007, ATVA.

[11]  David Singmaster,et al.  On polynomial functions (mod m) , 1974 .

[12]  Rolf Drechsler,et al.  Polynomial datapath optimization using constraint solving and formal modelling , 2010, 2010 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[13]  Lorenz Halbeisen,et al.  Powers and Polynomials in ${\Bbb Z}_m$RID="*"ID="*" Dedicated to the memory of Prof. Hans Läuchli , 1999 .

[14]  Olivier Coudert,et al.  Automating the diagnosis and the rectification of design errors with PRIAM , 1989, ICCAD 1989.

[15]  Robert K. Brayton,et al.  Automating Logic Rectification by Approximate SPFDs , 2007, 2007 Asia and South Pacific Design Automation Conference.

[16]  Bijan Alizadeh,et al.  A formal approach to debug polynomial datapath designs , 2012, 17th Asia and South Pacific Design Automation Conference.

[17]  Masahiro Fujita,et al.  A Unified Framework for Equivalence Verification of Datapath Oriented Applications , 2009, IEICE Trans. Inf. Syst..

[18]  Masahiro Fujita,et al.  Modular Datapath Optimization and Verification Based on Modular-HED , 2010, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[19]  W. Eric Wong,et al.  Using Mutation to Automatically Suggest Fixes for Faulty Programs , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[20]  Lionel C. Briand,et al.  Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria , 2006, IEEE Transactions on Software Engineering.

[21]  Andreas Veneris,et al.  Design diagnosis using Boolean satisfiability , 2004 .

[22]  Jing-Yang Jou,et al.  An efficient approach for error diagnosis in HDL design , 2003, Proceedings of the 2003 International Symposium on Circuits and Systems, 2003. ISCAS '03..

[23]  Jacob A. Abraham,et al.  Automatic decomposition for sequential equivalence checking of system level and RTL descriptions , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

[24]  Lorenz Halbeisen Powers and Polynomials in Zm , 1999 .

[25]  Kwang-Ting Cheng,et al.  RTL Error Diagnosis Using a Word-Level SAT-Solver , 2008, 2008 IEEE International Test Conference.

[26]  Roderick Bloem,et al.  Finding and Fixing Faults , 2005, CHARME.

[27]  Franz Wotawa,et al.  Verification and Fault Localization for VHDL Programs , 2002 .

[28]  Masahiro Fujita,et al.  Equivalence checking of C programs by locally performing symbolic simulation on dependence graphs , 2006, 7th International Symposium on Quality Electronic Design (ISQED'06).

[29]  Chittaranjan A. Mandal,et al.  A formal verification method of scheduling in high-level synthesis , 2006, 7th International Symposium on Quality Electronic Design (ISQED'06).

[30]  Marco Benedetti,et al.  A performance-driven QBF-based iterative logic array representation with applications to verification, debug and test , 2007, ICCAD 2007.

[31]  Alan J. Hu,et al.  Early outpoint insertion for high-level software vs. RTL formal combinational equivalence verification , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[32]  Alan Mishchenko,et al.  Scalable and scalably-verifiable sequential synthesis , 2008, ICCAD 2008.

[33]  Masahiro Fujita,et al.  Improved heuristics for finite word-length polynomial datapath optimization , 2009, 2009 IEEE/ACM International Conference on Computer-Aided Design - Digest of Technical Papers.

[34]  Nikhil Sharma,et al.  Non-cycle-accurate Sequential Equivalence Checking , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[35]  Chien-Nan Jimmy Liu,et al.  Estimating likelihood of correctness for error candidates to assist debugging faulty HDL designs , 2005, 2005 IEEE International Symposium on Circuits and Systems.

[36]  Oscar H. Ibarra,et al.  Probabilistic Algorithms for Deciding Equivalence of Straight-Line Programs , 1983, JACM.

[37]  Masahiro Fujita,et al.  A novel formal approach to generate high-level test vectors without ILP and SAT solvers , 2007, 2007 IEEE International High Level Design Validation and Test Workshop.

[38]  Masahiro Fujita,et al.  Polynomial datapath optimization using partitioning and compensation heuristics , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[39]  Franz Wotawa,et al.  On the relationship between model-based debugging and program slicing , 2002, Artif. Intell..

[40]  Sean Safarpour,et al.  Automated debugging of SystemVerilog assertions , 2011, 2011 Design, Automation & Test in Europe.

[41]  Chao Liu,et al.  Statistical Debugging: A Hypothesis Testing-Based Approach , 2006, IEEE Transactions on Software Engineering.

[42]  Fei Xie,et al.  Formal Verification for High-Assurance Behavioral Synthesis , 2009, ATVA.

[43]  Daniel Kroening,et al.  Behavioral consistency of C and Verilog programs using bounded model checking , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[44]  Norbert Hungerbühler,et al.  A GENERALIZATION OF THE SMARANDACHE FUNCTION TO SEVERAL VARIABLES , 2006 .