SlideShare a Scribd company logo
1 of 17
Download to read offline
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

More Related Content

What's hot

UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic SequencesArrow Devices
 
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
 
DESIGN OF IEEE 1149.1 TAP CONTROLLER IP CORE
DESIGN OF IEEE 1149.1 TAP CONTROLLER IP COREDESIGN OF IEEE 1149.1 TAP CONTROLLER IP CORE
DESIGN OF IEEE 1149.1 TAP CONTROLLER IP COREcscpconf
 
System verilog important
System verilog importantSystem verilog important
System verilog importantelumalai7
 
SystemVerilog Assertion.pptx
SystemVerilog Assertion.pptxSystemVerilog Assertion.pptx
SystemVerilog Assertion.pptxNothing!
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coveragePushpa Yakkala
 
System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coveragerraimi
 
Introduction to TCL Programming : Tcl/Tk by Gaurav Roy
Introduction to TCL Programming : Tcl/Tk by Gaurav RoyIntroduction to TCL Programming : Tcl/Tk by Gaurav Roy
Introduction to TCL Programming : Tcl/Tk by Gaurav RoyGaurav Ray
 
System Verilog Tutorial - VHDL
System Verilog Tutorial - VHDLSystem Verilog Tutorial - VHDL
System Verilog Tutorial - VHDLE2MATRIX
 
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
 
REGULAR EXPRESSION TO N.F.A
REGULAR EXPRESSION TO N.F.AREGULAR EXPRESSION TO N.F.A
REGULAR EXPRESSION TO N.F.ADev Ashish
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototypingYan Vugenfirer
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverageNirav Desai
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocksNirav Desai
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSubash John
 
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
 

What's hot (20)

Uvm dac2011 final_color
Uvm dac2011 final_colorUvm dac2011 final_color
Uvm dac2011 final_color
 
Introduction to Makefile
Introduction to MakefileIntroduction to Makefile
Introduction to Makefile
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic Sequences
 
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
 
DESIGN OF IEEE 1149.1 TAP CONTROLLER IP CORE
DESIGN OF IEEE 1149.1 TAP CONTROLLER IP COREDESIGN OF IEEE 1149.1 TAP CONTROLLER IP CORE
DESIGN OF IEEE 1149.1 TAP CONTROLLER IP CORE
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
SystemVerilog Assertion.pptx
SystemVerilog Assertion.pptxSystemVerilog Assertion.pptx
SystemVerilog Assertion.pptx
 
System verilog coverage
System verilog coverageSystem verilog coverage
System verilog coverage
 
axi protocol
axi protocolaxi protocol
axi protocol
 
System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coverage
 
Introduction to TCL Programming : Tcl/Tk by Gaurav Roy
Introduction to TCL Programming : Tcl/Tk by Gaurav RoyIntroduction to TCL Programming : Tcl/Tk by Gaurav Roy
Introduction to TCL Programming : Tcl/Tk by Gaurav Roy
 
System Verilog Tutorial - VHDL
System Verilog Tutorial - VHDLSystem Verilog Tutorial - VHDL
System Verilog Tutorial - VHDL
 
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
 
REGULAR EXPRESSION TO N.F.A
REGULAR EXPRESSION TO N.F.AREGULAR EXPRESSION TO N.F.A
REGULAR EXPRESSION TO N.F.A
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverage
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancements
 
System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )System verilog assertions (sva) ( pdf drive )
System verilog assertions (sva) ( pdf drive )
 
ASIC design verification
ASIC design verificationASIC design verification
ASIC design verification
 

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 
FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchYutaka Yasuda
 

Similar to 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
 
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
 
FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow Switch
 

More from 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
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-ExpressDVClub
 
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
 

More from 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
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
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
 

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