SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
TM
Efficient Migration ofEfficient Migration of VerilogVerilog
TestbenchesTestbenches to ‘UVM’ keepingto ‘UVM’ keeping
the functionality intact:the functionality intact:
Do’s andDo’s and Dont’sDont’s
Mehul Kumar & Nitin Goel
Date – 22 Dec 2011
Agenda
• Need for Migration
• Conversion of Sequential, Combinatorial and Continous assignments
• Conversion of forces & releases
•Conversion of Inout ports
•Conversion of UI from APIs
•Conversion of monitor events
TM 2
•Conversion of monitor events
•Establishing coherency between converted code with verilog counterpart
•Conclusion
Why is this migration needed?
• Increase in design complexity
• More than 100 IPs per SoC
• Reuse of legacy IP
• Avoid hybrid testbenches
• Newer components in the latest methodology
TM 3
• Newer components in the latest methodology
• Environment bring up
• Complex to scale
• Maintain
Verilog Testbench and its equivalent UVM
Testbench
TM 4
Converting always sequential logic, always
combinatorial logic and Continuous assignments
TM 5
• Combinatorial and sequential blocks are converted to 'task‘
• Sequential block non-blocking assignments are changed to blocking
• Continuous assignments mapped to functions returning values.
•A simple script is utilized to perform the conversion
•'naming 'of tasks could be edited later on.
How the Verilog event behavior is compensated when
all assignment types have been transformed to
blocking?
•Events executed in order:
• Active events
• Inactive events (#0 delay
assignments)
• Non Blocking assignments
• Monitor events
•In one time step all events are
TM 6
handled by Simulator
apb_interface :
apb_master class:
Dynamics of SystemVerilog code in terms of the
events and functional mapping of Verilog behavior
TM 7
•Two events are declared inside the APB interface
• 'master_nba_evt' (non-blocking event)
• 'master_act_evt' (Active event).
•Active event blocks the execution of the following:
• Waiting for posedge of clock
• Generation of Non-Blocking event.
•A 'main' task is used to synchronize code flow for APB master class
Note the "->>" being different from active event
trigger "->"
Event synchronization between code execution and region
execution
TM 8
Step 1: Active Event execution of line " ->apb_if.master_act_evnt; “
Generate trigger “master_nba_evnt”
All the combinatorial converted tasks executed
The code jumps to the wait of the sequential block trigger.
#Step2: NBA event "master_nba_evt" is triggered in the NBA region
"assign_current_state" task is executed
Blocking assignment of "present_state" variable is scheduled for #Step3.
#Step3: Blocking assignment for “present_state” is done . Repeat #Step1.
Verilog code transitions in following manner:
#Step1: Change in wire triggers 'always' block and 'next_state' is assigned.
#Step2: NBA assignment of 'present_state' is done
#Step3: Repeat #Step1
Timing Diagram to explain Verilog and System Verilog
code flow
TM 9
•In Verilog at simulator timestep 4 'pending_transaction' wire has a change in value
• Triggers the 'always' block to decide the 'next_state‘ handled in active region of timestep5.
• Assigned to 'present_state' variable in NBA region of timestep6 falling after the posedge of PCLK.
• In SystemVerilog 'act_evt' gets triggers in active region of timestep5 before the posedge of the PCLK.
• 'next_state' assignment is done in the same timestep in active region
• 'nba_evt' gets triggered in the NBA region of timestep6 falling after the posedge of PCLK
• 'present_state' assignment is scheduled to be done in active region of time step7.
• At timestep7 both code shows value of 'next_state' deposited on 'present_state' variable
Conversion of Force & Releases
TM 10
• A mux based logic is implemented inside the interface
• output signal 'a_o‘
• A mux select signal 'force_a_at_x‘
• force value at the wire 'a' when the select is '1' else actual 'a_o' value
•Functionality is similar to Verilog
Conversion of Inout Ports
TM 11
•A Verilog inout pin bifurcated :
• 'output_enable‘
• 'output‘
• 'input’
•UVM driver class implements these three ports instead of one' inout' pin.
•When the output is not selected a high'z' is driven
Conversion of User Interface from APIs
•API of Verilog driver
• 'addr', 'data' , 'strb' and 'write as
arguments
•API removed
•Sequence item class is utilized
• Testcase only needs to randomize one sequence
item instead of calling separate APIs for each
functionality to be executed by the driver
TM 12
functionality to be executed by the driver
Monitor :: Event Base -> Object Base reporting via
Analysis Ports
TM 13
• 'event' data type is triggered on occurrence of a particular condition.
• UVM monitor class an analysis port of type of 'apb_transaction' is created
• ‘write’ method of the analysis port is called to publish the event information.
• All events are stored inside TLM fifo to be processed by subscriber (scoreboard).
• Conversion mapping is direct
• triggering 'event‘ modified to a 'write' method call
How to establish that the ported UVM testbench is
conforming with Verilog testbench?
•No LEC kind of tool to check the conformity between two different
forms of same testbench.
• A Verilog proven assertion/protocol checker plugged in UVM converted
testbench
• Testcases were run to achieve 100% DUT code coverage
TM 14
Benefits of the approach
• Cycle time reduction.
• a reduction in cycle time of 30%-50%(approx.),
•UVM provides additional benefits
• Layered testbench enabling reuse
• Randomization
• Coverage driven Verification.
•UVM RAL provides the automated register check testcases
TM 15
Some Facts from a Typical IP Testbench environment
porting
S.No. Data Points Verilog Testbench UVM Testbench
1. Number Of Tests 550 35
2 Randomization No Yes
3 Reusability of Stimulus No Yes
TM 16
3 Reusability of Stimulus No Yes
4 Scalability of Testbench No Yes
5
Approximate Lines Of Code
per testcase
>225 <40
THANK YOU!!
TM 17

