live demo :
D
H
M
S

Complete Course Details

(Design Verification)

Duration 6 Months

Module-1 Basic Module

  • Digital Design Basics

  • The importance of Number System in Data Representation.
  • Different Optimization techniques using Boolean algebra.
  • Gate level optimization
  • Karnaugh Maps.
  • A new Truth Table method that avoids laborious process of Karnaugh Map optimization.
  • Developing the basic building blocks for Combinational Logic Circuits and implementing different Logical Expressions using the same.
  • Evolution of the Sequential Elements-Latches and Flip Flops.
  • Design of Synchronous Sequential Machines-Synchronous Detectors, Counters and Registers.

  • Advanced Digital Design

  • Flip Flop timing parameters
  • Critical path and operating frequency of the system.
  • Design of Hybrid Counters.
  • Design of complex Sequence detectors.
  • Design of Control FSMs based on the specifications.
  • Design of Frequency synthesizers.

  • CMOS Basics

  • Acquire the knowledge about various CMOS fabrication process.
  • NMOS and PMOS operation.
  • CMOS characteristics.
  • CMOS inverter rise, fall and propagation delays.
  • CMOS second order effects.
  • Analyse and implement various functions using CMOS circuits.
  • CMOS Flip flop and its timing parameters

Module 4 – UVM Module

  • UVM Structural Overview

  • Key Takeaways
  • Key Concepts in UVM: Agent, Environment and Tests
  • Implement UVM Testbenches for Re-Use across Projects
  • Code, Compile and Run UVM Tests
  • Inner Workings of UVM Simulation including Phasing
  • Implement and Manage User Report Messages
  • Modelling Stimulus (UVM Transactions)
  • Transaction Property Implementation Guidelines
  • Transaction Constraint Guidelines
  • Transaction Method Automation Macros
  • User Transaction Method Customization
  • Use Factory Override to Control Transaction Constraints
  • Creating Stimulus Sequences (UVM Sequence)
  • Implementing User Sequences
  • Using UVM Macros to create and manage Stimulus
  • Explicitly Execute Sequences in Test
  • Implicitly Execute Sequences Through Configuration in Environment
  • Sequence Execution Protocol
  • Phase Objection
  • UVM Factory and Callbacks
  • Establish and Query Component Parent-Child Relationships
  • Set Up Component Virtual SystemVerilog Interfaces with uvm_config_db
  • Constructing Components and Transactions with UVM Factory
  • Implement Tests to Configure Components
  • Implement Tests to Override Components with Modified Behavior
  • TLM Communications
  • Scoreboard & Coverage
  • Implement scoreboard with UVM In-Order Class Comparator
  • Implement scoreboard UVM Algorithmic Comparator
  • Implement Out-Of-Order Scoreboard
  • Implement Configuration/Stimulus/Correctness Coverage
  • UVM Callback
  • Create User Callback Hooks in Component Methods
  • Implement Component Functional Coverage with User Defined Callbacks
  • Review Default Callbacks in uvm_sequence Base Class
  • Advance Sequence/Sequencer
  • Implement Top Level Sequence and Sequencer to Manage Sequence Execution within Different Agents
  • Disable Selected Sequencer in Agents through the Sequencer’s “default” Configuration Field
  • Phasing and Objections
  • Managing Objections within Component Phases
  • Implement Component Phase Domain Synchronization
  • Implement User Defined Domain and Phases
  • PROJECT: Protocol Verification

Module-2 Design Module

  • Verilog HDL

  • Digital design flow and Design methodologies.
  • Understanding Behavioural description, RTL Design and Gate level design.
  • Understand the origin of the Verilog HDL language
  • Understand the language basics
  • Use of Verilog HDL building blocks (design units) including modules, ports, processes, and assignments
  • Model code styles for behavioural code style and Structural code style
  • Understand the design methodologies of Verilog HDL and the differences between simulation models and synthesis models.
  • Difference between Synthesizable and Non-Synthesizable constructs.
  • Discriminate between combinatorial and Sequential circuit design.
  • Writing Synthesizable Verilog code.
  • Write a Verilog test bench to test Verilog Modules

  • RTL Design using VERILOG HDL along with Project

  • Understanding the intent of RTL design.
  • RTL design guidelines.
  • Race conditions.
  • Analysis of Synchronous and Asynchronous behaviour.
  • Understanding CDC.
  • To design combinational, sequential circuits using Verilog HDL.
  • To understand behavioural and RTL modelling of digital circuits
  • To verify that a design meets its timing constraints, both manually and through the use of computer aided design tools
  • To simulate, synthesize, and program their designs.

  • RTL Design using System Verilog HDL

  • Understanding RTL Design.
  • Understanding basics of CDC and DFT.
  • System Verilog data types.
  • System Verilog procedural blocks and statements.
  • Usage of System Verilog Interface in RTL design.
  • Parameterized Interfaces and Modports.
  • Usage of Generate and Genvar in RTL design for multi-master and multi-slave configuration.
  • Design of synchronous machines using System Verilog.
  • Design of memory block using System Verilog.
   

