2.3 Linear Algebra for Digital System Verification
2.4 Standard Variables
2.5 Ranges of Variables
2.6 Rules and Guidelines
2.6.1 Example – Rules and Guidelines
2.7 Variables of Connectivity
2.7.1 Example – External Connectivity
2.7.2 Example – Internal Connectivity
2.8 Variables of Activation
2.8.1 Example – Activation
2.9 Variables of Condition
2.9.1 Example – Conditions
2.10 Morphs
2.11 Variables of Stimulus and Response
2.11.1 Internal Stimuli and Responses
2.11.2 Autonomous Responses
2.11.3 Conditions and Responses
2.11.4 Example – Stimulus and Response
2.12 Error Imposition
2.12.1 Example – Errors
2.13 Generating Excitement
2.14 Special Cases
2.14.1 Example – Special Case
2.15 Summary
References
3. Exploring Functional Space
3.1 Functional Closure
3.2 Counting Function Points
3.2.1 Variables of Connectivity
3.2.2 Variables of Activation (and other Time-variant Variables)
3.2.3 Variables of Condition
3.2.4 Variables of Stimulus
3.2.5 Variables of Response
3.2.6 Variables of Error
3.2.7 Special Cases
3.2.8 An Approximate Upper Bound
3.3 Condensation in the Functional Space
3.4 Connecting the Dots
3.5 Analyzing an 8-entry Queue
3.6 Reset in the VTG
3.7 Modeling Faulty Behavior
3.8 Back to those Special Cases
3.9 A Little Graph Theory
3.10 Reaching Functional Closure
3.11 Summary
4. Planning and Execution
4.1 Managing Verification Projects
4.2 The Goal
4.3 Executing the Plan to Obtain Results
4.3.1 Preparation
4.3.2 Code Construction
4.3.3 Code Revision
4.3.4 Graduated Testing
4.3.5 Bug Fixing
4.4 Soft Prototype and Hard Prototype
4.5 The Verification Plan
4.6 Instances, Morphs, and Targets (§ 1)
4.7 Clock Domain Crossings (§ 1)
4.8 Verifying Changes to an Existing Device (§ 1)
4.9 Interpretation of the Specification (§ 1)
4.10 Instrumenting the Prototype (§ 2)
4.10.1 An Ounce of Prevention (§ 2)
4.11 Standard Results (§ 3)
4.12 Setting Goals for Coverage and Risk (§ 4)
4.12.1 Making Trade-offs (§ 4)
4.12.2 Focusing Resources (§ 4)
4.13 Architecture for Verification Software (§ 5)
4.13.1 Flow for Soft Prototype (§ 5)
4.13.2 Random Value Assignment (§ 5)
4.13.3 General CRV Process (§ 5)
4.13.4 Activation and Initialization (§ 5)
4.13.5 Static vs. Dynamic Test Generation (§ 5)
4.13.6 Halting Individual Tests (§ 5)
4.13.7 Sanity Checking and Other Tests (§ 5)
4.13.8 Gate-level Simulation (§ 5)
4.13.9 Generating Production Test Vectors (§ 5)
4.14 Change Management (§ 6)
4.15 Organizing the Teams (§ 7)
4.15.1 Failure Analysis (§ 7)
4.16 Tracking Progress (§ 8)
4.17 Related Documents (§ 9)
4.18 Scope, Schedule and Resources (§ 10)
4.19 Summary
References
5. Normalizing Data
5.1 Estimating Project Resources
5.2 Power and Convergence
5.3 Factors to Consider in using Convergence
5.4 Complexity of a Target
5.5 Scaling Regression using Convergence
5.6 Normalizing Cycles Counts with Complexity
5.7 Using Normalized Cycles in Risk Assessment
5.8 Bug Count as a Function of Complexity
5.9 Comparing Size and Complexity
5.10 Summary
References
6. Analyzing Results
6.1 Functional Coverage
6.2 Standard Results for Analysis
6.3 Statistically Sampling the Function Space
6.4 Measures of Coverage
6.5 Code Coverage
6.6 State Reachability in State Machines
6.7 Arc Transversability in State Machines
6.8 Fault Coverage
6.9 VTG Coverage
6.10 Strong Measures and Weak Measures
6.11 Standard Measures of Function Space Coverage
6.12 Specific Measures and General Measures
6.13 Specific Measures for Quadrant I
6.14 General Measures for Quadrants II, III, and IV
6.15 Multiple Clock Domains
6.16 Views of Coverage
6.16.1 1-dimensional Views
6.16.2 Pareto Views
6.16.3 2-dimensional Views
6.16.4 Time-based Views
6.17 Standard Views of Functional Coverage
6.18 Summary
References
7. Assessing Risk
7.1 Making Decisions
7.2 Some Background on Risk Assessment
7.3 Successful Functional Verification
7.4 Knowledge and Risk
7.5 Coverage and Risk
7.6 Data-driven Risk Assessment
7.7 VTG Arc Coverage
7.8 Using Q to Estimate Risk of a Bug
7.9 Bug Count as a Function of Z
7.10 Evaluating Commercial IP
7.11 Evaluating IP for Single Application
7.12 Nearest Neighbor Analysis
7.13 Summary
References
Appendix – Functional Space of a Queue
A.1 Basic 8-entry Queue
A.2 Adding an Indirect Condition
A.3 Programmable High- and Low-water Marks
A.4 Size of the Functional Space for this Queue
A.5 Condensation in the Functional Space
A.6 No Other Variables?
A.7 VTGs for 8-entry Queue with Programmable HWM & LWM
Index
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
Nội dung
Fig. A.5a. LWM=1 and HWM=3 196 Appendix – Functional Space of a Queue A.7 VTGs for 8-entry Queue with Programmable HWM & LWM 197 Fig. A.5b. LWM=1 and HWM=3, with condensation Fig. A.6a. LWM=1 and HWM=4 198 Appendix – Functional Space of a Queue A.7 VTGs for 8-entry Queue with Programmable HWM & LWM 199 Fig. A.6b. LWM=1 and HWM=4, with condensation 200 Appendix – Functional Space of a Queue Fig. A.7a. LWM=1 and HWM=5 A.7 VTGs for 8-entry Queue with Programmable HWM & LWM 201 Fig. A.7b. LWM=1 and HWM=5, incondensable 202 Appendix – Functional Space of a Queue Fig. A.8a. LWM=1 and HWM=6 A.7 VTGs for 8-entry Queue with Programmable HWM & LWM 203 Fig. A.8b. LWM=1 and HWM=6, with condensation 204 Appendix – Functional Space of a Queue Fig. A.9a. LWM=1 and HWM=7 A.7 VTGs for 8-entry Queue with Programmable HWM & LWM 205 Fig. A.9b. LWM=1 and HWM=7, with condensation . – Functional Space of a Queue A.7 VTGs for 8-entry Queue with Programmable HWM & LWM 197 Fig. A.5b. LWM=1 and HWM=3, with condensation Fig. A.6a. LWM=1 and HWM=4 198 Appendix – Functional. Appendix – Functional Space of a Queue Fig. A.7a. LWM=1 and HWM=5 A.7 VTGs for 8-entry Queue with Programmable HWM & LWM 201 Fig. A.7b. LWM=1 and HWM=5, incondensable 202 Appendix – Functional. Programmable HWM & LWM 203 Fig. A.8b. LWM=1 and HWM=6, with condensation 204 Appendix – Functional Space of a Queue Fig. A.9a. LWM=1 and HWM=7 A.7 VTGs for 8-entry Queue with Programmable