FPGA Design and Verification (Project Internship Program) - 15 Weeks
FPGA Design and Verification (Project Internship Program) - 15 Weeks
Testbench Reusability and Modularity (2 hours) Measuring how much of the design code is
Creating modular and reusable testbenches. exercised by the testbench.
Instantiating multiple testbenches for Hands-on: Running a simulation and analysing
complex designs. code coverage reports.
Hands-on:Rewriting testbenches for
modularity and reuse. Day 8: UVM – Universal Verification Methodology (4
hours)
Debugging Testbenches (2 hours)
Introduction to UVM (2 hours)
Common testbench errors and
debugging strategies. What is UVM and why is it used in
Using waveforms for testbench validation. verification?
Hands-on: Debugging existing testbenches for Key components: UVM testbenches, agents,
Verilog/VHDL designs. and transactions.
Hands-on: Installing and setting up UVM
Day 5: Introduction to System Verilog for Verification libraries.
(4 hours)
System Verilog Overview (2 hours) UVM Environment and Flow (2 hours)
Evolution of System Verilog from Verilog. Building a basic UVM testbench environment.
Key language features: Enhanced data types, Hands-on: Writing a simple UVM environment
randomization, and assertions. for a basic module.
Hands-on: Writing simple modules in System
Verilog. Day 9: UVM Testbench Components (4 hours)
Assertions in System Verilog (2 hours) Agents, Drivers, and Monitors in UVM (2 hours)
Overview of System Verilog assertions
(SVA). Detailed explanation of UVM components and
Writing basic assertions to check design their roles.
behaviour. Hands-on: Building UVM agents, drivers, and monitors.
Hands-on: Adding assertions to System
Sequences and Sequencers (2 hours)
Verilog testbenches.
Implementing sequences for driving stimulus.
Day 6: Writing Testbenches in System Verilog (4 Hands-on: Writing UVM sequences and
hours) sequencing transactions.
Testbench Architecture in System Verilog
Day 10: UVM Score boarding and Reporting (4 hours)
(2 hours)
Components of a System Verilog testbench:
UVM Scoreboards (2 hours)
Interfaces, virtual classes, and tasks.
How to use scoreboards for checking expected
Hands-on: Writing a System Verilog
outputs.
testbench for a basic design.
Hands-on: Implementing scoreboards in a
UVM testbench.
Advanced Testbench Constructs (2 hours)
Using tasks and functions in System Verilog
UVM Reporting Mechanism (2 hours)
for stimulus generation.
Hands-on: Writing tasks and functions in a
Using UVM reporting for debugging and
System Verilog testbench.
verification.
Hands-on: Generating and analysing UVM
reports.
Day 7: Coverage-Driven Verification (4 hours)
Day 11: Constrained Random Verification (4 hours)
Functional Coverage in System Verilog (2 hours)
Introduction to Constrained Random Testing
Introduction to functional coverage: Cover
CRANES VARSITY (A Division of CSIL) St.Marks Road, Bangalore Ph: 080-6764 4800/4848 ( www.cranesvarsity.com )
(2 hours) hours)
Using randomization in testbenches for robust Analyzing FPGA resource utilization: LUTs,
testing. flip-flops, BRAM, DSPs.
Hands-on: Implementing constrained random Hands-on: Performance profiling using FPGA
stimulus in System Verilog. tools.
Project Phase-1: Research, Planning, and Initial Final Project Demo and Presentation
Development
CRANES VARSITY (A Division of CSIL) St.Marks Road, Bangalore Ph: 080-6764 4800/4848 ( www.cranesvarsity.com )