UVM Course

UVM Course

  • What is UVM? Need for a methodology?
  • How UVM evolved?
    • OVM, AVM, RVM, NVM, eRM
  • UVM class library
    • Classification of base classes in various categories
  • OOP basics
    • Encapsulation
    • Inheritance
    • Polymorphism
    • Parameterized classes
    • Parameterized macros
    • Static properties and static methods
    • Abstract classes
      • Pure virtual methods
    • How above aspect correlates with UVM implementation.
  • UVM Class Library, Macros, Utilities
    • Detailed overview of important UVM base classes, Macros and Utility classes.
  • UVM TB Architecture
    • Setting up a UVM based testbench for APB protocol from scratch.
    • Significance of uvm_root in UVM based testbenches.
      • run_test, how it starts whole TB flow.
  • Command line processor
  • Reporting classes
    • Uvm_report_object
    • Uvm_report_handler
    • Uvm_report_server
    • Detailed examples on use of methods in these classes.
  • Objections
  • UVM Factory
  • Configuration DB, Resource DB
    • Detailed usage of both data bases.
    • How config_db is related to resource_db?
    • Using config_db to change the testbench architecture.
  • TLM1.0
    • Push
    • Pull
    • FIFO
    • Analysis
    • Complex example on AHB to AXI transaction conversion.
  • Simulation Phases
    • UVM common phases
    • Scheduled phases
  • Sequences, Sequencers
    • Default sequence
    • p_sequencer
    • m_sequencer
  • Test case development
    • Different styles of mapping testcase to sequence
      • Using default sequence and scheduled phases
      • Using sequence start method
  • Configuring TB Environment
    • Advanced aspects of developing a highly configurable test bench environment.
    • Concept of knobs of test case scenario generation
    • Using top level parameters to control the overall TB architecture
  • AHB Protocol and AHB UVC development
    • Coding from scratch with detailed explanation of each aspect.
    • Setting up a highly configurable UVC to meet different TB requirements.
  • Different testbench component coding
    • Monitor
    • Coverage
    • Scoreboard
    • Checkers
    • Assertions
  • Different styles of sequence development
    • `uvm_do
    • Start_item and finish_item
    • Using existing sequences
  •  

APB is an AMBA protocol used for low performance applications. I was part of UVC development team. UVC was developed to work as both master and slave. Developed all the UVC components and validated UVC for various APB features.

What student learns in this project:

  • APB Protocol
    • APB architecture
    • Features
    • Signals
    • Timing Diagrams
  • APB UVC Architecture
  • APB UVC Component Coding
  • APB UVC Sequence & Test Development
  • memory Test bench development
    • memory Test bench Architecture
    • APB UVC integration
    • TB Component Coding
    • Testcase coding and debug

FIFO is a design block used for connecting components working at either same or different frequencies. This project covers all the UVM TB setup for asynchronous FIFO. This project is focused on teaching UVM constructs from practical usage perspective.

What student learns in this project:

  • Understand the functionality of Synchronous and Asynchronous FIFO
  • Understand how to fix clock domain crossing issues in Asynchronous FIFO due to design working in two different clock domains, to avoid race and glitch conditions
  • Develop Synchronous and Asynchronous FIFO design using Verilog
  • Develop Test bench for Synchronous and Asynchronous FIFO design using Verilog
  • Understand how to setup UVM TB for a design with 2 master interface
  • Get hands on exposure to all UVM constructs
  • Listing down features, scenarios – useful for interviews
  • Develop test bench architecture using virtual sequencer
  • Develop write and read interface agents
  • Integrate both agents to the test bench
  • Implement various test cases
  • How to use virtual sequencer and virtual sequences in test case coding
  • Regression setup and coverage analysis
  • Around 10 assignments covering all asepcts of UVM constructs

UVM course is a 5 weeks course providing in-depth exposure to all UVM constructs with practical examples. Course includes projects on APB UVC development and memory TB development to help participants learn entire TB flow.

Course includes multiple assignments to help participants gain expertise with UVM methodology.

CourseUVM constructs with multiple projects
Duration5 weeks
Next Batch 
Schedule 
Freshers6 days/week, 4 hours/day
Working professionalsSaturday & Sunday(9AM – 1PM IST)
Access to all course recorded videos for entire course duration
ToolQuestasim & VCS
Mode of trainingClassroom training & Live online training
Course can also be done in hybrid mode.
 eLearning with dedicated mentor for doubt clarifications.
FeeLive training : INR 10K + GST
eLearning : INR 8K + GST
Batch Size25
Assignments16
Course Highlights
  • 1-1 Dedicated Mentor Support
  •  24/7 Tool Access
  • Multiple mock interviews
  • Industry Standard Projects
  • Support with resume update