SystemVerilog Assertions SVA for Newbie
What you’ll learn
Insights of System Verilog Assertions according to LRM 1800 2017
Insights of Boolean, Sequence and Property Operators
Power of the Concurrent and Immediate assertions
Insights of System Tasks and Sampled Edge functions
Usage of the Local Variables in Concurrent assertions
Application of Immediate assertions to digital systems
Application of Concurrent assertions to digital systems
Application of the assertion in FSM
Usage of the assertion in SystemVerilog TB
Requirements
Fundamental understanding of Verilog
Description
Nowadays, Incorporating the Assertions in the Verification of the design is common to verify RTL behavior against the design specification. Independent of the Hardware Verification Language( HVL ) viz. Verilog, SystemVerilog, UVM used for performing verification of the RTL, the addition of the assertions inside the Verification code helps to quickly trace bugs. The primary advantage of using SV assertion over Verilog-based behavior check is a simplistic implementation of the complex sequence that can consume a good amount of time and effort in Verilog-based codes. SystemVerilog assertion has a limited set of operators so learning them is not difficult but choosing a specific operator to meet design specifications comes with years of experience. In this course, We will go through series of examples to build a foundation on choosing a correct assertion strategy to verify the RTL Behavior. The assertion comes in three flavors viz. Immediate Assertion, Deferred Immediate assertion, Final deferred immediate assertion, and Concurrent Assertion. An assertion is a code responsible for verifying the behavior of the design. Full Verification of the design essentially includes verification in Temporal as well as non-temporal domains. SV Immediate and Deferred assertions allow us to verify the functionality of the design in the Non-Temporal region and Concurrent assertion allows us to verify the design in the Temporal region.
Overview
Section 1: Introduction to the SVA Power and IDE Usage, Course
Lecture 1 Course Framework
Lecture 2 Agenda
Lecture 3 How to use IDE
Lecture 4 Code
Lecture 5 Verilog vs SVA
Lecture 6 Power of SVA P1
Lecture 7 Code
Lecture 8 Power of SVA P2
Lecture 9 Code
Lecture 10 Power of SVA P3
Lecture 11 Code
Lecture 12 Power of SVA p4
Lecture 13 Code
Lecture 14 Behavior of the Assertion statements in Synthesizer
Lecture 15 Code
Section 2: Immediate assertions
Lecture 16 Agenda
Lecture 17 Journey of Assertions
Lecture 18 Different Simulation Regions and Glitches
Lecture 19 Demonstration
Lecture 20 Code
Lecture 21 Format of different assertions types
Lecture 22 Rules for Immediate assertions
Lecture 23 Usage of Immediate assertion in Combinational circuit
Lecture 24 Code
Lecture 25 Usage of Immediate assertion in Sequential circuit
Lecture 26 Code
Lecture 27 Disabling assertions P1 : Collective Disable
Lecture 28 Code
Lecture 29 Disabling assertions P2 : Selective Disable
Lecture 30 Code
Lecture 31 FAQ : Q1
Section 3: Getting Started with Concurrent Assertion
Lecture 32 Agenda
Lecture 33 Layers in Concurrent Assertions
Lecture 34 Allowed operators in each layer
Lecture 35 Format of Concurrent assertion
Lecture 36 Single or Multiple Evaluation of Property
Lecture 37 Demonstration
Lecture 38 Code
Lecture 39 Understanding Clock edges
Lecture 40 Code
Lecture 41 Default Clocking
Lecture 42 Code
Lecture 43 Disabling Concurrent assertion
Lecture 44 Code
Section 4: Implication Operators
Lecture 45 Agenda
Lecture 46 Implication Operators Fundamentals
Lecture 47 Overlapping Implication Operator Demo P1
Lecture 48 Overlapping Implication Operator Demo P2
Lecture 49 Code
Lecture 50 Filtering Vacuous Success
Lecture 51 Code
Lecture 52 Non-Overlapping Implication Operator Demo P1
Lecture 53 Non-Overlapping Implication Operator Demo P2
Lecture 54 Code
Lecture 55 Property and Sequence with arguments
Lecture 56 Code
Section 5: System Task Part 1
Lecture 57 Agenda
Lecture 58 Use of $sampled
Lecture 59 Code
Lecture 60 Understanding $rose
Lecture 61 $rose with single bit signal
Lecture 62 Code
Lecture 63 $rose with multi-bit signal
Lecture 64 Code
Lecture 65 Specifying clock for the sample function
Lecture 66 Understanding $fell
Lecture 67 $fell with Single bit signal
Lecture 68 Code
Lecture 69 $fell with Single bit and Multibit Signal
Lecture 70 Code
Lecture 71 Understanding $past P1
Lecture 72 Understanding $past P2
Lecture 73 Demonstration
Lecture 74 Demonstration P2
Lecture 75 Code
Lecture 76 Typical Used Cases
Lecture 77 Demonstration of few used cases
Lecture 78 Code
Section 6: System Task Part 2
Lecture 79 Agenda
Lecture 80 $changed + $stable
Lecture 81 Code
Lecture 82 $onehot + $onehot0
Lecture 83 Code
Lecture 84 $onecold
Lecture 85 Code
Lecture 86 $isunknown
Lecture 87 Code
Lecture 88 $countbits
Lecture 89 Code
Lecture 90 $countones
Lecture 91 Code
Lecture 92 Summary
Lecture 93 Used Cases
Lecture 94 Code
Section 7: Sequence Operators
Lecture 95 Agenda
Lecture 96 Getting Started with delay Operator ##
Lecture 97 Constant Delay
Lecture 98 Code
Lecture 99 Variable delay
Lecture 100 Code
Lecture 101 Unbounded Delay
Lecture 102 Code
Lecture 103 Summary
Lecture 104 Repetition Operators
Lecture 105 Consecutive Repetition Operator with constant count
Lecture 106 Consecutive Repetition Operator with range
Lecture 107 Demonstration
Lecture 108 Code
Lecture 109 Consectuive Repetition Operator with Unbounded range
Lecture 110 Used cases
Lecture 111 Code
Lecture 112 Non-Consectuive Repetition Operator with constant count
Lecture 113 Code
Lecture 114 Non-Consecutive Repetition Operator with range
Lecture 115 Code
Lecture 116 Summary
Lecture 117 GOTO VS Non-Consecutive Insights
Lecture 118 Demonstration
Lecture 119 Code
Lecture 120 Used Cases
Section 8: Working with Multiple Sequences
Lecture 121 Agenda
Lecture 122 Fundamentals of Boolean Operators
Lecture 123 Usage of AND operator
Lecture 124 Code
Lecture 125 Usage of OR operator
Lecture 126 Code
Lecture 127 Used Case
Lecture 128 Code
Lecture 129 Matching Operators
Lecture 130 Usage of throughout
Lecture 131 Code
Lecture 132 Within operator P1
Lecture 133 Within operator P2
Lecture 134 Code
Lecture 135 Intersect Operator
Lecture 136 Code
Lecture 137 Used Cases
Lecture 138 Demonstration I
Lecture 139 Code
Lecture 140 Demonstration II
Lecture 141 Code
Lecture 142 Demonstration III
Lecture 143 Code
Section 9: Linear Temporal Logic Operators
Lecture 144 Agenda
Lecture 145 Getting started with eventually
Lecture 146 Common Usage of eventually
Lecture 147 Strong and weak form of eventually
Lecture 148 Success and Failure of eventually
Lecture 149 Demonstration of eventually
Lecture 150 Strong and Weak demonstration
Lecture 151 Code
Lecture 152 Code
Lecture 153 Summary
Lecture 154 nexttime
Lecture 155 Code
Lecture 156 until
Lecture 157 Understanding Success and Failure
Lecture 158 Demonstration
Lecture 159 Code
Lecture 160 Strong and Weak nature of until
Lecture 161 Code
Lecture 162 Followed by Operator
Lecture 163 Demonstration
Lecture 164 Code
Section 10: Local Variables
Lecture 165 Agenda
Lecture 166 Fundamentals of Local Variables
Lecture 167 Behavior of Local variable with threads P1
Lecture 168 Behavior of Local variable with threads P2
Lecture 169 Code
Lecture 170 Behavior of Local variable with threads P3
Lecture 171 Code
Lecture 172 Used Case I
Lecture 173 Code
Lecture 174 Used Case II
Lecture 175 Code
Lecture 176 Used Case III
Lecture 177 Code
Lecture 178 Used Case IV
Lecture 179 Code
Lecture 180 Used Case V
Lecture 181 Code
Section 11: Common Examples
Lecture 182 Agenda
Lecture 183 Boolean Operator
Lecture 184 Implication Operators
Lecture 185 Delay Operator
Lecture 186 Delay operator with Range
Lecture 187 Unbounded Delay
Lecture 188 Repetition Operator
Section 12: Projects
Lecture 189 Assertions in FSM P1
Lecture 190 Assertions in FSM P2
Lecture 191 Design Code
Lecture 192 Testbench Code
Lecture 193 Understanding bind
Lecture 194 Code
Lecture 195 Assertions in Counter P1
Lecture 196 Assertions in Counter P2
Lecture 197 Design Code
Lecture 198 Testbench Code
Lecture 199 Assertions in FIFO P1
Lecture 200 Assertions in FIFO P2
Lecture 201 Design Code
Lecture 202 Testbench Code
Lecture 203 Assertions in Systemverilog based testbench environment
Lecture 204 Design Code
Lecture 205 Testbench Code
Section 13: Quiz
Section 14: Learning Path ahead
Lecture 206 Understanding SystemVerilog Functional Coverage
Anyone Interested in pursuing career in VLSI or RTL Verification domain
Course Information:
Udemy | English | 10h 7m | 3.06 GB
Created by: Kumar Khandagle
You Can See More Courses in the IT & Software >> Greetings from CourseDown.com