SlideShare a Scribd company logo
1 of 33
Efficient Methodology of Sampling UVM RAL
during Simulation for SoC Functional Coverage
Authors
Sameh El-Ashry, sameh.elashry@si-vision.com
Ahmed Adel, ahmed.adel@si-vision.com
Microprocessor/SoC Test, Security & Verification (MTV18) Conference, Dcemeber 10, 2018, Austin, USA © 2018
Outline
• Motivation.
• Introduction.
• The Proposed UVM RAL Generation Flow.
• The Proposed UVM RAL Backdoor.
• Conclusions.
2
Motivation
3
Why?
How?
• Why Functional Coverage?
• We need good coverage model.
• Sampling problem in bad coverage model.
• Ex: Sampling on the clock is dangerous for
simulation performance.
• Sampling on the change of the
register.
• Efficient backdoor technique is
proposed using RAL model.
Motivation2
• Register files verification represent critical part of any digital design verification
process.
• One of the most powerful ways to model memories and register files is using Register
Abstraction Layer (RAL) which is part of the UVM.
• This paper will go through the process of UVM Register model generation with its
coverage model using Synopsys tools.
4
Motivation3
• We propose an efficient and automated methodology of functional coverage UVM-
based verification environment supported by RAL model, backdoor access and how
to automatically generate it starting from IP-XACT model till producing the UVM RAL
model.
• The proposed methodology has strong flexibility in frequent design specification
changes.
• The proposed functional coverage technique is applied to beat performance
degradation and enhance the simulation.
5
Introduction
6
Register Abstraction Layer (RAL)
• Verification engineers use register models to ease the stimulus generation and the
functional checking.
• A register model consists of a set of register definitions, register instances
clustered under a register block and their address mappings into Design Under
Test's (DUT) address space.
• RAL allows modeling and verification of hardware registers and memory blocks,
the UVM register layer provides read() or write() tasks that can be called from a
UVM sequence.
7
UVM Register Library Features
8
• Read and write for the registers and the memories as part of the normal operation.
• Modeling registers, memory blocks and analyze the register activity.
• Checking the DUT registers and memories against a shadow device (with shadow
registers) at the scoreboard.
• Collect coverage on the registers that are created at the RAL model (point to
improve).
• Initialize the DUT registers and memories.
• Randomize the contents of DUT registers and memories.
The Proposed UVM RAL Generation Flow
• The UVM RAL Generation Flow
• The Proposed Generic, Scalable, and Configurable UVM Architecture
9
The UVM RAL Generation Flow
• UVM provides mapping of register content of DUT, a layer for accessing register, and
memory locations within DUT which is called as RAL.
• Once a description of the available registers and memories in a design is available,
ralgen tool proposed by Synopsys can automatically generate the UVM RAL for these
registers.
10
The UVM RAL Generation Flow2
11
• Figure describes the flow of the UVM register model generation starting from the
Excel spreadsheet register file, the generating of Register Abstraction Layer File
(RALF) format.
Register
File Excel
Format
IP-XACT
Schema
Format
RALF
Model
UVM
Register
Model
UVM Register Model Generation Flow
ralgen
Tool
ralgen
Tool
User
Script
The Proposed UVM Architecture
12
• The designed testbench uses a UVM methodology and constrained random
verification techniques.
• The goal is to meet the expected functional coverage metrics, and verifying the
digital hardware parts in System-on-Chip (SoC) ,and wireless systems.
The Proposed UVM Architecture2
13
• The verification environment was designed to verify a network consisting of up to
four PHYs (DUTs) and can be configured to support extra DUTs as shown in Figure.
• One RAL model is implemented, although we created instances from the RAL model
for each peer.
The Proposed Generic UVM Architecture3
14
• A shared functional coverage model is implemented for all DUTs as some scenarios
may happen at the transmitter side, others scenarios may happen at the receiver
side.
The Proposed UVM Architecture4
15
• One coverage database is needed for the network so the total coverage percentage is
easily merged by automatic way due to the shared functional coverage model.
• A structured testbench is built using classes based on UVM supported by UVM RAL
model and RAL backdoor access.
The Proposed UVM Architecture5
16
• Another effect of using the RAL model is that the total coverage closure time is
reduced due to an automatic integration for the functional coverage and the
covergroups results for all DUT’s instances.
• The automatic integration is achieved by mapping all the DUT’s instances to the
same covergroups at the RAL model.
The Proposed UVM Architecture6
17
• There is one more important thing to simulation performance.
• The number of calling the sample coverage task badly affects simulation performance
next to the size of design.
• Thus, the concept of backdoor for specific data path has been applied to register
modeling.
The Proposed UVM RAL Backdoor
• Conventional UVM Backdoor classes
• Modified UVM Backdoor classes for Coverage Sampling
• Proposed Backdoor Sampling Technique for Checking Proposes
18
Backdoor Access
19
• Front-door access uses the same bus interface for observing operations. This is
commonly used in simulation-based register verification because it does not require
an additional interface for observation.
• Back-door access uses a different interface for observation – usually direct access to
registers.
• Backdoor access enables efficient observation, but requires the use of an additional
interface.
• Backdoor improves the efficiency of verifying registers as it can access register
locations with little or no simulation time.
EDA Vendors RAL Generators
20
• The input specification of a register model such as IPXACT, System RDL, Excel file or
word file (typically in IPXACT or RALF in our case study) contains all of the necessary
information to generate the UVM register model leveraging the UVM base class
library.
Commercial
or open
source
generators
ralgen
tool
IP_XACT
System RDL
Excel file
Word file
UVM Classes RAL Registers
Backdoor read/Write Tasks
Backdoor Classes for Registers
Model Coverage
UVM
Register
Model
Conventional UVM Backdoor classes
21
• There is a lack of literature discussing the backdoor technique using the hierarchical
HDL path based backdoors.
• We discuss the backdoor mechanism and the challenges associated with it.
• In this mechanism, register constructs are accessed using the Verilog style cross-
module references.
• This would be relatively less intensive with regards to simulation performance as the
HDL paths are all resolved at the compile time.
Generated UVM RAL read/write backdoor tasks
22
• The interface would contain tasks defined within it to access the constructs that are
used to model registers in the RTL of the DUT.
Generated UVM RAL backdoor classes
23
• The usage of the backdoor classes and the signatures will not change which will allow
existing RTL code to work seamlessly with the newly generated model.
Modified UVM RAL interface with wait for change
tasks
24
• When Active Monitoring code is desired, the following generated classes and tasks
are modified additionally as shown in Figure.
Modified UVM RAL backdoor classes
25
• The additional code in the interface file would be as shown:
Sampling event to use it in coverage sampling at
the base_test to achieve high performance
coverage/simulation.
Modified UVM RAL backdoor interface.
26
Functional Coverage Model Generation
27
• The coverage model is created at the proposed UVM environment by our scripts to
generate covergroups for the desired registers only and avoid the auto generated
coverage model from the ralgen tool for all registers that are created at the RAL
model so that a higher coverage simulation performance is achieved.
ralgen
tool
IP_XACT
UVM Classes RAL Registers
Backdoor read/Write Tasks (will be modified)
Backdoor Classes for Registers (will be modified)
RAL with Model Coverage
UVM
Register
Model
User
Script
bins_reg_1.txt
bins_reg_2.txt
bins_reg_N.txt
Sampling of the coverage model
28
• The sampling of the coverage model for coverage closure is happening at the UVM
test layer and is controlled using the event trigger for high simulation performance as
shown in Figure.
Sampling for Scoreboard Checking
29
• The scoreboard peeks registers to use the register’s value in a comparison process,
the scoreboard may pull up on the change of the register based on an event that is
triggered from the backdoor classes as shown in Figure.
Conclusions
• Commercial or open source tools support the automatic generation for the functional
coverage model and the covergroups for all implemented registers at the RAL model.
• The auto-generated covergroups are not the most efficient coverage method as the
verification engineers may need to exclude some undesirable registers from the final
coverage report based on the verification coverage plan that is prepared at the
starting of the project.
• The coverage sampling of undesirable registers may lead to low simulation
performance, a new efficient methodology is proposed for the coverage sampling
based on RAL backdoor access to achieve the highest simulation performance.
• The automated methodology has strong flexibility and high-level maintainability
upon frequent specification changes.
30
31
Questions?
Thank You
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functional Coverage

