Senior verification expert Liu Bin (Lu Sang) gives you a comprehensive introduction to chip verification, from verification theory to SystemVerilog language and UVM verification methodology, and then to advanced verification project topics. This comprehensive and practical book on verification theory and programming provides a technical guide from the shallower to the deeper level for verification engineers at different levels in the field of chip verification: learn verification theory to understand verification processes and standards, learn SystemVerilog language and UVM methodology to master the current mainstream dynamic verification technology, and understand advanced verification topics for reference when encountering related problems in the future. Chapter 1 Overview of Chip Verification1.1 Introduction to Functional Verification1.2 The Situation of Verification1.2.1 The Development of Verification Language1.2.2 Challenges Faced by Verification1.3 Five Dimensions of Verification Capability1.3.1 Completeness1.3.2 Reusability1.3.3 Efficiency1.3.4 High Output1.3.5 Code Performance1.4 Verification Tasks and Goals1.4.1 On-Time, Quality, and Low Cost1.4.2 Chip R&D and Customer Feedback1.4.3 Defect Growth Curve1.5 Verification Cycle1.5.1 Checkpoints in the Verification Cycle1.5.2 Functional Detail1.5.3 Developing a Verification Plan1.5.4 Developing a Verification Environment1.5.5 Debugging Environment and HDL Files1.5.6 Regression Testing1.5.7 Chip Production1.5.8 Post-Silicon System Testing1.5.9 Escape Analysis1.6 Conclusion of this ChapterChapter 2 Verification Strategies2.1 Design process2.1.1 Requirements of TLM model and ESL development2.1.2 Traditional system design process2.1.3 ESL system design process2.1.4 Comparison of language abstraction levels2.1.5 Traditional system integration perspective2.1.6 ESL system integration perspective2.2 Verification levels2.2.1 Module level2.2.2 Subsystem level2.2.3 Chip system level2.2.4 Post-silicon system level2.3 Verification transparency2.3.1 Black box verification2.3.2 White box verification2.3.3 Gray box verification2.4 Principles of motivation2.4.1 Interface type2.4.2 Sequence granularity2.4.3 Controllability2.4.4 Component independence2.4.5 Combination freedom2.5 Inspection method2.6 Integrated environment2.6.1 Verification platform2.6.2 Design under verification2.6.3 Operating environment2.6.4 Verification management2.7 Conclusion of this chapterChapter 3 Verification methods3.1 Dynamic simulation3.1.1 Directed testing3.1.2 Random testing3.1.3 Coverage-driven random verification3.1.4 TLM-based random verification3.1.5 Assertion checking3.2 Static checking3.2.1 Syntax checking3.2.2 Semantic checking3.2.3 Cross-clock domain checking3.2.4 Formal verification3.3 Development environment3.3.1 Vim development environment3.3.2 Commercial SV development environment - DVT 3.4 Virtual model3.5 Hardware acceleration3.6 Performance verification3.6.1 Power and energy3.6.2 Static power consumption and dynamic power consumption3.6.3 Energy-saving technology3.6.4 Performance verification3.6.5 Power consumption prediction and optimization3.7 Performance verification3.7.1 Setting goals3.7.2 Test environment3.7.3 Verification methods3.8 Trend outlook3.8.1 Horizontal leap between technologies3.8.2 Vertical reuse between levels3.9 Conclusion of this chapterChapter 4 Verification plan4.1 Plan overview4.2 Plan content4.2.1 Technical perspective4.2.2 Project perspective4.3 Plan implementation4.3.1 Invite relevant personnel4.3.2 Hold a meeting to discuss4.3.3 Determine test scenarios4.3.4 Create a verification environment4.4 Plan progress evaluation4.4.1 Regression test pass rate4.4.2 Code coverage4.4.3 Assertion coverage4.4.4 Functional coverage4.4.5 Defect curve4.5 Conclusion of this chapterChapter 5 Verification management5.1 Checklist for verification cycle5.2 Three elements of verification management5.2.1 Time management5.2.2 Human resource arrangement5.2.3 Task splitting and reorganization5.3 Verification convergence5.3.1 Regression process5.3.2 Regression quality5.3.3 Regression efficiency5.4 5.5 Team building 5.6 Verification technician training 5.6.1 Full silicon capability 5.6.2 No assumptions 5.6.3 Concentration 5.6.4 Logic 5.6.5 “War drum halo” 5.6.6 Reduce complexity 5.7 Verification specialization 5.7.1 Bias against verification 5.7.2 The current situation of verification 5.7.3 Verification standardization 5.7.4 Accumulation and breakthrough of verification experience 5.8 Conclusion of this chapter Chapter 6 Verification structure 6.1 Test platform overview 6.2 Hardware design description 6.2.1 Functional description 6.2.2 Design structure 6.2.3 Interface description 6.2.4 Interface timing 6.2.5 Register description 6.3 Stimulus generator 6.4 Monitor 6.5 Comparator 6.6 Verification structure 6.6.1 Project background 6.6.2 MCDF verification schedule 6.7 Chapter ConclusionChapter 7 SV Environment Construction7.1 Data Types7.2 Module Definition and Instantiation7.2.1 Module Definition7.2.2 Module Instantiation7.2.3 Parameter Usage7.2.4 Parameter Modification7.2.5 Macro Definition7.3 Interface7.3.1 Interface Connection Method 17.3.2 Interface Connection Method 27.3.3 Other Applications of Interface7.4 Programs and Modules7.4.1 Verilog Design Competition Issue7.4.2 SV Simulation Scheduling Mechanism7.4.3 Module Data Sampling Example 17.4.4 Module Data Sampling Example 27.4.5 Program Data Sampling Example7.5 Test Beginning and Ending7.5.1 System Function Call Method End7.5.2 Program Implicit End7.5.3 Program Explicit End7.6 Chapter ConclusionChapter 8 SV Component Implementation8.1 Stimulus Generator Driving8.1.1 Stimulus Driving Method8.1.2 Tasks and Functions8.1.3 Data life cycle 8.1.4 Interface driver 8.1.5 Test vector generation 8.1.6 Simulation end control 8.2 Stimulus generator encapsulation 8.2.1 Class encapsulation 8.2.2 Class inheritance 8.2.3 Member overwriting 8.2.4 Virtual method 8.2.5 Handle use 8.2.6 Object replication 8.2.7 Object recycling 8.3 Stimulus generator randomization 8.3.1 Types of randomizable stimuli 8.3.2 Constraint solver 8.3.3 Random variables and arrays 8.3.4 Constraint block 8.3.5 Randomization control 8.3.6 Stability of randomization 8.3.7 Randomized flow control 8.3.8 Randomized system function 8.4 Monitor sampling 8.4.1 Introduction to interface clocking 8.4.2 Synchronization using clocking events 8.4.3 Sampling data using clocking 8.4.4 Generating stimulus using clocking 8.4.5 Monitor sampling function 8.5 Communication between components 8.5.1 Notification requirements 8.5.2 Resource sharing requirements 8.5.3 Data communication requirements 8.5.4 Process synchronization requirements 8.5.5 Comparison and application of process communication elements 8.6 Comparators and reference models 8.6.1 Abnormality checks 8.6.2 Routine checks 8.6.3 Timing checks 8.6.4 Component connections 8.7 Reporting specifications for test environments 8.7.1 Information reporting libraries 8.7.2 Information library usage scenarios 8.8 Chapter conclusion Chapter 9 SV system integration 9.1 The meaning of packages 9.2 Verification environment assembly 9.2.1 How to encapsulate verification environments 9.2.2 Considerations for reuse of module environments 9.2.3 Considerations for reuse of comparators 9.2.4 Implementation of top-level environments 9.3 Test scenario generation 9.3.1 Dynamic control of stimuli 9.3.2 Scheduling multiple stimuli 9.3.3 Fine-grained control of threads 9.3.4 Dynamic test vectors 9.3.5 Concurrency Control of Vector Colonies9.4 Flexible Configuration9.4.1 The Two Sides of Agent9.4.2 Configuration Modes of Each Component9.4.3 Integration Order of Verification Structure9.5 A Preliminary Discussion on Environment Reusability9.5.1 Reusability Strategy9.5.2 Application of Horizontal Reusability9.5.3 Application of Vertical Reusability9.6 Conclusion of This ChapterChapter 10 UVM World View10.1 The Verification Era We Are In10.2 Class Library Map10.3 Factory Mechanism10.3.1 The Significance of Factory10.3.2 Convenience Provided by Factory10.3.3 Overriding Method10.3.4 Code Requirements to Ensure Correct Coverage10.4 Core Base Class10.4.1 Domain Automation10.4.2 Copying10.4.3 Comparison10.4.4 Printing10.4.5 Packing and Unpacking10.5 Phase Mechanism10.5.1 Phase Execution Mechanism10.5.2 How to start UVM simulation 10.5.3 How to end UVM simulation 10.6 config mechanism 10.6.1 interface transfer 10.6.2 variable setting 10.6.3 config object transfer 10.6.4 config mechanism 10.6.5 other configuration methods 10.6.6 use of uvm_resource_db 10.7 message management 10.7.1 message method 10.7.2 message processing 10.7.3 message mechanism 10.8 discussion on the advantages and disadvantages of macros 10.9 conclusion of this chapter Chapter 11 UVM structure 11.1 component family 11.1.1 uvm_driver 11.1.2 uvm_monitor 11.1.3 uvm_sequencer 11.1.4 uvm_agent 11.1.5 uvm_scoreboard 11.1.6 uvm_env 11.1.7 uvm_test 11.2 How many steps are there to put the DUT into the TB? 11.2.1 MCDF top-level verification environment solution 1 11.2.2 MCDF top-level verification environment solution 2 11.3 The inner workings of the construction environment 11.3.1 Four elements of environment construction 11.3.2 Classification of environmental elements 11.4 Conclusion of this chapter Chapter 12 UVM Communication 12.1 Introduction to TLM Communication 12.2 One-way, two-way and multi-way communication 12.2.1 One-way communication 12.2.2 Two-way communication 12.2.3 Multi-way communication 12.3 Communication pipeline application 12.3.1 TLM FIFO 12.3.2 Analysis Port 12.3.3 Analysis TLM FIFO 12.3.4 Request & Response communication pipeline 12.4 TLM2 communication 12.4.1 Interface implementation 12.4.2 Transmitting data 12.4.3 Time stamp 12.4.4 Typical use 12.5 Synchronous Communication Elements 12.5.1 uvm_event Application 12.5.2 uvm_barrier Application 12.5.3 uvm_callback Application 12.6 Chapter Conclusion Chapter 13 UVM Sequence 13.1 Getting Started 13.2 Sequence and Item 13.2.1 Sequence Item 13.2.2 Flat Sequence 13.2.3 Hierarchical Sequence 13.3 Sequencer and Driver 13.3.1 TLM Ports and Methods of Both Parties 13.3.2 Transaction Transmission
You Might Like
Recommended ContentMore
Open source project More
Popular Components
Searched by Users
Just Take a LookMore
Trending Downloads
Trending ArticlesMore