SlideShare a Scribd company logo
1 of 36
1SystemVerilog Verification Building Blocks
(Program blocks, Clocking blocks,Interfaces
and Packages)
1
-
1
 Overview
 Interfaces
 Program Block
 Clocking Block
 fork-join
 Packages
 Summary
Overview
1
-
2
In Verilog, testbench code and design code are in a separate
module
— Much effort is required to set the environment to be properly initialized and
synchronized
 To avoid race conditions between the design and testbench
SystemVerilog introduces the program block to separate the
testbench
Connections between the blocks increases as the design grows
— Any wrong connection stops the design from working
SystemVerilog also introduces the interface construct to
encapsulate the communication between design and verification
blocks
SystemVerilog Verification Building Blocks
1
-
3
 Overview
 Interfaces
 Program Block
 Clocking Block
 fork-join
 Packages
 Summary
Interfaces
1
-
4
The communication between blocks
of a digital system is a critical
— Manually connecting many ports can lead
to errors
— Port declaration in many modules
— Change in the design makes it difficult to
change
SystemVerilog adds a powerful
feature called interface
Interface encapsulates the
interconnection and communication
between blocks
Interface
1
-
5
An interface port declaration
syntax is the same as that of
modules
An interface can contain
subroutines
An interface can also contain
processes (i.e., initial or always
procedures) and continuous
assignments
This allows the interface to include
a verifier such as its own protocol
checker that automatically verifies
all modules connected via the
interface to conform to the
specified protocol
Interface Syntax
1
-
6
Without Interface Example
1
-
7
With Interface Example
1
-
8
In the previous example, if the same identifier u_if had been used
to name the uart_if interface in the uart_rx and uart_rx_ctl module
headers
— Then implicit port connections could also have been used to instantiate the
uart_rx and uart_rx_ctl modules into the top module, as follows
Interface Example: Implicit Port Connections
1
-
9
To specify the direction of the signal that uses an interface instead
of a port list
— modports are used
To restrict interface access within a module, modport lists the
directions declared within the interface
Modports
1
-
1
0
 Overview
 Interfaces
 Program Block
 Clocking Block
 fork-join
 Packages
 Summary
Program Block
1
-
1
1
Usually a testbench contains the following functionality
— Interconnect instances
— Drives clocks, resets, and other control signals with some of them tied to
constant values
— Controls test duration
— Drives DUT test
 Drives design inputs
 Checks design outputs
 Collects test statistics
All these cause the testbench to be a huge text file, containing
hundreds or thousands of lines of code
Testbenches
1
-
1
2
Programs are intended to be instantiated or nested within a
testbench, encapsulating all design verification functionality
Testbench can include one or more programs
— Each program is a design verification (or sub-environment) entry-point
— Each program can call the $exit() method
 When the $exit() method is called, all the threads opened within the program are
terminated
— When all the programs are done (either by calling the $exit() method or by
finishing all the threads), the $finish() system task is called automatically
Programs cannot instantiate modules, but they may have input,
output, and inout ports and interfaces like modules
Programs
1
-
1
3
Program block construct is provided for modeling the testbench
environment
The program construct serves as a clear separator between
design and testbench
A program block can contain
— Data declarations, class definitions, subroutines, and one or more initial and
final procedures
A program block cannot contain
— always procedures, primitive instances, module instances, interface
instances, or other program instances
Program Syntax
1
-
1
4
Programs’ Instances
1
-
1
5
Programs within Modules and Interfaces
1
-
1
6
 Overview
 Interfaces
 Program Block
 Clocking Block
 fork-join
 Packages
 Summary
