Professional Documents
Culture Documents
Verification of Vlsi Circuits Using Systemverilog: Vinay Reddy
Verification of Vlsi Circuits Using Systemverilog: Vinay Reddy
Verification of Vlsi Circuits Using Systemverilog: Vinay Reddy
SystemVerilog
Vinay Reddy
Department of Electronics & Communication Engineering
1
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
2
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
4 Regions
3
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
4
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
5
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
6
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
7
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
8
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
9
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
10
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
11
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
12
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
13
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
14
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
15
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
16
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
17
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
18
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
19
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
20
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
21
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
22
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
23
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
24
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
25
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
26
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
27
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
28
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
29
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
30
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
It is a Synchronous Circuit
31
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
It is a Synchronous Circuit
32
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
Note:
33
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
Verilog Styles
Dataflow
Behavioural
Structural
34
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
35
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue Case 1
Assume second always block
executes first
36
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
37
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
No issues here
38
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue Case 2
Assume first always block
executes first
39
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
40
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
41
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue Solution
42
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Proof for slide no 26,
Verilog Stratified Event Queue Guideline 1
43
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
What is RTL ?
Vinay Reddy
Department of Electronics and Communication Engineering
44
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
What is RTL ?
45
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
46
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
Successful Communication (Rule : We both have agreed once he talks I will listen
and once I talk he will listen, ie, this is our synchronization)
Karthik : Hi sir, Can I talk to you for some time if u are free now? (Generating the
data, writing the data out (Input to vinay and output from karthik))
Karthik : ……………………….
Vinay : ………………………..
47
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
48
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
49
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
Device 1
Device 2
50
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
51
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
52
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue RTL Code
53
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
54
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
55
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
56
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
57
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
58
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
59
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue Race between testbench and RTL
60
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
61
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
Hence it is compulsory to
use non blocking operator
while generating stimulus
and driving method. (Race
between the testbench
module and the Design
Module)
62
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue
Thread 1
Thread 2
Thread 3
63
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
64
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Stratified Event Queue and how to overcome the race ?
65
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
66
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
SV Stratified Event Queue
67
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
SV Stratified Event Queue
68
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
SV Stratified Event Queue
69
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
SV Stratified Event Queue
70
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Program Block
Vinay Reddy
Department of Electronics and Communication Engineering
71
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
72
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
73
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
74
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
75
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
76
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
77
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
78
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block This is how a Top module
looks in verification industry
Module top generates the clk and connects the PB and RTL Top Module
Generation of stimulus
80
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
81
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
82
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Program Block
Students to read it --
84
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
85
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Memory Model – Question
86
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : RTL Block
Verilog Memory Model – Architectural Level (Block Diagram)
87
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : RTL Block
Verilog Memory Model – Behavioural Level (RTL Code)
88
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : RTL Block
Verilog Memory Model – Behavioural Level (RTL Code)
89
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : Self Checking TB Block
Verilog Memory Model – Behavioural Level (TB Code)
90
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : Self Checking TB Block
Verilog Memory Model – Behavioural Level (TB Code)
DUT Instantiation
All the task methods are called inside the initial block
91
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : Self Checking TB Block
Verilog Memory Model – Behavioural Level (TB Code)
Task : Reset
92
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : Self Checking TB Block
Verilog Memory Model – Behavioural Level (TB Code)
93
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : Self Checking TB Block
Verilog Memory Model – Behavioural Level (TB Code)
Task : Read data (Collecting the outputs from DUT and storing it in got_arr)
94
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : Self Checking TB Block
Verilog Memory Model – Behavioural Level (TB Code)
Task : Compare (Comparing the written data and the read data)
95
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : Self Checking TB Block
Verilog Memory Model – Behavioural Level (TB Code)
96
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
97
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : TB Using PB
Verilog Memory Model – Behavioural Level (TB Code)
TOP Module
98
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : TB Using PB
Verilog Memory Model – Behavioural Level (TB Code)
Program Block
PB Declarations
99
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG Solution : TB Using PB
Verilog Memory Model – Behavioural Level (TB Code)
Program Block Read task
Initial block
Compare task
Reset task
Result task
Write task
100
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Memory Model – Behavioural Level (TB Code) In reality, the number of ports
on a system will be huge
TOP Module
What happens if we
miss match the port
connections ?
Do we get any
compile error ?
101
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Verilog Memory Model – Behavioural Level (TB Code) In reality, the number of ports
on a system will be huge
TOP Module
What happens if we
miss match the port
connections ?
Do we get any
compile error ?
102
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Interfaces
Vinay Reddy
Department of Electronics and Communication Engineering
103
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Interface
Top Module
104
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Interface
105
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Interface
106
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Interface
107
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Modports
Vinay Reddy
Department of Electronics and Communication Engineering
108
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Modports
109
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Modports
110
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Modports
111
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Modports
112
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Modports
113
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Vinay Reddy
Department of Electronics and Communication Engineering
114
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication
115
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication Arbiter RTL Code
116
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication Arbiter TB Code
117
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication Arbiter Top module Code
118
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication Example
119
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
120
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
121
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
122
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
123
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
124
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
125
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
126
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
127
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Arbiter Communication with Interfaces
128
VERIFICATION OF VLSI CIRCUITS USING
SYSTEMVERILOG
Clocking Blocks
Vinay Reddy
Department of Electronics and Communication Engineering
129
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
130
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
131
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
Clocking Block
Asynchronous reset
132
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
Outputs in TB can be
driven and inputs in TB
can be sampled 133
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
Interface Module
Program Block
134
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
135
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
4
3
2
136
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
At Time 0
• Total 5 Concurrent blocks
137
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
At Time 0
• Total 5 Concurrent blocks
It is blocked for 5 time units
- Always block in top module
- 3 Always blocks in DUT
- $Display in Program block
At Time 0
• Total 5 Concurrent blocks
It is blocked for 5 time units
- Always block in top module
- 3 Always blocks in DUT
- $Display in Program block
140
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
141
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
142
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
At time 5
It samples the new Value
X - 10
143
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
144
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
145
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
1 at #2
X at #2
146
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
Old New
1 at #2 RTL samples the old value
X - 1 at #5
not the new value
147
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
148
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
Driving stimulus
Sampling
149
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
150
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
151
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
152
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
153
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
154
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
#2
T0
1. 0, X,X,X
T1
T2
Outp1 = x
T5
10,20 155
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
#6
10,20 156
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
#5
10,20 157
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
158
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
Lets go to T5 Slot directly
1, X
Outp1 = 0
159
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
Lets go to T5 Slot directly
#1 step
Questions to ask yourself
1. At what simulation Time are we
in ?
2. Is there a clk edge available at
this point ?
3. When is the next posedge of the
1, X clk?
Outp1 = 0
160
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
161
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
162
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
163
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks
164
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
Clocking Blocks Students HW
165
VERIFICATION OF VLSI CIRCUITS USING SYSTEMVERILOG
166
THANK YOU
Vinay Reddy
Department of Electronics & Communication Engineering
vinay@pes.edu
+91 9945730244
167