Contenu connexe

Tendances

System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coveragerraimi
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-ExpressDVClub
 
Spi master core verification
Spi master core verificationSpi master core verification
Spi master core verificationMaulik Suthar
 
Introduction to RTOS
Introduction to RTOSIntroduction to RTOS
Introduction to RTOSYong Heui Cho
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coveragePushpa Yakkala
 
Basics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow DevicesBasics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow DevicesArrow Devices
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelDVClub
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology TutorialArrow Devices
 
System verilog control flow
System verilog control flowSystem verilog control flow
System verilog control flowPushpa Yakkala
 
UVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONUVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONIAEME Publication
 
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
 
Intelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrtIntelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrtTieto Corporation
 

Tendances (20)

System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coverage
 
PCIe DL_layer_3.0.1 (1)
PCIe DL_layer_3.0.1 (1)PCIe DL_layer_3.0.1 (1)
PCIe DL_layer_3.0.1 (1)
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
Spi master core verification
Spi master core verificationSpi master core verification
Spi master core verification
 
CPU Verification
CPU VerificationCPU Verification
CPU Verification
 
axi protocol
axi protocolaxi protocol
axi protocol
 
Introduction to RTOS
Introduction to RTOSIntroduction to RTOS
Introduction to RTOS
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coverage
 
Basics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow DevicesBasics of Functional Verification - Arrow Devices
Basics of Functional Verification - Arrow Devices
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC Level
 
Lec13
Lec13Lec13
Lec13
 
UVM Methodology Tutorial
UVM Methodology TutorialUVM Methodology Tutorial
UVM Methodology Tutorial
 
System verilog control flow
System verilog control flowSystem verilog control flow
System verilog control flow
 
AXI Protocol.pptx
AXI Protocol.pptxAXI Protocol.pptx
AXI Protocol.pptx
 
UVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONUVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATION
 
Introduction to System verilog
Introduction to System verilog Introduction to System verilog
Introduction to System verilog
 
Linux Internals - Interview essentials 2.0
Linux Internals - Interview essentials 2.0Linux Internals - Interview essentials 2.0
Linux Internals - Interview essentials 2.0
 
Uvm presentation dac2011_final
Uvm presentation dac2011_finalUvm presentation dac2011_final
Uvm presentation dac2011_final
 
Intelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrtIntelligent IoT Gateway on OpenWrt
Intelligent IoT Gateway on OpenWrt
 
AMBA 2.0 REPORT
AMBA 2.0 REPORTAMBA 2.0 REPORT
AMBA 2.0 REPORT
 

En vedette

Verilog HDL Verification
Verilog HDL VerificationVerilog HDL Verification
Verilog HDL Verificationdennis gookyi
 
Verilog Tutorial - Verilog HDL Tutorial with Examples
Verilog Tutorial - Verilog HDL Tutorial with ExamplesVerilog Tutorial - Verilog HDL Tutorial with Examples
Verilog Tutorial - Verilog HDL Tutorial with ExamplesE2MATRIX
 
Mixed signal verification challenges - slides
Mixed signal verification challenges - slidesMixed signal verification challenges - slides
Mixed signal verification challenges - slidesRégis SANTONJA
 
Testbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for TestbenchesTestbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for TestbenchesDVClub
 
Verilog hdl by samir palnitkar for verilog know how
Verilog hdl   by samir palnitkar for verilog know howVerilog hdl   by samir palnitkar for verilog know how
Verilog hdl by samir palnitkar for verilog know howSyed Ghufran Hassan
 
Re usable continuous-time analog sva assertions - slides
Re usable continuous-time analog sva assertions - slidesRe usable continuous-time analog sva assertions - slides
Re usable continuous-time analog sva assertions - slidesRégis SANTONJA
 

En vedette (7)

Verilog HDL Verification
Verilog HDL VerificationVerilog HDL Verification
Verilog HDL Verification
 
Verilog Tutorial - Verilog HDL Tutorial with Examples
Verilog Tutorial - Verilog HDL Tutorial with ExamplesVerilog Tutorial - Verilog HDL Tutorial with Examples
Verilog Tutorial - Verilog HDL Tutorial with Examples
 
Mixed signal verification challenges - slides
Mixed signal verification challenges - slidesMixed signal verification challenges - slides
Mixed signal verification challenges - slides
 
Testbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for TestbenchesTestbench Linter: Automated Rule Checker Framework for Testbenches
Testbench Linter: Automated Rule Checker Framework for Testbenches
 
Verilog hdl by samir palnitkar for verilog know how
Verilog hdl   by samir palnitkar for verilog know howVerilog hdl   by samir palnitkar for verilog know how
Verilog hdl by samir palnitkar for verilog know how
 
Re usable continuous-time analog sva assertions - slides
Re usable continuous-time analog sva assertions - slidesRe usable continuous-time analog sva assertions - slides
Re usable continuous-time analog sva assertions - slides
 
AMBA 2.0 PPT
AMBA 2.0 PPTAMBA 2.0 PPT
AMBA 2.0 PPT
 

Similaire à Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality Intact

Application of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC projectApplication of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC projectNieves Salor
 
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen HypervisorMatteo Ferroni
 
10 implementing subprograms
10 implementing subprograms10 implementing subprograms
10 implementing subprogramsMunawar Ahmed
 
Slide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by SuzakiSlide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by SuzakiKuniyasu Suzaki
 
Control unit design
Control unit designControl unit design
Control unit designDhaval Bagal
 
Libckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unixLibckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unixZongYing Lyu
 
3. CPU virtualization and scheduling
3. CPU virtualization and scheduling3. CPU virtualization and scheduling
3. CPU virtualization and schedulingHwanju Kim
 
MODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptxMODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptxsenthilkumar969017
 
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012TEST Huddle
 
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksKernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksAnne Nicolas
 
XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...
XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...
XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...The Linux Foundation
 
DvClub 2102 tlm based software control of uvcs for vertical verification re...
DvClub 2102   tlm based software control of uvcs for vertical verification re...DvClub 2102   tlm based software control of uvcs for vertical verification re...
DvClub 2102 tlm based software control of uvcs for vertical verification re...Amit Bhandu
 
Viavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptxViavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptxmani723
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)Tibo Beijen
 

Similaire à Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality Intact (20)

Application of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC projectApplication of the automation know-how within the EGS-CC project
Application of the automation know-how within the EGS-CC project
 
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
[EWiLi2016] Enabling power-awareness for the Xen Hypervisor
 