Clocking Block
1
-
1
7
A clocking block is a synchronization part within a module's
interconnection (interfaces) or signal drivers (programs and
modules)
It is intended to make sequenced signals driving/sampling easier
Provides immediate ability to specify sampling signal and its input
and output skew (timing spec)
— Input skew specifies how long before a "real" clock-edge signal is sampled
— Output skew specifies how long after a "real" clock-edge signal is driven
Clocking Block
1
-
1
8
Clocking Block Syntax (1)
1
-
1
9
Any signal in a clocking block can be associated with an arbitrary
hierarchical expression. A hierarchical expression is introduced
by appending an equal sign (=) followed by the hierarchical
expression
Hierarchical expressions are not limited to simple names or
signals in other scopes
Clocking Block Syntax (2)
1
-
2
0
One clocking block can be specified as the default for all cycle
operations
A default is valid only within the scope of the default clocking
specification
Only one default clocking can be specified in a module, interface,
program, or checker
The ## operator can be used to delay execution by a specified by
number of clock cycles or clocking events
Default Clocking and ## Cycle Delay
1
-
2
1
Default Clocking and ## Cycle Delay Example
1
-
2
2
Clocking block within interface is used to specify both signal direction
(input, output or inout) and timing spec of signal sampling
Clocking block is true hierarchical construct. To access clocked signal
use hierarchical path including clocking itself
Clocking Block within Interfaces
1
-
2
3
A bind operator is intended to insert a module, program, or
interface to another module or module instance
It allows the verification engineer to add design verification
utilities to design with no real RTL code changes
Bind Operator (1)
1
-
2
4
Bind Operator (2)
1
-
2
5
 Overview
 Interfaces
 Program Block
 Clocking Block
 fork-join
 Packages
 Summary
fork-join
1
-
2
6
fork-join
1
-
2
7
fork-join any
1
-
2
8
fork-join_none (1)
1
-
2
9
fork-join_none starts a new thread but it does not use any delays
It allows calling a task from a function
fork-join_none (2)
1
-
3
0
wait fork
1
-
3
1
 Overview
 Interfaces
 Program Block
 Clocking Block
 fork-join
 Packages
 Summary
Packages
1
-
3
2
Identifiers declared within a module, interface, program, or checker are
local to that scope
— Do not affect or conflict with declarations in other building blocks
SystemVerilog packages provide an additional mechanism to share with
other building blocks
Packages
1
-
3
3
 Overview
 Interfaces
 Program Block
 Clocking Block
 fork-join
 Packages
 Summary
Summary
1
-
3
4
1.What is the purpose of using a program block?
2.What is the need for SystemVerilog interface construct?
3.What is the purpose of clocking block?
Answer the following questions
1
-
3
5
SystemVerilog verification building blocks are the program block,
interfaces, clocking block, and packages
SystemVerilog introduces the program block to separate the
testbench and to avoid the race conditions between the design
and testbench
The interface construct encapsulates the interconnection and
communication between blocks
To restrict the interface access within a module, modport lists the
directions declared within the interface
Clocking block is a synchronization part within a module's
interconnection (interface) or signal drivers (programs and
modules)
Summary
1
-
3
6

More Related Content

What's hot

Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomizationNirav Desai
 
Verilog data types -For beginners
Verilog data types -For beginnersVerilog data types -For beginners
Verilog data types -For beginnersDr.YNM
 
Introduction to System verilog
Introduction to System verilog Introduction to System verilog
Introduction to System verilog Pushpa Yakkala
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_finalsean chen
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology TutorialArrow Devices
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog Ramdas Mozhikunnath
 
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
 
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 uvmHARINATH REDDY
 
Amba axi 29 3_2015
Amba axi 29 3_2015Amba axi 29 3_2015
Amba axi 29 3_2015kiemnhatminh
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverageNirav Desai
 
How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?Sameh El-Ashry
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 sessionSameh El-Ashry
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_featuresNirav Desai
 

What's hot (20)

Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
 
Verilog data types -For beginners
Verilog data types -For beginnersVerilog data types -For beginners
Verilog data types -For beginners
 
Introduction to System verilog
Introduction to System verilog Introduction to System verilog
Introduction to System verilog
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology Tutorial
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
 
Ambha axi
Ambha axiAmbha axi
Ambha axi
 
axi protocol
axi protocolaxi protocol
axi protocol
 
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
 
Coverage and Introduction to UVM
Coverage and Introduction to UVMCoverage and Introduction to UVM
Coverage and Introduction to UVM
 
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
 
Amba axi 29 3_2015
Amba axi 29 3_2015Amba axi 29 3_2015
Amba axi 29 3_2015
 
Ch 6 randomization
Ch 6 randomizationCh 6 randomization
Ch 6 randomization
 
