A SystemVerilog Primer: Table of Contents

Table Of Contents: A SystemVerilog Primer

Foreword 	xiii
Preface 	xvii
Chapter 1
Introduction	1
	1.1.	Why SystemVerilog?,  1
	1.2.	Brief History,  3
	1.3.	Major Capabilities,  3
Chapter 2
Language Elements	7
	2.1.	Logic Literal Values,  7
	2.2.	Basic Data Types,  8
	2.2.1.	Other Types,  10
	2.3.	Data Objects,  11
	2.4.	User-defined Types,  12
	2.5.	Enumeration Types,  14
	2.5.1.	Importing Enumeration Types,  15
	2.5.2.	Shorthand Notation,  15
	2.5.3.	Enumeration Literal Values,  16
	2.5.4.	Typed Enumeration,  17
	2.5.5.	Assigning Enumeration Types,  18
	2.5.6.	Built-in Methods,  19
	2.6.	Arrays,  20
	Packed and Unpacked,  21
	Implicit Range,  23
	Base Type,  24
	Operations,  25
	Signedness,  28
	Using the 2-state Type,  29
	2.6.1.	Array Literals,  29
	2.6.2.	Built-in Array Functions,  31
	2.7.	Dynamic Arrays,  32
	2.8.	Associative Arrays,  33
	2.8.1.	Built-in Methods,  35
	2.9.	Queues,  37
	2.9.1.	Additional Methods for Arrays and Queues,  39
	2.9.2.	An Example,  40
	2.10.	Strings,  41
	2.10.1.	String Methods,  42
	2.10.2.	An Example,  44
	2.11.	Event Data Type,  45
	2.12.	Time Units,  45
	2.13.	Signed and Unsigned,  47
	2.14.	Compilation Directive - `define,  47
Chapter 3
Composite Types	49
	3.1.	Structures,  49
	3.1.1.	Structure Literals,  54
	3.1.2.	Assignment Patterns,  55
	3.1.3.	Packed and Unpacked Structures,  56
	3.2.	Unions,  60
	3.2.1.	Packed Union,  62
	3.2.2.	Tagged Union,  64
	3.3.	Classes,  65
	3.3.1.	Class Objects,  67
	3.3.2.	Static Properties,  69
	3.3.3.	Static Methods,  69
	3.3.4.	Keyword this,  70
	3.3.5.	Inheritance,  71
	3.3.6.	Constant Properties,  74
	3.3.7.	Abstract Class,  75
	3.3.8.	Virtual Method,  75
	3.3.9.	Scope Resolution Operator,  76
	3.3.10.	Method Prototypes,  77
	3.3.11.	Parameterized Class,  78
	3.3.12.	Forward Declaration,  79
Chapter 4
Expressions	81
	4.1.	Parameters,  81
	4.1.1.	$ Parameter Value,  81
	4.1.2.	Type Parameter Value,  82
	4.1.3.	Port List,  83
	4.2.	Constants,  83
	4.3.	Variables,  84
	4.3.1.	Variable Declaration,  84
	4.3.2.	Variable Usage,  85
	4.3.3.	Static and Automatic Variables,  86
	4.3.4.	Variable Initialization,  87
	4.4.	Nets,  89
	4.5.	Operators,  90
	4.5.1.	Assignment Operators,  90
	4.5.2.	Assignment in Expression,  91
	4.5.3.	Bump Operators,  92
	4.5.4.	Comparison Operators,  94
	4.5.5.	Logical Operators,  95
	4.5.6.	Set Membership Operator,  96
	4.5.7.	Static Cast Operator,  98
	Type Casting,  98
	Size Casting,  99
	Signed Casting,  99
	Bit-streams,  100
	4.5.8.	Dynamic Cast Operator,  101
	4.5.9.	Type Operator,  103
	4.5.10.	Concatenation,  103
	4.5.11.	Streaming Operators,  104
	4.6.	Operator Overloading,  106
	4.7.	Expression Templates,  107
Chapter 5
Behavioral Modeling	109
	5.1.	Procedural Constructs,  109
	5.1.1.	Combinational Procedural Construct,  110
	5.1.2.	Latched Procedural Construct,  113
	5.1.3.	Sequential Logic Procedural Construct,  114
	5.2.	Loop Statement,  115
	5.2.1.	For-Loop Statement,  115
	5.2.2.	Do-while-loop Statement,  116
	5.2.3.	Foreach-loop Statement,  116
	5.2.4.	Jump Statement,  118
	5.3.	Block and Statement Labels,  120
	5.4.	Case Statement,  121
	5.4.1.	Unique and Unique0 Case,  121
	5.4.2.	Priority Case,  122
	5.4.3.	Case Inside,  123
	5.5.	If Statement,  123
	5.5.1.	Unique and Unique0 If,  124
	5.5.2.	Priority If,  125
	5.6.	Final Statement,  126
	5.7.	Disable Statement,  126
	5.8.	Event Control,  127
	5.8.1.	If Conditional Event,  127
	5.8.2.	Sequence Event,  128
	5.8.3.	Level-sensitive Sequence Control,  128
	5.9.	Edge Event,  128
	5.10.	Continuous Assignments,  128
	5.11.	Parallel Block,  129
	5.12.	Process Control,  131
	5.13.	Fine-grain Process Control,  133
Chapter 6
Structural Modeling	135
	6.1.	Module,  135
	6.1.1.	Module Prototype,  135
	6.1.2.	Named Module,  137
	6.1.3.	Nested Modules,  137
	6.1.4.	Module Ports,  139
	6.1.5.	Port Kind,  140
	6.1.6.	Implicit .name Named Port Connection,  140
	6.1.7.	Implicit .* Named Port Connection,  142
	6.1.8.	Port Types,  143
	6.1.9.	Reference Ports,  143
	6.1.10.	Parameterized Types,  144
	6.2.	Interface,  145
	6.2.1.	What is an Interface?,  145
	6.2.2.	Interface Declaration,  149
	6.2.3.	Instantiating an Interface,  150
	6.2.4.	Interface Methods,  151
	6.2.5.	Ports of an Interface,  153
	6.2.6.	Modport,  155
	6.2.7.	Generic Interface,  160
	6.2.8.	Parameterized Interface,  160
	6.2.9.	Structure vs Interface,  162
	6.2.10.	Interfaces Improve Verification,  163
Chapter 7
Other Topics	165
	7.1.	Packages,  165
	7.2.	Compilation Unit,  168
	7.2.1.	$unit,  172
	7.2.2.	$root,  174
	7.3.	Tasks and Functions,  174
	7.3.1.	Top-level Sequential Block,  174
	7.3.2.	Labels,  175
	7.3.3.	Empty Body,  175
	7.3.4.	Arguments,  175
	7.3.5.	Passing by Reference,  176
	7.3.6.	Passing Values by Name,  178
	7.3.7.	Default Argument Values,  178
	7.3.8.	Tasks,  179
	Return Statement,  180
	7.3.9.	Functions,  181
	Void Function,  182
	Return Statement,  183
	7.3.10.	Import and Export,  184
	7.4.	System Tasks and Functions,  184
	7.4.1.	$bits Function,  184
	7.5.	Alias Statement,  185
	7.6.	Local and Global Variables,  187
Chapter 8
Advanced Verification Topics	189
	8.1.	Clocking Block,  189
	8.2.	Program Block,  194
	8.3.	Interprocess Communication and Synchronization,  199
	8.3.1.	Semaphores,  200
	8.3.2.	Mailboxes,  205
	8.4.	More on Events,  210
	8.4.1.	Nonblocking Event Trigger,  210
	8.4.2.	Property triggered,  211
	8.4.3.	Event Operations,  212
	8.4.4.	Event Sequencing,  212
	8.5.	Random Constraints Generation,  213
	8.5.1.	Random Variables,  214
	8.5.2.	Other Randomization Methods,  216
	Constraint Mode,  216
	Rand Mode,  216
	Randomize With,  217
	Pre_randomize and Post_randomize,  217
	Random Variable Control,  218
	8.5.3.	Constraint Declarations,  218
	Set Membership,  218
	Distribution,  219
	Implication,  219
	Iterative,  220
	Variable Ordering,  221
	Checking Constraints Inline,  221
	8.5.4.	Random Weighted Case Statement,  222
	8.5.5.	Scope Randomize Function,  222
	8.5.6.	Random Sequence Generation,  223
Chapter 9
Assertions	225
	9.1.	Immediate Assertions,  226
	9.1.1.	Simple Immediate Assertions,  226
	9.1.2.	Deferred Immediate Assertions,  228
	9.2.	Concurrent Assertions,  229
	9.2.1.	Sequence Declaration,  232
	9.2.2.	Property Declaration,  235
	9.2.3.	Assertion Types,  236
	9.2.4.	Assertion Examples,  237
	Avoiding False Failures,  252
	9.2.5.	Control System Tasks,  253
	9.2.6.	Binding,  254
	9.3.	Expect Statement,  255
	9.4.	Checker Construct,  256
Appendix A
Syntax Reference	259
	A.1.	Keywords,  259
	A.2.	Syntax Conventions,  262
	A.3.	The Syntax,  262
Bibliography 	317
Index 	319