SlideShare a Scribd company logo
System Verilog
Pushpa Yakkala
Introduction:
 What is system Verilog?
 Why we go for System Verilog?
 What is verification?
 How to verify Design?
 Why system Verilog for verification?
 Evolution of System Verilog
 System Verilog Features
 Data Types
What is System Verilog?
 System Verilog is a hardware description and hardware verification language.
 System Verilog is used to model, design, simulate, test and implement electronic
systems.
 System Verilog is based on Verilog and some extensions.
What is Hardware Description Language?
Hardware description language (HDL) is a specialized computer language used to
describe the structure and behavior of electronic circuits, and most commonly, digital
logic circuits.
What is Hardware Verification Language?
Hardware verification language(HVL) is a programming language used to verify the
designs of electronic circuits written in a HDL.
Why we go for System Verilog?
 Verilog was the primary language to verify functionality of designs that
were small, not very complex and had less features.
 As design complexity increase, so does the requirement of better tools to
design and verify it.
 System Verilog is far superior to Verilog because of its ability to perform
constraint random stimulus, use oops features in testbench construction,
functional coverage, assertions among many others.
What is verification?
 Verification is the process of ensuring that a given hardware design works as
expected.
 Make sure design is bug free by verifying it in all aspects. All possible
scenarios.
Example:
How to verify DUT?
Why system Verilog for verification?
 Verilog was initially used for writing testbench.
 But, writing complex testbench is much more of programming task than
describing hardware.
 No need to synthesize testbench.
 Now UVM is replacing SV based verification in industry.
 Still, UVM = Structured SV. knowing SV based verification helps understanding
UVM based verification, else UVM feels like set of magic macros.
Evaluation of SV:
System Verilog language components are:
• Concepts of Verilog HDL.
• Testbench constructs based on Vera.
• Open Vera assertions.
• Synopsys’ VCS DirectC simulation interface to C and C++.
• A coverage application programming interface that
provides links to coverage metrics.
System Verilog Features:
Data Types:
What is data type?
• In programming, data type is a classification that specifies which type of value a
variable has.
• For example, A string, is a data type that is used to classify text.
• An integer is a data type used to classify whole numbers.
Data Types:
 SystemVerilog added lot of new data types and improved the existing data
types to improve run time memory utilization of simulators.
 In System Verilog data types can be classified into 2-state types and 4-state
types.
 2-state types can take only 0, 1, where as 4-state types can take 0,1,X,Z.
 2-state types consume less (50%) memory and simulate faster when compared
to 4-state types.
 SV introduces a new 4-state data type called logic that can be driven in both
procedural blocks and continuous assign statements.
 But, a signal with more than one driver needs to be declared a net-type such
as wire so that System Verilog can resolve the final value.
Data Types:
Data Types:
Void Data Type:
 void is used in functions to return no value.
 Void data type represents non-existent data.
 This type can be specified as the return type of function, including no return
value.
Syntax:
function void display ();
$display ("Am not going to return any value");
endfunction
Arrays:
 An array is a collection of variables, all of the same type, and accessed using the
same name plus one or more indices.
 There are different types of arrays:
Examples:
int array1 [6]; //fixed size single dimension array
int array2 [5:0]; //fixed size single dimension array
int array3 [3:0][2:0]; //fixed size multi dimension array
bit [7:0] array4[2:0]; //unpacked array declaration
bit [2:0][7:0] array5; //packed array declaration
bit [2:0][7:0] array6 [3]; //mixed packed and unpacked array
Fixed array:
 In fixed size array, array size will be constant throughout the simulation,
 Once the array is declared no need to create it.
 By default, the array will be initialized with value ‘0’.
Single Dimension array:
int array1 [6]; //Compact declaration
int array2 [5:0]; // Verbose declaration
Two Dimension array:
int arr[2][3];
Three Dimension array:
int arr[2][2][2];
Array assignment:
array = '{ '{0,1,2,3},'{4,5,6,7},'{8,9,10,11}};
Packed Array:
 The term packed array is used to refer to the dimensions declared before the