Module-3 Verification Module

  • RTL Verification using VERILOG HDL

  • Understanding Verification types.
  • Verification flow.
  • Test bench architecture.
  • Developing Test bench components.
  • Simulation and Synthesis mis-matches.
  • Test bench models.
  • Understanding X-propagation.
  • Timing Verification-Gate level simulation.

  • System Verilog Basics

  • Verification Challenges
  • New data types available in System Verilog.
  • Interfaces and Clocking Blocks.
  • Various new verification building blocks available in System Verilog.
  • Developing a basic Verification environment.
  • Introduction to OOPs concepts
  • Introduction to Advanced concepts like Randomization, Constraints, and Assertions and Coverage.

  • Verification using System Verilog

  • System Verilog Basics
  • New features
  • New Data type additions
  • Arrays – Fixed, Packed, Dynamic, Queues, Associated
  • Structures & Unions
  • New Operators
  • New additions to Subroutines
  • New additions to Procedural statements& Control flow
  • Concurrency
  • Interfaces
  • Program block
  • Virtual Interfaces
  • Inter thread Synchronization & Communication
  • System Verilog OOPs
  • Classes: Encapsulating properties & methods
  • Object memory creation
  • Working with Object handles
  • Object copying: Shallow and Deep copy
  • Object protection
  • Object variables Vs Class variables: Static keyword
  • Object Inheritance
  • Limitations of Inheritance
  • Polymorphism and Methods overriding
  • Randomization and Constraints
  • Object Randomization
  • Randomization Seed
  • Randomization variables
  • Constraint Block
  • Weighted Randomization
  • Controlling Randomization
  • Solve order
  • Inline Constraints – with constraints
  • System Verilog Assertions
  • Immediate assertions
  • Procedural assertions
  • Temporal operators
  • Boolean operators
  • Sequences
  • Properties
  • Test Bench Design Using System Verilog
  • Introduction to Layered test bench architecture
  • Driver
  • Monitor
  • Transactor
  • Generator
  • Configurations – Device, Transaction
  • Scoreboard
  • Reference models
  • Bus function models
  • System Verilog Functional Coverage
  • PROJECT: Protocol Verification

Module-2 Design Module

  • Verilog HDL

  • Digital design flow and Design methodologies.
  • Understanding Behavioural description, RTL Design and Gate level design.
  • Understand the origin of the Verilog HDL language
  • Understand the language basics
  • Use of Verilog HDL building blocks (design units) including modules, ports, processes, and assignments
  • Model code styles for behavioural code style and Structural code style
  • Understand the design methodologies of Verilog HDL and the differences between simulation models and synthesis models.
  • Difference between Synthesizable and Non-Synthesizable constructs.
  • Discriminate between combinatorial and Sequential circuit design.
  • Writing Synthesizable Verilog code.
  • Write a Verilog test bench to test Verilog Modules

  • RTL Design using VERILOG HDL along with Project

  • Understanding the intent of RTL design.
  • RTL design guidelines.
  • Race conditions.
  • Analysis of Synchronous and Asynchronous behaviour.
  • Understanding CDC.
  • To design combinational, sequential circuits using Verilog HDL.
  • To understand behavioural and RTL modelling of digital circuits
  • To verify that a design meets its timing constraints, both manually and through the use of computer aided design tools
  • To simulate, synthesize, and program their designs.

  • RTL Design using System Verilog HDL

  • Understanding RTL Design.
  • Understanding basics of CDC and DFT.
  • System Verilog data types.
  • System Verilog procedural blocks and statements.
  • Usage of System Verilog Interface in RTL design.
  • Parameterized Interfaces and Modports.
  • Usage of Generate and Genvar in RTL design for multi-master and multi-slave configuration.
  • Design of synchronous machines using System Verilog.
  • Design of memory block using System Verilog.
   

Module-3 Verification Module

  • RTL Verification using VERILOG HDL

  • Understanding Verification types.
  • Verification flow.
  • Test bench architecture.
  • Developing Test bench components.
  • Simulation and Synthesis mis-matches.
  • Test bench models.
  • Understanding X-propagation.
  • Timing Verification-Gate level simulation.

  • System Verilog Basics

  • Verification Challenges
  • New data types available in System Verilog.
  • Interfaces and Clocking Blocks.
  • Various new verification building blocks available in System Verilog.
  • Developing a basic Verification environment.
  • Introduction to OOPs concepts
  • Introduction to Advanced concepts like Randomization, Constraints, and Assertions and Coverage.

  • Verification using System Verilog

  • System Verilog Basics
  • New features
  • New Data type additions
  • Arrays – Fixed, Packed, Dynamic, Queues, Associated
  • Structures & Unions
  • New Operators
  • New additions to Subroutines
  • New additions to Procedural statements& Control flow
  • Concurrency
  • Interfaces
  • Program block
  • Virtual Interfaces
  • Inter thread Synchronization & Communication
  • System Verilog OOPs
  • Classes: Encapsulating properties & methods
  • Object memory creation
  • Working with Object handles
  • Object copying: Shallow and Deep copy
  • Object protection
  • Object variables Vs Class variables: Static keyword
  • Object Inheritance
  • Limitations of Inheritance
  • Polymorphism and Methods overriding
  • Randomization and Constraints
  • Object Randomization
  • Randomization Seed
  • Randomization variables
  • Constraint Block
  • Weighted Randomization
  • Controlling Randomization
  • Solve order
  • Inline Constraints – with constraints
  • System Verilog Assertions
  • Immediate assertions
  • Procedural assertions
  • Temporal operators
  • Boolean operators
  • Sequences
  • Properties
  • Test Bench Design Using System Verilog
  • Introduction to Layered test bench architecture
  • Driver
  • Monitor
  • Transactor
  • Generator
  • Configurations – Device, Transaction
  • Scoreboard
  • Reference models
  • Bus function models
  • System Verilog Functional Coverage