More Related Content

What's hot

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
 
UVM Ral model usage
UVM Ral model usageUVM Ral model usage
UVM Ral model usageParth Pandya
 
verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020Sameh El-Ashry
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic SequencesArrow Devices
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog Ramdas Mozhikunnath
 
SPI introduction(Serial Peripheral Interface)
SPI introduction(Serial Peripheral Interface)SPI introduction(Serial Peripheral Interface)
SPI introduction(Serial Peripheral Interface)SUNODH GARLAPATI
 
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 Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialSystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialAmiq Consulting
 
Functional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor GraphicsFunctional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor GraphicseInfochips (An Arrow Company)
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register PackageDVClub
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_featuresNirav Desai
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology TutorialArrow Devices
 
Spi master core verification
Spi master core verificationSpi master core verification
Spi master core verificationMaulik Suthar
 
14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossingUsha Mehta
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)DVClub
 
System verilog control flow
System verilog control flowSystem verilog control flow
System verilog control flowPushpa Yakkala
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 sessionSameh El-Ashry
 

What's hot (20)

System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )
 
UVM Ral model usage
UVM Ral model usageUVM Ral model usage
UVM Ral model usage
 
verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic Sequences
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
 
ASIC design verification
ASIC design verificationASIC design verification
ASIC design verification
 