data identifier name.
 Packed arrays can be of single bit data types (reg, logic, bit), enumerated
types.
 A packed array is guaranteed to be represented as a contiguous set of bits.
Example:
Unpacked array:
 The term unpacked array is used to refer to the dimensions declared after the
data identifier name.
 Unpacked arrays can be of any data type.
 An unpacked array may or may not be so represented as a contiguous set of bits.
Example:
Dynamic array:
 A dynamic array is one dimension of an unpacked array whose size can be set or
changed at run-time.
 Dynamic array is Declared using an empty word subscript [ ].
 The space for a dynamic array doesn’t exist until the array is explicitly created at
run-time, space is allocated when new[number] is called.
 The number indicates the number of space/elements to be allocated.
 Dynamic arrays are useful for contiguous collections of variables whose number
changes dynamically.
Syntax:
Data_type array_name[];
Methods:
new[ ] –> allocates the storage.
size( ) –> returns the current size of a dynamic array.
delete( ) –> empties the array, resulting in a zero-sized array.
Dynamic array:
Associative Array:
 Associative array Stores entries in a sparse matrix.
 Associative arrays allocate the storage only when it is used, unless like in the
dynamic array we need to allocate memory before using it.
 In associative array index expression is not restricted to integral expressions,
but can be of any type.
 When the size of the collection is unknown or the data space is sparse, an
associative array is a better option.
Syntax:
data_type array_name [ index_type ];
Associative array:
Examples:
int a_array1[*] ; // associative array of integer (unspecified index)
bit [31:0] a_array2[string]; // associative array of 32-bit, indexed by string
ev_array [myClass]; //associative array of event, indexed by class
Associative array:
Methods:
Queue:
 A queue is a variable-size, ordered collection of homogeneous elements.
 Like a dynamic array, queues can grow and shrink.
 Queue supports adding and removing elements anywhere.
 Queues are declared using the same syntax as unpacked arrays, but specifying
$ as the array size. In queue 0 represents the first, and $ representing the last
entries.
Syntax:
Data_type queue_name[$];
Example:
bit queue_1[$]; // queue of bits (unbound queue)
int queue_2[$]; // queue of int
byte queue_3[$:255]; // queue of byte (bounded queue with 256 entries)
string queue_4[$]; // queue of strings
Queue:
 A queue can be bounded or unbounded.
bounded queue – queue with the number of entries limited or queue size
specified.
Queue:
unbounded queue – queue with unlimited entries or queue size not specified.
Queue:
Queue:
Events:
 Events are static objects useful for synchronization between the process.
 Events operations are of two staged processes in which one process will trigger
the event, and the other processes will wait for an event to be triggered.
 Events are triggered using -> operator or ->> operator
 wait for an event to be triggered using @ operator or wait() construct
 System Verilog events act as handles to synchronization queues. thus, they can
be passed as arguments to tasks, and they can be assigned to one another or
compared.
Syntax:
->event_name;
@(event_name.triggered);
Structure & Union:
 A structure is a user-defined data type. that allows to combining data items
of different kinds. Structures are used to represent a record.
 Like Structures, union is a user defined data type. In union, all members
share the same memory location.
Example:
Classes:
 A class is a user-defined data type.
 Classes consist of data (called properties) and tasks and functions to access the
data (called methods).
 Classes are used in object-oriented programming.
 In SystemVerilog, classes support the following aspects of object-orientation –
encapsulation, data hiding, inheritance and polymorphism.
Example:
class c;
int x;
task set (int i);
x=1;
endtask;
endmodule;
..

More Related Content

What's hot

Verilog Tasks & Functions
Verilog Tasks & FunctionsVerilog Tasks & Functions
Verilog Tasks & Functions
anand hd
 
