| A Brief Overview of Functional Verification | p. 1 |
| Costs and Risk | p. 1 |
| Verification and Time to Market | p. 2 |
| Verification and Development Costs | p. 2 |
| But any Lessons Learned? | p. 3 |
| Functional Verification in a Nutshell | p. 4 |
| Principles of Constrained Random Verification | p. 5 |
| Standardized Functional Verification | p. 6 |
| Summary | p. 7 |
| Analytical Foundation | p. 9 |
| A Note on Terminology | p. 9 |
| DUTs, DUVs, and Targets | p. 9 |
| Linear Algebra for Digital System Verification | p. 10 |
| Standard Variables | p. 12 |
| Ranges of Variables | p. 13 |
| Rules and Guidelines | p. 14 |
| Example - Rules and Guidelines | p. 14 |
| Variables of Connectivity | p. 16 |
| Example - External Connectivity | p. 17 |
| Example - Internal Connectivity | p. 19 |
| Variables of Activation | p. 21 |
| Example - Activation | p. 22 |
| Variables of Condition | p. 24 |
| Example - Conditions | p. 25 |
| Morphs | p. 27 |
| Variables of Stimulus and Response | p. 29 |
| Internal Stimuli and Responses | p. 30 |
| Autonomous Responses | p. 31 |
| Conditions and Responses | p. 31 |
| Example - Stimulus and Response | p. 32 |
| Error Imposition | p. 33 |
| Example - Errors | p. 33 |
| Generating Excitement | p. 35 |
| Special Cases | p. 35 |
| Example - Special Case | p. 37 |
| Summary | p. 37 |
| References | p. 38 |
| Exploring Functional Space | p. 39 |
| Functional Closure | p. 39 |
| Counting Function Points | p. 40 |
| Variables of Connectivity | p. 40 |
| Variables of Activation (and other Time-variant Variables) | p. 44 |
| Variables of Condition | p. 45 |
| Variables of Stimulus | p. 45 |
| Variables of Response | p. 45 |
| Variables of Error | p. 45 |
| Special Cases | p. 46 |
| An Approximate Upper Bound | p. 46 |
| Condensation in the Functional Space | p. 47 |
| Connecting the Dots | p. 50 |
| Analyzing an 8-entry Queue | p. 53 |
| Reset in the VTG | p. 59 |
| Modeling Faulty Behavior | p. 63 |
| Back to those Special Cases | p. 64 |
| A Little Graph Theory | p. 65 |
| Reaching Functional Closure | p. 68 |
| Summary | p. 70 |
| Planning and Execution | p. 71 |
| Managing Verification Projects | p. 71 |
| The Goal | p. 72 |
| Executing the Plan to Obtain Results | p. 73 |
| Preparation | p. 74 |
| Code Construction | p. 74 |
| Code Revision | p. 76 |
| Graduated Testing | p. 76 |
| Bug Fixing | p. 77 |
| Soft Prototype and Hard Prototype | p. 78 |
| The Verification Plan | p. 79 |
| Instances, Morphs, and Targets ([section] 1) | p. 81 |
| Clock Domain Crossings ([section] 1) | p. 81 |
| Verifying Changes to an Existing Device ([section] 1) | p. 83 |
| Interpretation of the Specification ([section] 1) | p. 83 |
| Instrumenting the Prototype ([section] 2) | p. 87 |
| An Ounce of Prevention ([section] 2) | p. 90 |
| Standard Results ([section] 3) | p. 91 |
| Setting Goals for Coverage and Risk ([section] 4) | p. 94 |
| Making Trade-offs ([section] 4) | p. 94 |
| Focusing Resources ([section] 4) | p. 94 |
| Architecture for Verification Software ([section] 5) | p. 95 |
| Flow for Soft Prototype ([section] 5) | p. 99 |
| Random Value Assignment ([section] 5) | p. 101 |
| General CRV Process ([section] 5) | p. 102 |
| Activation and Initialization ([section] 5) | p. 104 |
| Static vs. Dynamic Test Generation ([section] 5) | p. 108 |
| Halting Individual Tests ([section] 5) | p. 108 |
| Sanity Checking and Other Tests ([section] 5) | p. 108 |
| Gate-level Simulation ([section] 5) | p. 109 |
| Generating Production Test Vectors ([section] 5) | p. 110 |
| Change Management ([section] 6) | p. 110 |
| Organizing the Teams ([section] 7) | p. 111 |
| Failure Analysis ([section] 7) | p. 114 |
| Tracking Progress ([section] 8) | p. 115 |
| Related Documents ([section] 9) | p. 118 |
| Scope, Schedule and Resources ([section] 10) | p. 118 |
| Summary | p. 119 |
| References | p. 120 |
| Normalizing Data | p. 121 |
| Estimating Project Resources | p. 121 |
| Power and Convergence | p. 122 |
| Factors to Consider in using Convergence | p. 124 |
| Complexity of a Target | p. 126 |
| Scaling Regression using Convergence | p. 129 |
| Normalizing Cycles Counts with Complexity | p. 133 |
| Using Normalized Cycles in Risk Assessment | p. 134 |
| Bug Count as a Function of Complexity | p. 135 |
| Comparing Size and Complexity | p. 136 |
| Summary | p. 136 |
| References | p. 136 |
| Analyzing Results | p. 137 |
| Functional Coverage | p. 137 |
| Standard Results for Analysis | p. 138 |
| Statistically Sampling the Function Space | p. 138 |
| Measures of Coverage | p. 139 |
| Code Coverage | p. 140 |
| State Reachability in State Machines | p. 142 |
| Arc Transversability in State Machines | p. 143 |
| Fault Coverage | p. 143 |
| VTG Coverage | p. 144 |
| Strong Measures and Weak Measures | p. 144 |
| Standard Measures of Function Space Coverage | p. 145 |
| Specific Measures and General Measures | p. 146 |
| Specific Measures for Quadrant I | p. 148 |
| General Measures for Quadrants II, III, and IV | p. 149 |
| Multiple Clock Domains | p. 149 |
| Views of Coverage | p. 150 |
| 1-dimensional Views | p. 151 |
| Pareto Views | p. 151 |
| 2-dimensional Views | p. 153 |
| Time-based Views | p. 153 |
| Standard Views of Functional Coverage | p. 155 |
| Summary | p. 156 |
| References | p. 156 |
| Assessing Risk | p. 157 |
| Making Decisions | p. 157 |
| Some Background on Risk Assessment | p. 159 |
| Successful Functional Verification | p. 160 |
| Knowledge and Risk | p. 164 |
| Coverage and Risk | p. 166 |
| Data-driven Risk Assessment | p. 167 |
| VTG Arc Coverage | p. 168 |
| Using Q to Estimate Risk of a Bug | p. 169 |
| Bug Count as a Function of Z | p. 174 |
| Evaluating Commercial IP | p. 174 |
| Evaluating IP for Single Application | p. 176 |
| Nearest Neighbor Analysis | p. 176 |
| Summary | p. 179 |
| References | p. 181 |
| Functional Space of a Queue | p. 183 |
| Basic 8-entry Queue | p. 183 |
| Adding an Indirect Condition | p. 186 |
| Programmable High- and Low-water Marks | p. 190 |
| Size of the Functional Space for this Queue | p. 190 |
| Condensation in the Functional Space | p. 191 |
| No Other Variables? | p. 193 |
| VTGs for 8-entry Queue with Programmable HWM & LWM | p. 193 |
| Index | p. 267 |
| Table of Contents provided by Ingram. All Rights Reserved. |