SPI introduction(Serial Peripheral Interface)
SPI introduction(Serial Peripheral Interface)SPI introduction(Serial Peripheral Interface)
SPI introduction(Serial Peripheral Interface)
 
CPU Verification
CPU VerificationCPU Verification
CPU Verification
 
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 Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 TutorialSystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
SystemVerilog Assertions verification with SVAUnit - DVCon US 2016 Tutorial
 
Functional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor GraphicsFunctional Coverage Development Tips - Mentor Graphics
Functional Coverage Development Tips - Mentor Graphics
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register Package
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_features
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology Tutorial
 
Spi master core verification
Spi master core verificationSpi master core verification
Spi master core verification
 
14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing14 static timing_analysis_5_clock_domain_crossing
14 static timing_analysis_5_clock_domain_crossing
 
Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)Finding Bugs Faster with Assertion Based Verification (ABV)
Finding Bugs Faster with Assertion Based Verification (ABV)
 
System verilog control flow
System verilog control flowSystem verilog control flow
System verilog control flow
 
Uvm dac2011 final_color
Uvm dac2011 final_colorUvm dac2011 final_color
Uvm dac2011 final_color
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 session
 

Similar to Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functional Coverage

chapter8.ppt clean code Boundary ppt Coding guide
chapter8.ppt clean code Boundary ppt Coding guidechapter8.ppt clean code Boundary ppt Coding guide
chapter8.ppt clean code Boundary ppt Coding guideSanjeevSaharan5
 
Optimica Compiler Toolkit - Overview
Optimica Compiler Toolkit - OverviewOptimica Compiler Toolkit - Overview
Optimica Compiler Toolkit - OverviewModelon
 
Energy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systemsEnergy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systemsDeepak Shankar
 
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...waqarnabi
 
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncQuery Labs
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsLightbend
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon
 
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...ijceronline
 
Basics of micro controllers for biginners
Basics of  micro controllers for biginnersBasics of  micro controllers for biginners
Basics of micro controllers for biginnersGerwin Makanyanga
 
Advanced computer architecture lesson 5 and 6
Advanced computer architecture lesson 5 and 6Advanced computer architecture lesson 5 and 6
Advanced computer architecture lesson 5 and 6Ismail Mukiibi
 
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...waqarnabi
 
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data StreamsMachine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data StreamsLightbend
 
AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewLuca Berardinelli
 
Introduction to arm processor
Introduction to arm processorIntroduction to arm processor
Introduction to arm processorRAMPRAKASHT1
 
WS-VLAM workflow
WS-VLAM workflowWS-VLAM workflow
WS-VLAM workflowguest6295d0
 

Similar to Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functional Coverage (20)