axi protocol
axi protocolaxi protocol
axi protocol
Azad Mishra
 
Coverage and Introduction to UVM
Coverage and Introduction to UVMCoverage and Introduction to UVM
Coverage and Introduction to UVM
Dr. Shivananda Koteshwar
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
Ramdas Mozhikunnath
 
AMBA Ahb 2.0
AMBA Ahb 2.0AMBA Ahb 2.0
AMBA Ahb 2.0
Akhil Srivastava
 
UVM TUTORIAL;
UVM TUTORIAL;UVM TUTORIAL;
UVM TUTORIAL;
Azad Mishra
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesNirav Desai
 
SystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummarySystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features Summary
Amal Khailtash
 
ASIC design verification
ASIC design verificationASIC design verification
ASIC design verification
Gireesh Kallihal
 
System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )
sivasubramanian manickam
 
Advance Peripheral Bus
Advance Peripheral Bus Advance Peripheral Bus
Advance Peripheral Bus
SIVA NAGENDRA REDDY
 
Logic Synthesis
Logic SynthesisLogic Synthesis
Logic Synthesis
VandanaPagar1
 
AMBA 3 APB Protocol
AMBA 3 APB ProtocolAMBA 3 APB Protocol
AMBA 3 APB Protocol
Swetha GSM
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
Maryala Srinivas
 
Verilog Test Bench
Verilog Test BenchVerilog Test Bench
Verilog Test Bench
Dr.YNM
 
Uvm dac2011 final_color
Uvm dac2011 final_colorUvm dac2011 final_color
Uvm dac2011 final_color
Jamal EL HAITOUT
 
Ambha axi
Ambha axiAmbha axi
Ambha axi
HARINATH REDDY
 
Verilog presentation final
Verilog presentation finalVerilog presentation final
Verilog presentation final
Ankur Gupta
 
Basics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow DevicesBasics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow Devices
Arrow Devices
 

What's hot (20)

Verilog Tasks & Functions
Verilog Tasks & FunctionsVerilog Tasks & Functions
Verilog Tasks & Functions
 
axi protocol
axi protocolaxi protocol
axi protocol
 
Coverage and Introduction to UVM
Coverage and Introduction to UVMCoverage and Introduction to UVM
Coverage and Introduction to UVM
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
 
AMBA Ahb 2.0
AMBA Ahb 2.0AMBA Ahb 2.0
AMBA Ahb 2.0
 
UVM TUTORIAL;
UVM TUTORIAL;UVM TUTORIAL;
UVM TUTORIAL;
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfaces
 
SystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features SummarySystemVerilog OOP Ovm Features Summary
SystemVerilog OOP Ovm Features Summary
 
ASIC design verification
ASIC design verificationASIC design verification
ASIC design verification
 
System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )
 
Advance Peripheral Bus
Advance Peripheral Bus Advance Peripheral Bus
Advance Peripheral Bus
 
Logic Synthesis
Logic SynthesisLogic Synthesis
Logic Synthesis
 
AMBA 3 APB Protocol
AMBA 3 APB ProtocolAMBA 3 APB Protocol
AMBA 3 APB Protocol
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
 
Verilog Test Bench
Verilog Test BenchVerilog Test Bench
Verilog Test Bench
 
Uvm dac2011 final_color
Uvm dac2011 final_colorUvm dac2011 final_color
Uvm dac2011 final_color
 
Ambha axi
Ambha axiAmbha axi
Ambha axi
 
Verilog hdl
Verilog hdlVerilog hdl
Verilog hdl
 
Verilog presentation final
Verilog presentation finalVerilog presentation final
Verilog presentation final
 
Basics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow DevicesBasics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow Devices
 

Similar to Introduction to System verilog

Java R20 - UNIT-3.docx
Java R20 - UNIT-3.docxJava R20 - UNIT-3.docx
Java R20 - UNIT-3.docx
Pamarthi Kumar
 
