EDA365电子工程师网

标题: SystemVerilog for Verification [打印本页]

作者: xuzwg    时间: 2016-5-4 16:14
标题: SystemVerilog for Verification
2 y& p% \# J; a$ N7 [+ o
SystemVerilog for Verification:, N* u, `$ N3 _: u7 }7 ]5 N
A Guide to Learning the Testbench Language Features9 l" V1 E. s) J; k+ c4 G  i. e# _! s
1. VERIFICATION GUIDELINES 1
' c( K6 a5 I1 x5 C2 ]: @$ W1.1 Introduction 1! C' Z* \, n; R  {5 s6 B# j# m
1.2 The Verification Process 2
1 j1 h* }1 v9 S) d$ Q; R: D7 ?1.3 The Verification Plan 4
( c+ k9 R8 K( \$ q5 T6 j! S1.4 The Verification Methodology Manual 4/ \' H3 Z2 n+ q! W' ^, Z
1.5 Basic Testbench Functionality 5" D2 N5 }  y! w/ u
1.6 Directed Testing 5
) a3 Z6 i! Z& m1.7 Methodology Basics 74 h* b$ E% R2 J2 `! L
1.8 Constrained-Random Stimulus 85 I# Z  d9 l/ P/ c- f2 r4 T
1.9 What Should You Randomize? 10: k" n: N! O; e
1.10 Functional Coverage 133 W3 o# H# V9 U. ?8 u  v. i9 R
1.11 Testbench Components 15
6 }: T1 _1 Z# Z1.12 Layered Testbench 16
' C. N. N& B* \# v# S$ @1.13 Building a Layered Testbench 22
- q6 E* w$ G0 q) Z1.14 Simulation Environment Phases 23
3 D1 h3 ]5 l9 Q2 {0 \! R, e5 D5 g1.15 Maximum Code Reuse 24
8 R( K5 ]- M9 r6 \8 A9 @( P- N% c1.16 Testbench Performance 24
( a5 [! T1 A/ F6 c& M" T1.17 Conclusion 25
9 g: s5 |! d* q6 _2. DATA TYPES 272 h# ?( F7 B9 ~
2.1 Introduction 27  n6 i9 \; Q$ I$ \3 M( a
2.2 Built-in Data Types 27
7 X# e: b1 U* @" z0 U# eviii SystemVerilog for Verification
4 q& ~( L1 K, n" E2.3 Fixed-Size Arrays 29% y4 s, T2 z8 U6 k# j
2.4 Dynamic Arrays 34
5 @: s% ^/ S/ f2 |( b: |  Q! h2.5 Queues 362 Y* w# E% d4 q4 K5 k0 N
2.6 Associative Arrays 378 ^0 M( x, L9 S
2.7 Linked Lists 392 G  n) {0 C  m/ Q
2.8 Array Methods 40
! F  Z1 C1 Z. z% t  x- C2.9 Choosing a Storage Type 422 V; L, y4 @5 T
2.10 Creating New Types with typedef 45
- N# u) _" X7 z3 Q& i8 z& Y2.11 Creating User-Defined Structures 46
* a. p) ]/ f$ n. j2.12 Enumerated Types 47
' s5 p  `* X4 S# U( X2.13 Constants 51
% H2 _1 d* d! `2 K+ s& B. F2.14 Strings 51/ }# d5 e6 W% K6 h
2.15 Expression Width 52
$ H, c; p, V% J. E! a& ^, \2.16 Net Types 53; Q7 y9 T- g) s% E
2.17 Conclusion 53( ~. [- D" O4 m) X( j  k+ x
3. PROCEDURAL STATEMENTS AND ROUTINES 55
: e5 T3 s5 e6 K$ F1 G3.1 Introduction 55
6 C' q" f8 J' C3 D# e! e! d3.2 Procedural Statements 55& D6 {& ~* ]. r
3.3 Tasks, Functions, and Void Functions 56
7 H2 J1 i/ F2 }3 S3.4 Task and Function Overview 57
: E3 G0 W" a/ r) Y3.5 Routine Arguments 57' k, D/ M# [5 ~
3.6 Returning from a Routine 628 X  i) U. A; i
3.7 Local Data Storage 62
  ~- X# r# q( W! h! C3.8 Time Values 64
' R, L; J& [7 G! G' ~3.9 Conclusion 65
& i) }+ u6 o) X3 X9 \0 R$ F4. BASIC OOP 67* S( _! i( i, j: P
4.1 Introduction 67
) K$ i( P2 M$ _4.2 Think of Nouns, not Verbs 67
" p) W# K( c! T+ b3 {5 M4.3 Your First Class 68
2 x$ a7 A9 z7 i4.4 Where to Define a Class 69, V+ B' V7 X5 \
4.5 OOP Terminology 69
+ T4 ]! T6 G2 x2 [* P% ?4.6 Creating New Objects 70  d3 ?9 D  o# i& s5 G/ Z
4.7 Object Deallocation 74
7 p3 b+ O  \3 R* i) F+ ]5 z1 }4.8 Using Objects 76
) v3 B/ C0 _  |% \7 w+ M4.9 Static Variables vs. Global Variables 76
+ \5 \- f! S) m0 _: j1 G4.10 Class Routines 78
2 {" g' H4 O" c3 F) L4.11 Defining Routines Outside of the Class 793 w  v( Y! L0 d! A
4.12 Scoping Rules 81
2 p4 m5 `6 K/ g' J5 S4.13 Using One Class Inside Another 85+ J  T# d9 Q0 i  O, R$ X
4.14 Understanding Dynamic Objects 87
3 G/ v3 l: a& [& s4 V4.15 Copying Objects 91: L4 X' [8 m! T, U  V" u* C; K
4.16 Public vs. Private 95
+ v( ?- Q( Y# J4 w' B- n1 QContents ix5 E! [% e8 U# c: ]" X
4.17 Straying Off Course 96
) V6 V4 f; H$ |! Y, i4.18 Building a Testbench 96
! C- R. x. D  M. ~$ M* F4 n$ i4.19 Conclusion 97
6 o! p) T1 V; A4 Y+ N2 v5. CONNECTING THE TESTBENCH AND DESIGN 99
2 ~9 s+ M7 B" @( s) @& R6 B5.1 Introduction 99% z, E& ?8 a) ]# N
5.2 Separating the Testbench and Design 99
1 T% Y! H6 l9 H5 T5 ^5.3 The Interface Construct 102
6 B: q  ~2 g9 \' b3 U  n: }5.4 Stimulus Timing 108
. T( A1 L2 x4 B( {- \5.5 Interface Driving and Sampling 114
# T7 H1 V& {$ T$ ]7 c, Q5.6 Connecting It All Together 1217 q) _  x0 B/ k% N
5.7 Top-Level Scope 121
% ^! Y5 A3 T2 A5 u7 M" j0 g8 j& H) C5.8 Program – Module Interactions 123- s. |& x* ^- h8 v& L6 D
5.9 SystemVerilog Assertions 1242 u- k2 a8 H) h' v+ N- x6 E, p$ f: o! k
5.10 The Four-Port ATM Router 126
9 i( r; u' v  G/ v0 X5.11 Conclusion 1345 L: m/ Y4 {' ?! Q5 q' I7 W* }0 s
6. RANDOMIZATION 135
8 A7 d& [) {" O# |7 v6.1 Introduction 135
* Q# R* I& i* R/ m, V- q* h6.2 What to Randomize 1368 E3 C, }4 U! H  O/ r% `( G- h
6.3 Randomization in SystemVerilog 138
$ V4 E$ Q4 @$ @. p- L9 G6.4 Constraint Details 141  q; d; q) a/ ^: g; }0 J: j
6.5 Solution Probabilities 149; V1 D/ E1 W4 }! C) g# ]3 F+ }
6.6 Controlling Multiple Constraint Blocks 1549 ?) s5 j" _" i; U7 {" X
6.7 Valid Constraints 154
( y; |& h* p; l$ x  e6.8 In-line Constraints 1550 h- i3 `8 Z0 I0 Y
6.9 The pre_randomize and post_randomize Functions 156
+ e. x3 s; V( F6.10 Constraints Tips and Techniques 158, [$ z: A3 H2 Q2 ]
6.11 Common Randomization Problems 164
. H$ D0 S; S8 O' Y8 k6.12 Iterative and Array Constraints 165  f* g+ _% `1 g" {: d
6.13 Atomic Stimulus Generation vs. Scenario Generation 172
" t8 u4 w$ |; {6.14 Random Control 175
& ^* V' ?+ a# F7 m% Z+ v8 ^6.15 Random Generators 177
1 n8 L2 _2 B( |. s1 p0 E! u6.16 Random Device Configuration 180
1 o! I/ R9 y: F6.17 Conclusion 182
2 B! v. |" u  l7 p7. THREADS AND INTERPROCESS COMMUNICATION 183: |' X/ s; [) I# H
7.1 Introduction 1838 q# O# r7 F1 w; M) g" K
7.2 Working with Threads 1844 u$ d. i! H4 m0 H7 D
7.3 Interprocess Communication 194! e* o2 c6 I7 b8 C2 ?3 s4 m
7.4 Events 195
' w$ F; A* F4 V2 X2 i+ e. j5 n* L7.5 Semaphores 199
/ {$ [# K  P% @) B, z% Q7.6 Mailboxes 201( `8 z* |8 |" G
7.7 Building a Testbench with Threads and IPC 2108 r6 e6 L# t# A: ?
x SystemVerilog for Verification$ M& q; F$ X$ e/ D$ P
7.8 Conclusion 214! K; k/ s5 M$ F8 n
8. ADVANCED OOP AND GUIDELINES 215- @% u. q# @) l3 _, e
8.1 Introduction 215! ?  i% a# r, j' J
8.2 Introduction to Inheritance 216. c4 a; G/ a9 N( P1 J; t
8.3 Factory Patterns 221. A; t4 c$ ^& P/ g1 U% G3 v2 z# p  N
8.4 Type Casting and Virtual Methods 225" @& n' C& {8 S1 M
8.5 Composition, Inheritance, and Alternatives 228
- k. |+ a2 E2 R$ s, B1 x: S8.6 Copying an Object 233
6 G0 S+ G: a" f3 A8 i* x8.7 Callbacks 236
: ?. n" q! a; j4 \- O" Q9 Q8.8 Conclusion 240
. B& K, F9 z/ G0 b4 j9. FUNCTIONAL COVERAGE 241+ `7 M9 E9 l  m: n
9.1 Introduction 2419 I4 r, y# P* a8 z' Y3 ?% m
9.2 Coverage Types 243' E9 ?9 e1 F' `* @; z! ?% a
9.3 Functional Coverage Strategies 2463 c* m  K/ H5 J6 A1 K
9.4 Simple Functional Coverage Example 248
1 a3 h9 F. H4 g3 h, l9 v" p9.5 Anatomy of a Cover Group 251
, |( e# E* w) Y5 Y- S( M9.6 Triggering a Cover Group 253
' V- F- ~% _8 l+ Q9.7 Data Sampling 256
8 w- N, {9 D2 |% B9.8 Cross Coverage 265
/ E& \1 p. C( C; y1 N0 _9.9 Coverage Options 272
: K* u% }9 T5 K9.10 Parameterized Cover Groups 274
/ P7 `, {# l7 {, l% v, c9 d4 f9.11 Analyzing Coverage Data 275
( P. \/ s% E7 h1 U9.12 Measuring Coverage Statistics During Simulation 276
" b- p: Q* A* j1 q1 u) y9.13 Conclusion 277
! p5 i+ N1 m$ I9 L( L10. ADVANCED INTERFACES 2794 T$ K: y. i+ ], U
10.1 Introduction 279
% H. Y4 y8 h: q8 o6 X10.2 Virtual Interfaces with the ATM Router 279' I' P9 P  n7 r( t1 \
10.3 Connecting to Multiple Design Configurations 284. W0 T* \# h& c+ Y) ~/ Q3 P' O
10.4 Procedural Code in an Interface 290. r3 l1 o' s  t& f* T6 f) A0 x
10.5 Conclusion 2941 ]$ h' N( T; D- g
References 295
) ]: q% A+ O7 sIndex 297% A  s) p7 p2 N( \

Systemverilog for Verification.rar

1.26 MB, 下载次数: 0, 下载积分: 威望 -5


作者: xuzwg    时间: 2016-5-4 16:14





欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2