SystemVerilog Functional Coverage for Newbie

Step by Step Guide from Scratch
SystemVerilog Functional Coverage for Newbie
File Size :
1.98 GB
Total length :
7h 43m



Kumar Khandagle


Last update




SystemVerilog Functional Coverage for Newbie

What you’ll learn

Usage of Functional Coverage in Verification
Implicit and Explicit Bins, Default bins
Illegal bins, Ignore bins, WIldcard bins Default bins
Covergroup, Sampling events, Reusable Covergroup
Transition bins and Cross Coverage
Usage of Functional Coverage in Verilog and SystemVerilog TB
Demonstrations of Functional Coverage with Counters, Priority Encoders, Adders, FIFO, SPI and few other RTL’s

SystemVerilog Functional Coverage for Newbie


Fundamentals of Verilog


The verification process is becoming complex and time-consuming day by day with advances in the Hardware Description Languages and IPs. HDL has added capabilities that allow the engineer to Design and write Testbench for complex systems. But verifying designer intent and deciding set of right stimuli to meet the Verification plan is not always easy with HDL. Hence System Verilog introduces assertions and Coverage to fulfill this requirement by adding independent constructs to language. SystemVerilog assertions allow us to verify Designer intent in both Temporal and Non-Temporal domains. Functional Coverage act like feedback for the stimulus we are sending to DUT so that we could reach to best stimulus for verifying the plan in the least amount of time. This course covers the fundamentals of different types of bins viz, Implicit bins, Explicit bins, Wildcard bins, Ignore bins, default bins, illegal bins with a demonstration of each of them in RTL. Fundamentals of Cover group, Reusable Covergroup, and different Sampling methods viz. event, sample() method, and User-defined Sample Method are discussed in detail. Functional Coverage gives us the ability to verify the relation between the signal by using Cross Coverage and detailed discussion on Cross coverage with different combination filtering strategies are covered in detail. Finally, Transition bins provide temporal abilities to Functional Coverage is also discussed in detail with projects demonstrating the usage of Functional Coverage in Verilog and SystemVerilog Testbench.


Section 1: Role of Functional Coverage in Chip Design

Lecture 1 Agenda

Lecture 2 Understanding Verification

Lecture 3 Verification Strategies

Lecture 4 Verification Approaches

Lecture 5 Verification Technologies P1

Lecture 6 Verification Technologies P2

Section 2: IDE and Motivation

Lecture 7 Agenda

Lecture 8 Motivation 1 : Knowing how many random values are required to meet Verification

Lecture 9 Motivation 2 : Knowing all the Transitions are Covered by SPI

Lecture 10 Motivation 3: All the possible combinations are tested during Verification

Lecture 11 How to use IDE

Lecture 12 Code

Lecture 13 Course Framework

Section 3: Getting Started

Lecture 14 Agenda

Lecture 15 Fundamentals

Lecture 16 Covergroup without event

Lecture 17 Code

Lecture 18 Covergroup with event

Lecture 19 Code

Lecture 20 Understanding Covergroup options part 1

Lecture 21 Understanding Covergroup options part 2

Lecture 22 Code

Lecture 23 Understanding weight

Lecture 24 Code

Lecture 25 Understanding option and type_option

Lecture 26 Code

Lecture 27 Turning on / off Coverage with specific conditons

Lecture 28 Code

Section 4: Getting started with bins

Lecture 29 Agenda

Lecture 30 Fundamentals of Implicit / automatic bins

Lecture 31 Demonstration

Lecture 32 Code

Lecture 33 Explicit bins P1

Lecture 34 Code

Lecture 35 Explicit bins P2

Lecture 36 Code

Lecture 37 Summary : ways to add values to explicit bins

Lecture 38 default bins

Lecture 39 Code

Lecture 40 Summary : Types of bins

Lecture 41 Used Case : 4:1 Mux

Lecture 42 Code

Lecture 43 Working with enum