Arrays
ArraysArrays
Arrays
ViniVini48
 
VB.net
VB.netVB.net
VB.net
PallaviKadam
 
Java platform
Java platformJava platform
Java platform
Visithan
 
unit 1 (1).pptx
unit 1 (1).pptxunit 1 (1).pptx
unit 1 (1).pptx
PriyadarshiniS28
 
MuleSoft Nashik Virtual Meetup#3 - Deep Dive Into DataWeave and its Module
MuleSoft Nashik Virtual  Meetup#3 - Deep Dive Into DataWeave and its ModuleMuleSoft Nashik Virtual  Meetup#3 - Deep Dive Into DataWeave and its Module
MuleSoft Nashik Virtual Meetup#3 - Deep Dive Into DataWeave and its Module
Jitendra Bafna
 
Identifiers, keywords and types
Identifiers, keywords and typesIdentifiers, keywords and types
Identifiers, keywords and types
Daman Toor
 
Sv data types and sv interface usage in uvm
Sv data types and sv interface usage in uvmSv data types and sv interface usage in uvm
Sv data types and sv interface usage in uvm
HARINATH REDDY
 
SystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.pptSystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.ppt
ravi446393
 
VB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.pptVB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.ppt
BhuvanaR13
 
Generics Collections
Generics CollectionsGenerics Collections
Generics Collectionsphanleson
 
Generics collections
Generics collectionsGenerics collections
Generics collections
Yaswanth Babu Gummadivelli
 
Variable and constants in Vb.NET
Variable and constants in Vb.NETVariable and constants in Vb.NET
Variable and constants in Vb.NET
Jaya Kumari
 
Array andfunction
Array andfunctionArray andfunction
Array andfunction
Girmachew Tilahun
 
C#
C#C#
Data structure and algorithm with java by shikra
Data structure and algorithm  with java by shikraData structure and algorithm  with java by shikra
Data structure and algorithm with java by shikra
jateno3396
 
Data structures cs301 power point slides lecture 01
Data structures   cs301 power point slides lecture 01Data structures   cs301 power point slides lecture 01
Data structures cs301 power point slides lecture 01
shaziabibi5
 

Similar to Introduction to System verilog (20)

Java R20 - UNIT-3.docx
Java R20 - UNIT-3.docxJava R20 - UNIT-3.docx
Java R20 - UNIT-3.docx
 
Arrays
ArraysArrays
Arrays
 
Java part 2
Java part  2Java part  2
Java part 2
 
VB.net
VB.netVB.net
VB.net
 
Java platform
Java platformJava platform
Java platform
 
unit 1 (1).pptx
unit 1 (1).pptxunit 1 (1).pptx
unit 1 (1).pptx
 
MuleSoft Nashik Virtual Meetup#3 - Deep Dive Into DataWeave and its Module
MuleSoft Nashik Virtual  Meetup#3 - Deep Dive Into DataWeave and its ModuleMuleSoft Nashik Virtual  Meetup#3 - Deep Dive Into DataWeave and its Module
MuleSoft Nashik Virtual Meetup#3 - Deep Dive Into DataWeave and its Module
 
Identifiers, keywords and types
Identifiers, keywords and typesIdentifiers, keywords and types
Identifiers, keywords and types
 
Sv data types and sv interface usage in uvm
Sv data types and sv interface usage in uvmSv data types and sv interface usage in uvm
Sv data types and sv interface usage in uvm
 
SystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.pptSystemVerilog-20041201165354.ppt
SystemVerilog-20041201165354.ppt
 
Ch08
Ch08Ch08
Ch08
 
VB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.pptVB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.ppt
 
Generics Collections
Generics CollectionsGenerics Collections
Generics Collections
 
Generics collections
Generics collectionsGenerics collections
Generics collections
 
Variable and constants in Vb.NET
Variable and constants in Vb.NETVariable and constants in Vb.NET
Variable and constants in Vb.NET
 
