The testbench follows a layered verification approach inspired by UVM concepts:
- Transaction generation → 2. Driver stimulation → 3. Monitoring & Coverage collection → 4. Scoreboarding for validation.
All tests are self-checking, ensuring automated result validation without manual intervention.
├── demux_logic.sv ├── testbench_1.sv ├── interface.sv ├── packet.sv ├── covergroup.sv ├── monitor.sv ├── driver.sv ├── queue.sv ├── scoreboard.sv ├── testbench_2.sv └── README.md
- Designed 1-bit slice and 4-bit DUT modules.
- Created simple testbench for functional validation.
- Implemented SystemVerilog interface for DUT connectivity.
- Developed randomized packet generation (50 transactions).
- Implemented self-checking testbench with driver, monitor, and scoreboard.
- Collected coverage metrics to ensure verification completeness.
The verification environment includes:
- Interface: Defines input and output connections between DUT and Testbench.
- Driver: Sends randomized stimulus to DUT.
- Monitor: Captures DUT outputs for analysis.
- Packet Class: Generates random transactions (
a
,b
,c
,d
,sel
). - Scoreboard: Compares DUT output with expected results.
- Coverage Group: Tracks functional coverage for all input combinations and cross coverage (
sel x a
,sel x b
,sel x c
).
- Language: SystemVerilog (IEEE 1800-2017)
- Simulator: ModelSim
- Target Design: 4-bit logic (e.g., demultiplexer)
- Verification Method: Coverage-driven, randomized testing
- Achieved complete functional coverage.
- Successfully verified DUT functionality across all 4-bit combinations.
- Demonstrated efficient, modular, and reusable verification environment.
Marisa Mathew MTech in (VLSI & Embedded Systems)
Developed as part of a SystemVerilog verification project using interface-based and coverage-driven techniques.
This repository is protected under All Rights Reserved © 2025 Marisa Mathew