Automatic generation of compact formal properties for effective error detection

Several approaches exist in literature for automatic extraction of model behaviours represented in the form of formal properties. Some of them rely on static analysis of the source code, others dynamically mine specifications by analysing simulation traces. In both cases, most of them work at bit level and generate properties in the form of combinational or temporal relationships among Boolean expressions. Such techniques are suited only for gate-level or RTL HW models. There are also approaches working on system-level descriptions and SW programs, but they generate properties to express only the sequential ordering of communication function calls and events, while the functional part of the implementation is ignored. To fill in the gap, this paper presents a dynamic methodology that works on gate-level, RTL and system-level HW descriptions as well as embedded SW, independently from the design model and the abstraction level. The generated properties are in the form of temporal relationships among arithmetic and logic expressions involving traditional HW description language data types (i.e., bit and logic vectors) as well as data types typically adopted in system-level models and SW programs (i.e., integer, double and string). A ranking function is also defined to classify the mined properties according to their capability of capturing meaningful design behaviours. Experimental results have shown that the approach allows generating compact properties really useful to effectively detect errors in the design implementation.

[1]  Sridhar Narayanan,et al.  IODINE: a tool to automatically infer dynamic invariants for hardware designs , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[2]  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).

[3]  Manuvir Das,et al.  Perracotta: mining temporal API rules from imperfect traces , 2006, ICSE.

[4]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[5]  Giovanni Squillero,et al.  RT-Level ITC'99 Benchmarks and First ATPG Results , 2000, IEEE Des. Test Comput..

[6]  Eran Yahav,et al.  Static Specification Mining Using Automata-Based Abstractions , 2007, IEEE Transactions on Software Engineering.

[7]  James R. Larus,et al.  Mining specifications , 2002, POPL '02.

[8]  Fabio Somenzi,et al.  Dos and don'ts of CTL state coverage estimation , 2003, DAC '03.

[9]  Ronitt Rubinfeld,et al.  On the learnability of discrete distributions , 1994, STOC '94.

[10]  Sanjit A. Seshia,et al.  Scalable specification mining for verification and diagnosis , 2010, Design Automation Conference.

[11]  Siau-Cheng Khoo,et al.  QUARK: Empirical Assessment of Automaton-based Specification Miners , 2006, 2006 13th Working Conference on Reverse Engineering.

[12]  Franco Fummi,et al.  Properties Incompleteness Evaluation by Functional Verification , 2007, IEEE Transactions on Computers.

[13]  Alexander L. Wolf,et al.  Discovering models of software processes from event-based data , 1998, TSEM.

[14]  Sandeep Kumar Specification mining in concurrent and distributed systems , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[15]  Rolf Drechsler,et al.  Automatic Generation of Complex Properties for Hardware Designs , 2008, 2008 Design, Automation and Test in Europe.

[16]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[17]  Masahiro Fujita,et al.  Dynamic property mining for embedded software , 2012, CODES+ISSS.

[18]  Steven P. Reiss,et al.  Encoding program executions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[19]  Amer Diwan,et al.  Discovering Algebraic Specifications from Java Classes , 2003, ECOOP.

[20]  Shobha Vasudevan,et al.  Word level feature discovery to enhance quality of assertion mining , 2012, 2012 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[21]  Shobha Vasudevan,et al.  Automatic generation of assertions from system level design using data mining , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[22]  E. Mark Gold,et al.  Language Identification in the Limit , 1967, Inf. Control..

[23]  Leonardo Mariani,et al.  Automatic generation of software behavioral models , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.