Java arrays (1)
Java arrays (1)Java arrays (1)
Java arrays (1)
 
Array andfunction
Array andfunctionArray andfunction
Array andfunction
 
C#
C#C#
C#
 
Data structure and algorithm with java by shikra
Data structure and algorithm  with java by shikraData structure and algorithm  with java by shikra
Data structure and algorithm with java by shikra
 
Data structures cs301 power point slides lecture 01
Data structures   cs301 power point slides lecture 01Data structures   cs301 power point slides lecture 01
Data structures cs301 power point slides lecture 01
 

Recently uploaded

J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 

Recently uploaded (20)

J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 

Introduction to System verilog

  • 2. Introduction:  What is system Verilog?  Why we go for System Verilog?  What is verification?  How to verify Design?  Why system Verilog for verification?  Evolution of System Verilog  System Verilog Features  Data Types
  • 3. What is System Verilog?  System Verilog is a hardware description and hardware verification language.  System Verilog is used to model, design, simulate, test and implement electronic systems.  System Verilog is based on Verilog and some extensions. What is Hardware Description Language? Hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, and most commonly, digital logic circuits. What is Hardware Verification Language? Hardware verification language(HVL) is a programming language used to verify the designs of electronic circuits written in a HDL.
  • 4. Why we go for System Verilog?  Verilog was the primary language to verify functionality of designs that were small, not very complex and had less features.  As design complexity increase, so does the requirement of better tools to design and verify it.  System Verilog is far superior to Verilog because of its ability to perform constraint random stimulus, use oops features in testbench construction, functional coverage, assertions among many others.
  • 5. What is verification?  Verification is the process of ensuring that a given hardware design works as expected.  Make sure design is bug free by verifying it in all aspects. All possible scenarios. Example:
  • 7. Why system Verilog for verification?  Verilog was initially used for writing testbench.  But, writing complex testbench is much more of programming task than describing hardware.  No need to synthesize testbench.  Now UVM is replacing SV based verification in industry.  Still, UVM = Structured SV. knowing SV based verification helps understanding UVM based verification, else UVM feels like set of magic macros.
  • 8. Evaluation of SV: System Verilog language components are: • Concepts of Verilog HDL. • Testbench constructs based on Vera. • Open Vera assertions. • Synopsys’ VCS DirectC simulation interface to C and C++. • A coverage application programming interface that provides links to coverage metrics.
  • 10. Data Types: What is data type? • In programming, data type is a classification that specifies which type of value a variable has. • For example, A string, is a data type that is used to classify text. • An integer is a data type used to classify whole numbers.
  • 11. Data Types:  SystemVerilog added lot of new data types and improved the existing data types to improve run time memory utilization of simulators.  In System Verilog data types can be classified into 2-state types and 4-state types.  2-state types can take only 0, 1, where as 4-state types can take 0,1,X,Z.  2-state types consume less (50%) memory and simulate faster when compared to 4-state types.  SV introduces a new 4-state data type called logic that can be driven in both procedural blocks and continuous assign statements.  But, a signal with more than one driver needs to be declared a net-type such as wire so that System Verilog can resolve the final value.
  • 14. Void Data Type:  void is used in functions to return no value.  Void data type represents non-existent data.  This type can be specified as the return type of function, including no return value. Syntax: function void display (); $display ("Am not going to return any value"); endfunction
  • 15. Arrays:  An array is a collection of variables, all of the same type, and accessed using the same name plus one or more indices.  There are different types of arrays: Examples: int array1 [6]; //fixed size single dimension array int array2 [5:0]; //fixed size single dimension array int array3 [3:0][2:0]; //fixed size multi dimension array bit [7:0] array4[2:0]; //unpacked array declaration bit [2:0][7:0] array5; //packed array declaration bit [2:0][7:0] array6 [3]; //mixed packed and unpacked array
  • 16. Fixed array:  In fixed size array, array size will be constant throughout the simulation,  Once the array is declared no need to create it.  By default, the array will be initialized with value ‘0’. Single Dimension array: int array1 [6]; //Compact declaration int array2 [5:0]; // Verbose declaration Two Dimension array: int arr[2][3]; Three Dimension array: int arr[2][2][2]; Array assignment: array = '{ '{0,1,2,3},'{4,5,6,7},'{8,9,10,11}};
  • 17. Packed Array:  The term packed array is used to refer to the dimensions declared before the data identifier name.  Packed arrays can be of single bit data types (reg, logic, bit), enumerated types.  A packed array is guaranteed to be represented as a contiguous set of bits. Example:
  • 18. Unpacked array:  The term unpacked array is used to refer to the dimensions declared after the data identifier name.  Unpacked arrays can be of any data type.  An unpacked array may or may not be so represented as a contiguous set of bits. Example:
  • 19. Dynamic array:  A dynamic array is one dimension of an unpacked array whose size can be set or changed at run-time.  Dynamic array is Declared using an empty word subscript [ ].  The space for a dynamic array doesn’t exist until the array is explicitly created at run-time, space is allocated when new[number] is called.  The number indicates the number of space/elements to be allocated.  Dynamic arrays are useful for contiguous collections of variables whose number changes dynamically. Syntax: Data_type array_name[]; Methods: new[ ] –> allocates the storage. size( ) –> returns the current size of a dynamic array. delete( ) –> empties the array, resulting in a zero-sized array.
  • 21. Associative Array:  Associative array Stores entries in a sparse matrix.  Associative arrays allocate the storage only when it is used, unless like in the dynamic array we need to allocate memory before using it.  In associative array index expression is not restricted to integral expressions, but can be of any type.  When the size of the collection is unknown or the data space is sparse, an associative array is a better option. Syntax: data_type array_name [ index_type ];
  • 22. Associative array: Examples: int a_array1[*] ; // associative array of integer (unspecified index) bit [31:0] a_array2[string]; // associative array of 32-bit, indexed by string ev_array [myClass]; //associative array of event, indexed by class
  • 24. Queue:  A queue is a variable-size, ordered collection of homogeneous elements.  Like a dynamic array, queues can grow and shrink.  Queue supports adding and removing elements anywhere.  Queues are declared using the same syntax as unpacked arrays, but specifying $ as the array size. In queue 0 represents the first, and $ representing the last entries. Syntax: Data_type queue_name[$]; Example: bit queue_1[$]; // queue of bits (unbound queue) int queue_2[$]; // queue of int byte queue_3[$:255]; // queue of byte (bounded queue with 256 entries) string queue_4[$]; // queue of strings
  • 25. Queue:  A queue can be bounded or unbounded. bounded queue – queue with the number of entries limited or queue size specified.
  • 26. Queue: unbounded queue – queue with unlimited entries or queue size not specified.
  • 29. Events:  Events are static objects useful for synchronization between the process.  Events operations are of two staged processes in which one process will trigger the event, and the other processes will wait for an event to be triggered.  Events are triggered using -> operator or ->> operator  wait for an event to be triggered using @ operator or wait() construct  System Verilog events act as handles to synchronization queues. thus, they can be passed as arguments to tasks, and they can be assigned to one another or compared. Syntax: ->event_name; @(event_name.triggered);
  • 30. Structure & Union:  A structure is a user-defined data type. that allows to combining data items of different kinds. Structures are used to represent a record.  Like Structures, union is a user defined data type. In union, all members share the same memory location. Example:
  • 31. Classes:  A class is a user-defined data type.  Classes consist of data (called properties) and tasks and functions to access the data (called methods).  Classes are used in object-oriented programming.  In SystemVerilog, classes support the following aspects of object-orientation – encapsulation, data hiding, inheritance and polymorphism. Example: class c; int x; task set (int i); x=1; endtask; endmodule;
  • 32. ..