10 implementing subprograms
10 implementing subprograms10 implementing subprograms
10 implementing subprograms
 
Slide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by SuzakiSlide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by Suzaki
 
Fault tolerance
Fault toleranceFault tolerance
Fault tolerance
 
Control unit design
Control unit designControl unit design
Control unit design
 
Libckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unixLibckpt transparent checkpointing under unix
Libckpt transparent checkpointing under unix
 
UVM Basics.pdf
UVM Basics.pdfUVM Basics.pdf
UVM Basics.pdf
 
3. CPU virtualization and scheduling
3. CPU virtualization and scheduling3. CPU virtualization and scheduling
3. CPU virtualization and scheduling
 
Hypervisors
HypervisorsHypervisors
Hypervisors
 
MODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptxMODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptx
 
ASIC design verification
ASIC design verificationASIC design verification
ASIC design verification
 
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
 
17-virtualization.pptx
17-virtualization.pptx17-virtualization.pptx
17-virtualization.pptx
 
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksKernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
 
XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...
XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...
XPDDS17: Approach to Native Applications in XEN on ARM - Volodymyr Babchuk, E...
 
DvClub 2102 tlm based software control of uvcs for vertical verification re...
DvClub 2102   tlm based software control of uvcs for vertical verification re...DvClub 2102   tlm based software control of uvcs for vertical verification re...
DvClub 2102 tlm based software control of uvcs for vertical verification re...
 
Viavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptxViavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptx
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
 
Micro programmed control
Micro programmed controlMicro programmed control
Micro programmed control
 

Plus de DVClub

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseDVClub
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment OverviewDVClub
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesDVClub
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)DVClub
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)DVClub
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyDVClub
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUsDVClub
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACTDVClub
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentDVClub
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal ValidationDVClub
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design CommunityDVClub
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemCDVClub
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessDVClub
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through MethodologyDVClub
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationDVClub
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 ProcessorDVClub
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceDVClub
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS VerificationDVClub
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and VerificationDVClub
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register PackageDVClub
 

Plus de DVClub (20)

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification Methodology
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team Environment
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design Community
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through Methodology
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si Validation
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification Experience
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS Verification
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 
UVM Update: Register Package
UVM Update: Register PackageUVM Update: Register Package
UVM Update: Register Package
 