Lecture 44 Code

Lecture 45 Used Case : Working with Simple FSM in Verilog

Lecture 46 Code

Lecture 47 Used Case : Working with Simple FSM in SystemVerilog

Lecture 48 Code

Section 5: bins Filtering

Lecture 49 Agenda

Lecture 50 Fundamentals

Lecture 51 bins filtering : with p1

Lecture 52 Code

Lecture 53 bins filtering : with p2

Lecture 54 Code

Lecture 55 Understanding Illegal_bins

Lecture 56 Code

Lecture 57 Understanding Ignore bins

Lecture 58 Code

Lecture 59 Advantages of ignore_bins

Lecture 60 Code

Lecture 61 Ignoring range of values from Coverage

Lecture 62 Code

Lecture 63 Ignore vs Illegal bins

Lecture 64 Code

Lecture 65 Empty bins

Lecture 66 Code

Lecture 67 Wildcard bins

Lecture 68 Code

Lecture 69 Handling presence of ‘X’ or ‘Z’ in Values

Lecture 70 Code

Lecture 71 Used Case

Lecture 72 Code

Lecture 73 FAQ 1

Section 6: Reusable Covergroup

Lecture 74 Agenda

Lecture 75 Fundamentals

Lecture 76 Pass by reference

Lecture 77 Code

Lecture 78 Pass by Value

Lecture 79 Code

Lecture 80 Things to remember while working with Generic Covergroup

Lecture 81 Code

Lecture 82 Used Case I

Lecture 83 Code

Lecture 84 Used Case II

Lecture 85 Code

Section 7: Sample Methods

Lecture 86 Agenda

Lecture 87 Fundamentals

Lecture 88 Method 1: Sampling Event with covergroup

Lecture 89 Code

Lecture 90 Method 2 : Using Pre-build sample() method

Lecture 91 Code

Lecture 92 User define Sample Method inside task block

Lecture 93 User define Sample Method inside function block

Lecture 94 Code

Lecture 95 User defined Sample method inside Property block

Lecture 96 Code

Lecture 97 Summary

Section 8: Cross Coverage

Lecture 98 Agenda

Lecture 99 Understanding Cross Coverage

Lecture 100 Demonstration P1

Lecture 101 Demonstration P2

Lecture 102 Code

Lecture 103 Filtering Combination Method 1: Creating Independent Covergroup

Lecture 104 Code

Lecture 105 Filtering Combination Method 2 : binsof(SIG) intersec {VAL}

Lecture 106 Code 1

Lecture 107 Example 2

Lecture 108 Code 2

Lecture 109 Example 3

Lecture 110 Code

Section 9: Transition bins

Lecture 111 Agenda

Lecture 112 Simple Transition Coverage P1

Lecture 113 Simple Transition Coverage P2

Lecture 114 Code

Lecture 115 Consecutive Repetition Transition

Lecture 116 Code

Lecture 117 Non-Consecutive Transition

Lecture 118 Code

Lecture 119 Summary

Section 10: Projects

Lecture 120 Agenda

Lecture 121 8:1 Mux P1

Lecture 122 8:1 Mux P2

Lecture 123 8:1 Mux P3

Lecture 124 Code

Lecture 125 Priority Encoder : Verilog TB

Lecture 126 Code

Lecture 127 FIFO P1

Lecture 128 FIFO P2

Lecture 129 FIFO P3

Lecture 130 Code

Lecture 131 Usage of Transition bins : Serial Peripheral Interface

Lecture 132 Code

Lecture 133 Counter P1

Lecture 134 Counter P2

Lecture 135 Counter P3

Lecture 136 Code

Anyone interested in adopting Functional Coverage in the Verification process to generate Stimulus meeting Verification plans

Course Information:

Udemy | English | 7h 43m | 1.98 GB
Created by: Kumar Khandagle

You Can See More Courses in the IT & Software >> Greetings from

New Courses

Scroll to Top