OMA Lightweight M2M
OMA Lightweight M2M OMA Lightweight M2M
OMA Lightweight M2M
 
OpenPOWER Webinar
OpenPOWER Webinar OpenPOWER Webinar
OpenPOWER Webinar
 
chapter8.ppt clean code Boundary ppt Coding guide
chapter8.ppt clean code Boundary ppt Coding guidechapter8.ppt clean code Boundary ppt Coding guide
chapter8.ppt clean code Boundary ppt Coding guide
 
Mod 3.pptx
Mod 3.pptxMod 3.pptx
Mod 3.pptx
 
Creo Parametric and Windchill Workspace.pdf
Creo Parametric and Windchill Workspace.pdfCreo Parametric and Windchill Workspace.pdf
Creo Parametric and Windchill Workspace.pdf
 
Optimica Compiler Toolkit - Overview
Optimica Compiler Toolkit - OverviewOptimica Compiler Toolkit - Overview
Optimica Compiler Toolkit - Overview
 
Energy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systemsEnergy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systems
 
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
 
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
 
Embedded C
Embedded CEmbedded C
Embedded C
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML Models
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016
 
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
Matlab Based High Level Synthesis Engine for Area And Power Efficient Arithme...
 
Basics of micro controllers for biginners
Basics of  micro controllers for biginnersBasics of  micro controllers for biginners
Basics of micro controllers for biginners
 
Advanced computer architecture lesson 5 and 6
Advanced computer architecture lesson 5 and 6Advanced computer architecture lesson 5 and 6
Advanced computer architecture lesson 5 and 6
 
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...
 
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data StreamsMachine Learning At Speed: Operationalizing ML For Real-Time Data Streams
Machine Learning At Speed: Operationalizing ML For Real-Time Data Streams
 
AutomationML: A Model-Driven View
AutomationML: A Model-Driven ViewAutomationML: A Model-Driven View
AutomationML: A Model-Driven View
 
Introduction to arm processor
Introduction to arm processorIntroduction to arm processor
Introduction to arm processor
 
WS-VLAM workflow
WS-VLAM workflowWS-VLAM workflow
WS-VLAM workflow
 

More from Sameh El-Ashry

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
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerSameh El-Ashry
 
On Error Injection for NoC Platforms: A UVM-based Practical Case Study
On Error Injection for NoC Platforms: A UVM-based Practical Case StudyOn Error Injection for NoC Platforms: A UVM-based Practical Case Study
On Error Injection for NoC Platforms: A UVM-based Practical Case StudySameh El-Ashry
 
A reusable verification environment for NoC platforms using UVM
A reusable verification environment for NoC platforms using UVMA reusable verification environment for NoC platforms using UVM
A reusable verification environment for NoC platforms using UVMSameh El-Ashry
 
On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...Sameh El-Ashry
 
Code Management Workshop
Code Management WorkshopCode Management Workshop
Code Management WorkshopSameh El-Ashry
 

More from Sameh El-Ashry (6)

How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?How to create SystemVerilog verification environment?
How to create SystemVerilog verification environment?
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI career
 
On Error Injection for NoC Platforms: A UVM-based Practical Case Study
On Error Injection for NoC Platforms: A UVM-based Practical Case StudyOn Error Injection for NoC Platforms: A UVM-based Practical Case Study
On Error Injection for NoC Platforms: A UVM-based Practical Case Study
 
A reusable verification environment for NoC platforms using UVM
A reusable verification environment for NoC platforms using UVMA reusable verification environment for NoC platforms using UVM
A reusable verification environment for NoC platforms using UVM
 
On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...On the verification of configurable nocs in simulation and hardware emulation...
On the verification of configurable nocs in simulation and hardware emulation...
 
Code Management Workshop
Code Management WorkshopCode Management Workshop
Code Management Workshop
 

Recently uploaded

Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
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
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacingjaychoudhary37
 
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
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 