Axi protocol
Axi protocolAxi protocol
Axi protocol
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverage
 
How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?
 
AMBA Ahb 2.0
AMBA Ahb 2.0AMBA Ahb 2.0
AMBA Ahb 2.0
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 session
 
AXI Protocol.pptx
AXI Protocol.pptxAXI Protocol.pptx
AXI Protocol.pptx
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_features
 

Similar to System verilog verification building blocks

UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREVLSICS Design
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREVLSICS Design
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREVLSICS Design
 
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...IJSEA
 
siemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdf
siemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdfsiemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdf
siemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdfssuser1c8ca21
 
14-IntegrationTesting_in_software_testing .pdf
14-IntegrationTesting_in_software_testing .pdf14-IntegrationTesting_in_software_testing .pdf
14-IntegrationTesting_in_software_testing .pdfSATHYANARAYANAKB
 
[ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Enviro...
[ENGLISH] TDC 2015 - PHP  Trail - Tests and PHP Continuous Integration Enviro...[ENGLISH] TDC 2015 - PHP  Trail - Tests and PHP Continuous Integration Enviro...
[ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Enviro...Bruno Tanoue
 
SystemVerilog_veriflcation and UVM for IC design.ppt
SystemVerilog_veriflcation and UVM for IC design.pptSystemVerilog_veriflcation and UVM for IC design.ppt
SystemVerilog_veriflcation and UVM for IC design.pptntareq91
 
safety assurence in process control
safety assurence in process controlsafety assurence in process control
safety assurence in process controlNathiya Vaithi
 
 Test system architectures using advanced standardized test languages
 Test system architectures using advanced standardized test languages Test system architectures using advanced standardized test languages
 Test system architectures using advanced standardized test languagesMiguel Conde-Ferreira
 
Troubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorTroubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorWSO2
 
White paper: Software-Defined Networking Matrix Switching
White paper: Software-Defined Networking Matrix SwitchingWhite paper: Software-Defined Networking Matrix Switching
White paper: Software-Defined Networking Matrix SwitchingJoel W. King
 
Troubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorTroubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorWSO2
 
Test System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test LanguagesTest System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test LanguagesAxel Rennoch
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_ValidationMichaelJoshua
 

Similar to System verilog verification building blocks (20)

UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
 
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER COREUVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
UVM BASED REUSABLE VERIFICATION IP FOR WISHBONE COMPLIANT SPI MASTER CORE
 
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
 
4213ijsea06
4213ijsea064213ijsea06
4213ijsea06
 
siemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdf
siemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdfsiemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdf
siemens-eda_technical-paper_the-missing-link-the-testbench-to-dut-connection.pdf
 
14-IntegrationTesting_in_software_testing .pdf
14-IntegrationTesting_in_software_testing .pdf14-IntegrationTesting_in_software_testing .pdf
14-IntegrationTesting_in_software_testing .pdf
 
VLSI
VLSIVLSI
VLSI
 
[ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Enviro...
[ENGLISH] TDC 2015 - PHP  Trail - Tests and PHP Continuous Integration Enviro...[ENGLISH] TDC 2015 - PHP  Trail - Tests and PHP Continuous Integration Enviro...
[ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Enviro...
 
SystemVerilog_veriflcation and UVM for IC design.ppt
SystemVerilog_veriflcation and UVM for IC design.pptSystemVerilog_veriflcation and UVM for IC design.ppt
SystemVerilog_veriflcation and UVM for IC design.ppt
 
safety assurence in process control
safety assurence in process controlsafety assurence in process control
safety assurence in process control
 
 Test system architectures using advanced standardized test languages
 Test system architectures using advanced standardized test languages Test system architectures using advanced standardized test languages
 Test system architectures using advanced standardized test languages
 
Troubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorTroubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise Integrator
 
White paper: Software-Defined Networking Matrix Switching
White paper: Software-Defined Networking Matrix SwitchingWhite paper: Software-Defined Networking Matrix Switching
White paper: Software-Defined Networking Matrix Switching
 
VLSI
VLSIVLSI
VLSI
 
Troubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise IntegratorTroubleshooting and Best Practices with WSO2 Enterprise Integrator
Troubleshooting and Best Practices with WSO2 Enterprise Integrator
 
Testing
TestingTesting
Testing
 
Ia rm001 -en-p
Ia rm001 -en-pIa rm001 -en-p
Ia rm001 -en-p
 
Test System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test LanguagesTest System Architectures using Advanced Standardized Test Languages
Test System Architectures using Advanced Standardized Test Languages
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_Validation
 

More from Nirav Desai

“Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture” “Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture” Nirav Desai
 
List of vlsi companies in bangalore
List of vlsi companies in bangaloreList of vlsi companies in bangalore
List of vlsi companies in bangaloreNirav Desai
 
Xilinx design flow -By BhargavTarpara
Xilinx design flow -By BhargavTarparaXilinx design flow -By BhargavTarpara
Xilinx design flow -By BhargavTarparaNirav Desai
 

More from Nirav Desai (6)

SATA Protocol
SATA ProtocolSATA Protocol
SATA Protocol
 
AMBA 2.0 PPT
AMBA 2.0 PPTAMBA 2.0 PPT
AMBA 2.0 PPT
 
AMBA 2.0 REPORT
AMBA 2.0 REPORTAMBA 2.0 REPORT
AMBA 2.0 REPORT
 
“Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture” “Optimized AES Algorithm Core Using FeedBack Architecture”
“Optimized AES Algorithm Core Using FeedBack Architecture”
 
List of vlsi companies in bangalore
List of vlsi companies in bangaloreList of vlsi companies in bangalore
List of vlsi companies in bangalore
 
Xilinx design flow -By BhargavTarpara
Xilinx design flow -By BhargavTarparaXilinx design flow -By BhargavTarpara
Xilinx design flow -By BhargavTarpara
 

Recently uploaded

Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxPurva Nikam
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 

Recently uploaded (20)

Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
An introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptxAn introduction to Semiconductor and its types.pptx
An introduction to Semiconductor and its types.pptx
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 

System verilog verification building blocks

  • 1. 1SystemVerilog Verification Building Blocks (Program blocks, Clocking blocks,Interfaces and Packages) 1 - 1
  • 2.  Overview  Interfaces  Program Block  Clocking Block  fork-join  Packages  Summary Overview 1 - 2
  • 3. In Verilog, testbench code and design code are in a separate module — Much effort is required to set the environment to be properly initialized and synchronized  To avoid race conditions between the design and testbench SystemVerilog introduces the program block to separate the testbench Connections between the blocks increases as the design grows — Any wrong connection stops the design from working SystemVerilog also introduces the interface construct to encapsulate the communication between design and verification blocks SystemVerilog Verification Building Blocks 1 - 3
  • 4.  Overview  Interfaces  Program Block  Clocking Block  fork-join  Packages  Summary Interfaces 1 - 4
  • 5. The communication between blocks of a digital system is a critical — Manually connecting many ports can lead to errors — Port declaration in many modules — Change in the design makes it difficult to change SystemVerilog adds a powerful feature called interface Interface encapsulates the interconnection and communication between blocks Interface 1 - 5
  • 6. An interface port declaration syntax is the same as that of modules An interface can contain subroutines An interface can also contain processes (i.e., initial or always procedures) and continuous assignments This allows the interface to include a verifier such as its own protocol checker that automatically verifies all modules connected via the interface to conform to the specified protocol Interface Syntax 1 - 6
  • 9. In the previous example, if the same identifier u_if had been used to name the uart_if interface in the uart_rx and uart_rx_ctl module headers — Then implicit port connections could also have been used to instantiate the uart_rx and uart_rx_ctl modules into the top module, as follows Interface Example: Implicit Port Connections 1 - 9
  • 10. To specify the direction of the signal that uses an interface instead of a port list — modports are used To restrict interface access within a module, modport lists the directions declared within the interface Modports 1 - 1 0
  • 11.  Overview  Interfaces  Program Block  Clocking Block  fork-join  Packages  Summary Program Block 1 - 1 1
  • 12. Usually a testbench contains the following functionality — Interconnect instances — Drives clocks, resets, and other control signals with some of them tied to constant values — Controls test duration — Drives DUT test  Drives design inputs  Checks design outputs  Collects test statistics All these cause the testbench to be a huge text file, containing hundreds or thousands of lines of code Testbenches 1 - 1 2
  • 13. Programs are intended to be instantiated or nested within a testbench, encapsulating all design verification functionality Testbench can include one or more programs — Each program is a design verification (or sub-environment) entry-point — Each program can call the $exit() method  When the $exit() method is called, all the threads opened within the program are terminated — When all the programs are done (either by calling the $exit() method or by finishing all the threads), the $finish() system task is called automatically Programs cannot instantiate modules, but they may have input, output, and inout ports and interfaces like modules Programs 1 - 1 3
  • 14. Program block construct is provided for modeling the testbench environment The program construct serves as a clear separator between design and testbench A program block can contain — Data declarations, class definitions, subroutines, and one or more initial and final procedures A program block cannot contain — always procedures, primitive instances, module instances, interface instances, or other program instances Program Syntax 1 - 1 4
  • 16. Programs within Modules and Interfaces 1 - 1 6
  • 17.  Overview  Interfaces  Program Block  Clocking Block  fork-join  Packages  Summary Clocking Block 1 - 1 7
  • 18. A clocking block is a synchronization part within a module's interconnection (interfaces) or signal drivers (programs and modules) It is intended to make sequenced signals driving/sampling easier Provides immediate ability to specify sampling signal and its input and output skew (timing spec) — Input skew specifies how long before a "real" clock-edge signal is sampled — Output skew specifies how long after a "real" clock-edge signal is driven Clocking Block 1 - 1 8
  • 19. Clocking Block Syntax (1) 1 - 1 9
  • 20. Any signal in a clocking block can be associated with an arbitrary hierarchical expression. A hierarchical expression is introduced by appending an equal sign (=) followed by the hierarchical expression Hierarchical expressions are not limited to simple names or signals in other scopes Clocking Block Syntax (2) 1 - 2 0
  • 21. One clocking block can be specified as the default for all cycle operations A default is valid only within the scope of the default clocking specification Only one default clocking can be specified in a module, interface, program, or checker The ## operator can be used to delay execution by a specified by number of clock cycles or clocking events Default Clocking and ## Cycle Delay 1 - 2 1
  • 22. Default Clocking and ## Cycle Delay Example 1 - 2 2
  • 23. Clocking block within interface is used to specify both signal direction (input, output or inout) and timing spec of signal sampling Clocking block is true hierarchical construct. To access clocked signal use hierarchical path including clocking itself Clocking Block within Interfaces 1 - 2 3
  • 24. A bind operator is intended to insert a module, program, or interface to another module or module instance It allows the verification engineer to add design verification utilities to design with no real RTL code changes Bind Operator (1) 1 - 2 4
  • 26.  Overview  Interfaces  Program Block  Clocking Block  fork-join  Packages  Summary fork-join 1 - 2 6
  • 30. fork-join_none starts a new thread but it does not use any delays It allows calling a task from a function fork-join_none (2) 1 - 3 0
  • 32.  Overview  Interfaces  Program Block  Clocking Block  fork-join  Packages  Summary Packages 1 - 3 2
  • 33. Identifiers declared within a module, interface, program, or checker are local to that scope — Do not affect or conflict with declarations in other building blocks SystemVerilog packages provide an additional mechanism to share with other building blocks Packages 1 - 3 3
  • 34.  Overview  Interfaces  Program Block  Clocking Block  fork-join  Packages  Summary Summary 1 - 3 4
  • 35. 1.What is the purpose of using a program block? 2.What is the need for SystemVerilog interface construct? 3.What is the purpose of clocking block? Answer the following questions 1 - 3 5
  • 36. SystemVerilog verification building blocks are the program block, interfaces, clocking block, and packages SystemVerilog introduces the program block to separate the testbench and to avoid the race conditions between the design and testbench The interface construct encapsulates the interconnection and communication between blocks To restrict the interface access within a module, modport lists the directions declared within the interface Clocking block is a synchronization part within a module's interconnection (interface) or signal drivers (programs and modules) Summary 1 - 3 6