Efficient Migration of Verilog Testbenches to 'UVM' Keeping the Functionality Intact

  • 1. TM Efficient Migration ofEfficient Migration of VerilogVerilog TestbenchesTestbenches to ‘UVM’ keepingto ‘UVM’ keeping the functionality intact:the functionality intact: Do’s andDo’s and Dont’sDont’s Mehul Kumar & Nitin Goel Date – 22 Dec 2011
  • 2. Agenda • Need for Migration • Conversion of Sequential, Combinatorial and Continous assignments • Conversion of forces & releases •Conversion of Inout ports •Conversion of UI from APIs •Conversion of monitor events TM 2 •Conversion of monitor events •Establishing coherency between converted code with verilog counterpart •Conclusion
  • 3. Why is this migration needed? • Increase in design complexity • More than 100 IPs per SoC • Reuse of legacy IP • Avoid hybrid testbenches • Newer components in the latest methodology TM 3 • Newer components in the latest methodology • Environment bring up • Complex to scale • Maintain
  • 4. Verilog Testbench and its equivalent UVM Testbench TM 4
  • 5. Converting always sequential logic, always combinatorial logic and Continuous assignments TM 5 • Combinatorial and sequential blocks are converted to 'task‘ • Sequential block non-blocking assignments are changed to blocking • Continuous assignments mapped to functions returning values. •A simple script is utilized to perform the conversion •'naming 'of tasks could be edited later on.
  • 6. How the Verilog event behavior is compensated when all assignment types have been transformed to blocking? •Events executed in order: • Active events • Inactive events (#0 delay assignments) • Non Blocking assignments • Monitor events •In one time step all events are TM 6 handled by Simulator
  • 7. apb_interface : apb_master class: Dynamics of SystemVerilog code in terms of the events and functional mapping of Verilog behavior TM 7 •Two events are declared inside the APB interface • 'master_nba_evt' (non-blocking event) • 'master_act_evt' (Active event). •Active event blocks the execution of the following: • Waiting for posedge of clock • Generation of Non-Blocking event. •A 'main' task is used to synchronize code flow for APB master class Note the "->>" being different from active event trigger "->"
  • 8. Event synchronization between code execution and region execution TM 8 Step 1: Active Event execution of line " ->apb_if.master_act_evnt; “ Generate trigger “master_nba_evnt” All the combinatorial converted tasks executed The code jumps to the wait of the sequential block trigger. #Step2: NBA event "master_nba_evt" is triggered in the NBA region "assign_current_state" task is executed Blocking assignment of "present_state" variable is scheduled for #Step3. #Step3: Blocking assignment for “present_state” is done . Repeat #Step1. Verilog code transitions in following manner: #Step1: Change in wire triggers 'always' block and 'next_state' is assigned. #Step2: NBA assignment of 'present_state' is done #Step3: Repeat #Step1
  • 9. Timing Diagram to explain Verilog and System Verilog code flow TM 9 •In Verilog at simulator timestep 4 'pending_transaction' wire has a change in value • Triggers the 'always' block to decide the 'next_state‘ handled in active region of timestep5. • Assigned to 'present_state' variable in NBA region of timestep6 falling after the posedge of PCLK. • In SystemVerilog 'act_evt' gets triggers in active region of timestep5 before the posedge of the PCLK. • 'next_state' assignment is done in the same timestep in active region • 'nba_evt' gets triggered in the NBA region of timestep6 falling after the posedge of PCLK • 'present_state' assignment is scheduled to be done in active region of time step7. • At timestep7 both code shows value of 'next_state' deposited on 'present_state' variable
  • 10. Conversion of Force & Releases TM 10 • A mux based logic is implemented inside the interface • output signal 'a_o‘ • A mux select signal 'force_a_at_x‘ • force value at the wire 'a' when the select is '1' else actual 'a_o' value •Functionality is similar to Verilog
  • 11. Conversion of Inout Ports TM 11 •A Verilog inout pin bifurcated : • 'output_enable‘ • 'output‘ • 'input’ •UVM driver class implements these three ports instead of one' inout' pin. •When the output is not selected a high'z' is driven
  • 12. Conversion of User Interface from APIs •API of Verilog driver • 'addr', 'data' , 'strb' and 'write as arguments •API removed •Sequence item class is utilized • Testcase only needs to randomize one sequence item instead of calling separate APIs for each functionality to be executed by the driver TM 12 functionality to be executed by the driver
  • 13. Monitor :: Event Base -> Object Base reporting via Analysis Ports TM 13 • 'event' data type is triggered on occurrence of a particular condition. • UVM monitor class an analysis port of type of 'apb_transaction' is created • ‘write’ method of the analysis port is called to publish the event information. • All events are stored inside TLM fifo to be processed by subscriber (scoreboard). • Conversion mapping is direct • triggering 'event‘ modified to a 'write' method call
  • 14. How to establish that the ported UVM testbench is conforming with Verilog testbench? •No LEC kind of tool to check the conformity between two different forms of same testbench. • A Verilog proven assertion/protocol checker plugged in UVM converted testbench • Testcases were run to achieve 100% DUT code coverage TM 14
  • 15. Benefits of the approach • Cycle time reduction. • a reduction in cycle time of 30%-50%(approx.), •UVM provides additional benefits • Layered testbench enabling reuse • Randomization • Coverage driven Verification. •UVM RAL provides the automated register check testcases TM 15
  • 16. Some Facts from a Typical IP Testbench environment porting S.No. Data Points Verilog Testbench UVM Testbench 1. Number Of Tests 550 35 2 Randomization No Yes 3 Reusability of Stimulus No Yes TM 16 3 Reusability of Stimulus No Yes 4 Scalability of Testbench No Yes 5 Approximate Lines Of Code per testcase >225 <40