Advanced Verifivstion Topics Index
Advanced Verifivstion Topics Index
Bishnupriya Bhattacharya John Decker Gary Hall Nick Heaton Yaron Kashai Neyaz Khan Zeev Kirshenbaum Efrat Shneydor
Contents
Preface 1 Introduction to Metric-Driven Verification
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 Introduction Failing to Plan = Planning to Fail Metric-Driven Verification Building Strong Testbench Foundations Simulation Isn't the Only Way Low Power isn't Just the Designer's Problem Reuse Isn't Just About Testbench Components Does Speed Matter? What About Scalability? Is Metric-Driven Verification Just for RTL Hardware? How Do I Get Up to Speed with All this New Stuff? Summary
xv 1
1 2 4 5 7 8 9 10 11 12 14 14
15
15 16 20 20 22 23 23 24 24 25
2.4
2.5
iii
Contents
2.6
Collecting Coverage 2.6.1 2.6.2 2.6.3 Direct and Computed Coverage Collection Deciding on Coverage Ranges Trading Off Speed and Visibility Dealing with Configurations and Settings Generating and Driving Digital Control Comparing Two Values Triggering a Check on Control Changes Measuring Signal Timing Comparing a Value to a Threshold Checking Frequency Response Checking Input Conditions Verifying Local Invariants Limitations on Assertion Checking of Analog Properties Dealing with Different Modeling Styles Driving Clocks Resets Power-Up and Power-Down Sequences
26 27 30 30 32 32 33 38 38 40 43 45 47 49 49 50 50 50 51 51 51 51 53 54 54 55 56 57 59 61 62 63 63 64 65 65 67 69 69 70
2.7
2.8
2.9
2.10
2.11 2.12
Analog Model Creation and Validation Integrating the Test Environment 2.12.1 2.12.2 2.12.3 2.12.4 2.12.5 2.12.6 2.12.7 Connecting the Testbench Connecting to Electrical Nodes System-Level Parameters and Timing Supporting Several Model Styles In A Single Testbench Interfacing Between Real and Electrical Signals Creating Run Scripts and Other Support Files Recommended Directory Structure Implementation of Coverage for Analog Updating the Verification Plan With Implementation Data Single Simulation Runs RegressionsRunning Multiple Test Cases Mix-and-Match SoC-Level Simulation Updating the SoC-Level Test Plan
2.13
2.14
2.15
iv
Contents
2.16
2.17
2.15.3 Integrating Into the SoC-Level Testbench UVM-MS Universal Verification Blocks 2.16.1 Wire Verification Component 2.16.2 Simple register UVC 2.16.3 Analog to Digital Converter (ADC) UVC 2.16.4 Digital to Analog Converter (DAC) UVC 2.16.5 Level Crossing Monitor 2.16.6 Ramp Generator and Monitor Summary
70 72 72 78 82 84 86 89 94
97
97 98 99 100 102 102 102 103 104 105 Ill Ill 113 113 113 113 117 118 119 119 121 121 122 124 126 128 128 128 129
3.2
3.3 3.4
3.5
3.6
Contents
3.7
3.8
3.6.3 Requirements for Selecting a Simulator and Emulator 3.6.4 Advanced Debug and Visualizations 3.6.5 Automated Assertions and Coverage 3.6.6 Legal Power Modes and Transitions 3.6.7 Automatic Checking of Power Control Sequences 3.6.8 Verification Plan Generated from Power Intent Common Low-Power Issues 3.7.1 Power-Control Issues 3.7.2 Domain Interfaces 3.7.3 System-Level Control Summary
130 132 135 135 135 136 138 138 139 140 141
Multi-Language UVM
4.1 4.2 Overview of UVM Multi-Language UVC Requirements 4.2.1 Providing an Appropriate Configuration 4.2.2 Exporting Collected Information to Higher Levels 4.2.3 Providing Support for Driving Sequences from Other Languages 4.2.4 Providing the Foundation for Debugging of All Components 4.2.5 Optional Interfaces and Capabilities Fundamentals of Connecting e and SystemVerilog 4.3.1 Type Conversion 4.3.2 Function Calls Across Languages 4.3.3 Passing Events Across Languages Configuring Messaging e Over Class-Based SystemVerilog 4.5.1 Environment Architecture 4.5.2 Configuration 4.5.3 Generating and Injecting Stimuli 4.5.4 Monitoring and Checking SystemVerilog Class-Based over e 4.6.1 Simulation Flow in Mixed e and SystemVerilog Environments 4.6.2 Contacting Cadence for Further Information UVM SystemC Methodology in Multi-Language Environments 4.7.1 Introduction to UVM SystemC 4.7.2 Using the Library Features for Modeling and Verification 4.7.3 Connecting between Languages using TLM Ports 4.7.4 Example of SC Reference Model used in SV Verification Environment 4.7.5 Reusing SystemC Verification Components Summary
143
143 146 146 146 146 146 147 147 147 150 153 154 154 155 156 160 168 171 173 173 174 174 175 182 188 191 193
4.3
4.4 4.5
4.6
4.7
4.8
vi
Contents
5.3
5.4
5.5
5.6
5.7 5.8
Summary
vii