Recently uploaded (20)

Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
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
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
microprocessor 8085 and its interfacing
microprocessor 8085  and its interfacingmicroprocessor 8085  and its interfacing
microprocessor 8085 and its interfacing
 
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
 
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
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 

Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functional Coverage

  • 1. Efficient Methodology of Sampling UVM RAL during Simulation for SoC Functional Coverage Authors Sameh El-Ashry, sameh.elashry@si-vision.com Ahmed Adel, ahmed.adel@si-vision.com Microprocessor/SoC Test, Security & Verification (MTV18) Conference, Dcemeber 10, 2018, Austin, USA © 2018
  • 2. Outline • Motivation. • Introduction. • The Proposed UVM RAL Generation Flow. • The Proposed UVM RAL Backdoor. • Conclusions. 2
  • 3. Motivation 3 Why? How? • Why Functional Coverage? • We need good coverage model. • Sampling problem in bad coverage model. • Ex: Sampling on the clock is dangerous for simulation performance. • Sampling on the change of the register. • Efficient backdoor technique is proposed using RAL model.
  • 4. Motivation2 • Register files verification represent critical part of any digital design verification process. • One of the most powerful ways to model memories and register files is using Register Abstraction Layer (RAL) which is part of the UVM. • This paper will go through the process of UVM Register model generation with its coverage model using Synopsys tools. 4
  • 5. Motivation3 • We propose an efficient and automated methodology of functional coverage UVM- based verification environment supported by RAL model, backdoor access and how to automatically generate it starting from IP-XACT model till producing the UVM RAL model. • The proposed methodology has strong flexibility in frequent design specification changes. • The proposed functional coverage technique is applied to beat performance degradation and enhance the simulation. 5
  • 7. Register Abstraction Layer (RAL) • Verification engineers use register models to ease the stimulus generation and the functional checking. • A register model consists of a set of register definitions, register instances clustered under a register block and their address mappings into Design Under Test's (DUT) address space. • RAL allows modeling and verification of hardware registers and memory blocks, the UVM register layer provides read() or write() tasks that can be called from a UVM sequence. 7
  • 8. UVM Register Library Features 8 • Read and write for the registers and the memories as part of the normal operation. • Modeling registers, memory blocks and analyze the register activity. • Checking the DUT registers and memories against a shadow device (with shadow registers) at the scoreboard. • Collect coverage on the registers that are created at the RAL model (point to improve). • Initialize the DUT registers and memories. • Randomize the contents of DUT registers and memories.
  • 9. The Proposed UVM RAL Generation Flow • The UVM RAL Generation Flow • The Proposed Generic, Scalable, and Configurable UVM Architecture 9
  • 10. The UVM RAL Generation Flow • UVM provides mapping of register content of DUT, a layer for accessing register, and memory locations within DUT which is called as RAL. • Once a description of the available registers and memories in a design is available, ralgen tool proposed by Synopsys can automatically generate the UVM RAL for these registers. 10
  • 11. The UVM RAL Generation Flow2 11 • Figure describes the flow of the UVM register model generation starting from the Excel spreadsheet register file, the generating of Register Abstraction Layer File (RALF) format. Register File Excel Format IP-XACT Schema Format RALF Model UVM Register Model UVM Register Model Generation Flow ralgen Tool ralgen Tool User Script
  • 12. The Proposed UVM Architecture 12 • The designed testbench uses a UVM methodology and constrained random verification techniques. • The goal is to meet the expected functional coverage metrics, and verifying the digital hardware parts in System-on-Chip (SoC) ,and wireless systems.
  • 13. The Proposed UVM Architecture2 13 • The verification environment was designed to verify a network consisting of up to four PHYs (DUTs) and can be configured to support extra DUTs as shown in Figure. • One RAL model is implemented, although we created instances from the RAL model for each peer.
  • 14. The Proposed Generic UVM Architecture3 14 • A shared functional coverage model is implemented for all DUTs as some scenarios may happen at the transmitter side, others scenarios may happen at the receiver side.
  • 15. The Proposed UVM Architecture4 15 • One coverage database is needed for the network so the total coverage percentage is easily merged by automatic way due to the shared functional coverage model. • A structured testbench is built using classes based on UVM supported by UVM RAL model and RAL backdoor access.
  • 16. The Proposed UVM Architecture5 16 • Another effect of using the RAL model is that the total coverage closure time is reduced due to an automatic integration for the functional coverage and the covergroups results for all DUT’s instances. • The automatic integration is achieved by mapping all the DUT’s instances to the same covergroups at the RAL model.
  • 17. The Proposed UVM Architecture6 17 • There is one more important thing to simulation performance. • The number of calling the sample coverage task badly affects simulation performance next to the size of design. • Thus, the concept of backdoor for specific data path has been applied to register modeling.
  • 18. The Proposed UVM RAL Backdoor • Conventional UVM Backdoor classes • Modified UVM Backdoor classes for Coverage Sampling • Proposed Backdoor Sampling Technique for Checking Proposes 18
  • 19. Backdoor Access 19 • Front-door access uses the same bus interface for observing operations. This is commonly used in simulation-based register verification because it does not require an additional interface for observation. • Back-door access uses a different interface for observation – usually direct access to registers. • Backdoor access enables efficient observation, but requires the use of an additional interface. • Backdoor improves the efficiency of verifying registers as it can access register locations with little or no simulation time.
  • 20. EDA Vendors RAL Generators 20 • The input specification of a register model such as IPXACT, System RDL, Excel file or word file (typically in IPXACT or RALF in our case study) contains all of the necessary information to generate the UVM register model leveraging the UVM base class library. Commercial or open source generators ralgen tool IP_XACT System RDL Excel file Word file UVM Classes RAL Registers Backdoor read/Write Tasks Backdoor Classes for Registers Model Coverage UVM Register Model
  • 21. Conventional UVM Backdoor classes 21 • There is a lack of literature discussing the backdoor technique using the hierarchical HDL path based backdoors. • We discuss the backdoor mechanism and the challenges associated with it. • In this mechanism, register constructs are accessed using the Verilog style cross- module references. • This would be relatively less intensive with regards to simulation performance as the HDL paths are all resolved at the compile time.
  • 22. Generated UVM RAL read/write backdoor tasks 22 • The interface would contain tasks defined within it to access the constructs that are used to model registers in the RTL of the DUT.
  • 23. Generated UVM RAL backdoor classes 23 • The usage of the backdoor classes and the signatures will not change which will allow existing RTL code to work seamlessly with the newly generated model.
  • 24. Modified UVM RAL interface with wait for change tasks 24 • When Active Monitoring code is desired, the following generated classes and tasks are modified additionally as shown in Figure.
  • 25. Modified UVM RAL backdoor classes 25 • The additional code in the interface file would be as shown: Sampling event to use it in coverage sampling at the base_test to achieve high performance coverage/simulation.
  • 26. Modified UVM RAL backdoor interface. 26
  • 27. Functional Coverage Model Generation 27 • The coverage model is created at the proposed UVM environment by our scripts to generate covergroups for the desired registers only and avoid the auto generated coverage model from the ralgen tool for all registers that are created at the RAL model so that a higher coverage simulation performance is achieved. ralgen tool IP_XACT UVM Classes RAL Registers Backdoor read/Write Tasks (will be modified) Backdoor Classes for Registers (will be modified) RAL with Model Coverage UVM Register Model User Script bins_reg_1.txt bins_reg_2.txt bins_reg_N.txt
  • 28. Sampling of the coverage model 28 • The sampling of the coverage model for coverage closure is happening at the UVM test layer and is controlled using the event trigger for high simulation performance as shown in Figure.
  • 29. Sampling for Scoreboard Checking 29 • The scoreboard peeks registers to use the register’s value in a comparison process, the scoreboard may pull up on the change of the register based on an event that is triggered from the backdoor classes as shown in Figure.
  • 30. Conclusions • Commercial or open source tools support the automatic generation for the functional coverage model and the covergroups for all implemented registers at the RAL model. • The auto-generated covergroups are not the most efficient coverage method as the verification engineers may need to exclude some undesirable registers from the final coverage report based on the verification coverage plan that is prepared at the starting of the project. • The coverage sampling of undesirable registers may lead to low simulation performance, a new efficient methodology is proposed for the coverage sampling based on RAL backdoor access to achieve the highest simulation performance. • The automated methodology has strong flexibility and high-level maintainability upon frequent specification changes. 30