A significant amount of time during simulation-based hardware design verification is spent analysing coverage reports in order to identify which uncovered cases are coverable and which are not, ie indicating areas of dead code. This dead-code analysis is typically left until the code is stable because changes to the code can mean having to start the analysis again. Some formal tools offer a push-button functionality allowing this process to be automated to some extent. This paper extends this capability of formal tools. A method is presented that automatically extracts candidates for dead code analysis from coverage reports, turns these into formal assertions and uses a formal property checker to determine whether or not the code can be reached. The core principle of the method is based on temporal induction. The method is fully automatic and generic in that it can be implemented with any state-of-the-art formal property checker; it also does not need code stability. The major benefits of employing this method in practice are a saving of engineering effort and earlier coverage closure which can avoid late discovery of bugs and schedule slips.
[1]
Peter A. Lindsay,et al.
FME 2002:Formal Methods—Getting IT Right
,
2002,
Lecture Notes in Computer Science.
[2]
Edmund M. Clarke,et al.
Model Checking
,
1999,
Handbook of Automated Reasoning.
[3]
J Hayhurst Kelly,et al.
A Practical Tutorial on Modified Condition/Decision Coverage
,
2001
.
[4]
Yaron Wolfsthal,et al.
Coverability Analysis Using Symbolic Model Checking
,
2001,
CHARME.
[5]
Baruch Sterin,et al.
Improvements in Coverability Analysis
,
2002,
FME.
[6]
Andrew Piziali,et al.
Functional verification coverage measurement and analysis
,
2004
.
[7]
George J. Milne,et al.
Correct Hardware Design and Verification Methods
,
2003,
Lecture Notes in Computer Science.