Module 2 Breakdown
Module 2 Breakdown
Module 2 Breakdown
Verilog
Verilog is a Hardware Description Language used to describe the behavior and structure of
digital circuits. It allows engineers to model and simulate digital systems before physical
implementation.
Learning Resources:
Verilog Video Tutorial: (Lecture 2a, Lecture 2b, Lecture 2c, Lecture 2d, Lecture 2e)
Exercises:
1. Verilog Syntax:
2. Combinational Logic:
3. Sequential Logic:
o Understand sequential circuits with flip-flops (registers) and how to model their
1
Verilog, System Verilog and Random Testbenches
o Learn to design FSMs in Verilog using state registers and transition logic to
Tip: Start with simple Verilog constructs and gradually build complexity as you gain confidence.
System Verilog
System Verilog is a superset of Verilog, offering additional features for complex digital system
design and verification. It builds upon Verilog's foundation and provides powerful constructs for
modularity, reusability, and advanced verification techniques.
Learning Resources:
SystemVerilog Tutorial: [click here]
SystemVerilog for Verification: [click here]
SystemVerilog for Verification: [BOOK]
Exercises:
1. SystemVerilog Classes and Interfaces:
o Learn how to define classes in SystemVerilog to encapsulate design functionality
and behavior. Understand interfaces for defining abstract contracts between
modules.
2. Advanced Verification Techniques:
o Explore features like assertions (checking design properties), functional coverage
(tracking code execution), and Universal Verification Methodology (UVM) for
structured testbench development.
3. Random Verification with SystemVerilog:
o Leverage SystemVerilog's advanced features like constrained random variables
and distributions for even more powerful random testbench generation.
Tip: While SystemVerilog builds upon Verilog knowledge, it introduces new complexities. Start
with basic concepts and gradually progress to advanced techniques like UVM. Utilize online
resources and practice exercises specifically focused on SystemVerilog.
Benefits of SystemVerilog:
2
MEDS Summer Training
Random Testbenches
Percentage: 30%
Random testbenches are a powerful technique for verifying digital designs. They generate
random stimuli (inputs) to the design under test (DUT) and check for expected outputs,
Learning Resources:
A Beginner's Guide to Random Verification: [click here]
Exercises:
1. Basic Testbench Structure:
o Learn about Verilog system functions like $random for generating random
4. Coverage Analysis:
3
Verilog, System Verilog and Random Testbenches
o Learn how to use coverage tools to track which parts of the design have been
exercised by the random testbench, helping you identify areas potentially lacking
verification.
Tip: Begin with simple testbenches generating unconstrained random stimuli. Gradually
Design a Verilog module for a 4-bit adder that takes two 4-bit unsigned integers
Write a testbench using Verilog procedural blocks to exhaustively test all possible
Verify the adder's functionality by comparing the generated sum with the
4
MEDS Summer Training