FUNCTIONAL VERIFICATION
COVERAGE MEASUREMENT AND
ANALYSIS
This page intentionally left blank
FUNCTIONAL VERIFICATION
COVERAGE MEASUREMENT AND
ANALYSIS
by
Andrew Piziali
Verisity Design, Inc.
KLUWER ACADEMIC PUBLISHERS
NEW YORK, BOSTON, DORDRECHT, LONDON, MOSCOW
eBook ISBN:
Print ISBN:
1-4020-8026-3
1-4020-8025-5
©2004 Kluwer Academic Publishers
New York, Boston, Dordrecht, London, Moscow
Print ©2004 Kluwer Academic Publishers
Boston
All rights reserved
No part of this eBook may be reproduced or transmitted in any form or by any means, electronic,
mechanical, recording, or otherwise, without written consent from the Publisher
Created in the United States of America
Visit Kluwer Online at:
and Kluwer's eBookstore at:
http://kluweronline.com
http://ebooks.kluweronline.com
Table of Contents
Foreword
Preface
Introduction
1.
2.
3.
4.
The Language of Coverage
Functional Verification
2.1.
2.2.
2.3.
2.4.
Design Intent Diagram
Functional Verification
Testing versus Verification
Functional Verification Process
2.4.1.
2.4.2.
2.4.3.
2.4.4.
Functional Verification Plan
Verification Environment Implementation
Device Bring-up
Device Regression
2.5.
Summary
Measuring Verification Coverage
3.1.
Coverage Metrics
Implicit Metrics
Explicit Metrics
Specification Metrics
Implementation Metrics
3.1.1.
3.1.2.
3.1.3.
3.1.4.
3.2.1.
3.2.2.
3.2.3.
3.2.4.
3.2.
Coverage Spaces
Implicit Implementation Coverage Space
Implicit Specification Coverage Space
Explicit Implementation Coverage Space
Explicit Specification Coverage Space
3.3.
Summary
Functional Coverage
4.1.
4.2.
4.3.
Coverage Modeling
Coverage Model Example
Top-Level Design
ix
xiii
1
5
15
16
17
19
19
20
26
27
28
30
31
31
32
33
33
34
34
35
35
36
37
38
39
39
40
44
4.3.1.
4.3.2.
4.4.1.
4.4.2.
4.4.3.
5.2.1.
5.2.2.
5.2.3.
5.2.4.
5.2.5.
5.2.6.
5.2.7.
5.2.8.
5.3.1.
5.3.2.
5.3.3.
5.
6.
Attribute Identification
Attribute Relationships
4.4.
Detailed Design
What to Sample
Where to Sample
When to Sample and Correlate Attributes
4.5.
4.6.
Model Implementation
Related Functional Coverage
4.6.1.
4.6.2.
4.6.3.
Finite State Machine Coverage
Temporal Coverage
Static Verification Coverage
4.7.
Summary
Code Coverage
5.1.
5.2.
Instance and Module Coverage
Code Coverage Metrics
Line Coverage
Statement Coverage
Branch Coverage
Condition Coverage
Event Coverage
Toggle Coverage
Finite State Machine Coverage
Controlled and Observed Coverage
5.3.
Use Model
Instrument Code
Record Metrics
Analyze Measurements
5.4.
Summary
Assertion Coverage
6.1.
6.2.
6.3.
6.4.
6.5.
What Are Assertions?
Measuring Assertion Coverage
Open Verification Library Coverage
Static Assertion Coverage
Analyzing Assertion Coverage
6.5.1.
6.5.2.
Checker Assertions
Coverage Assertions
6.6.
Summary
vi
Functional Verification Coverage Measurement and Analysis
45
50
61
62
65
66
67
75
75
76
77
78
79
79
80
80
81
82
84
84
85
85
88
89
89
90
90
95
97
97
102
103
104
104
105
106
107
7. Coverage-Driven Verification
7.1.
7.2.
Objections to Coverage-Driven Verification
Stimulus Generation
7.2.1.
7.2.2.
Generation Constraints
Coverage-Directed Generation
7.3.
7.4.
Response Checking
Coverage Measurement
7.4.1.
7.4.2.
7.4.3.
7.4.4.
7.5.1.
7.5.2.
7.5.3.
Functional Coverage
Code Coverage
Assertion Coverage
Maximizing Verification Efficiency
7.5.
Coverage Analysis
Generation Feedback
Coverage Model Feedback
Hole Analysis
7.6.
Summary
8.
Improving Coverage Fidelity With Hybrid Models
8.1.
8.2.
8.3.
8.4.
Sample Hybrid Coverage Model
Coverage Overlap
Static Verification Coverage
Summary
Appendix A: e Language BNF
Index
109
110
112
113
115
120
122
123
124
126
127
129
129
130
131
136
139
140
147
149
150
151
193
“Table of Contents”
vii