The SRAM UVC (Universal Verification Component) project provides a comprehensive verification environment to test and validate the functionality of a custom SRAM (Static Random Access Memory) with timing models. Leveraging the UVM (Universal Verification Methodology) framework, this project aims to deliver a standardized and reusable environment for SRAM verification.
The project encompasses:
- A custom interface
- UVM agents
- A UVM environment for simulating and verifying the SRAM model’s behavior
- A testbench to integrate the UVC with the DUT (Device Under Test)
- DUT: parameterized single-port SRAM behavioral model (
dut/sram_behavioral_model.sv), 8192 x 32 (32KB), SECDED ECC, runtime-configurable read latency, andspecify-block timing delays taken from the 7nm 0.7V/25°C corner ofdocs/asap7_srambank_excerpt.lib(setup ~48ps, hold ~6.4ps, clk→dataout ~134ps). This enables timing-aware RTL simulation before a gate-level netlist is available. - Stimulus: constrained-random plus directed sequences for RAW hazards, ECC single-bit correction and double-bit detection across codeword positions, and read-latency sweeps.
- Coverage: a covergroup over op, address regions, data patterns, RAW-hazard gaps,
ECC paths (clean / single-bit-corrected / double-bit-detected), and read latency
(1-4), with the key crosses. The directed + random sequences close the model to
100%. Overall and per-point numbers print in
report_phase. Seedocs/coverage_plan.md.
docs/
coverage_plan.md coverage model + timing notes
asap7_srambank_excerpt.lib ASAP7 7nm Liberty characterization
openram-sram-uarch.png microarchitecture diagram
dut/
sram_ecc_pkg.sv SECDED (39,32) encode/decode
sram_behavioral_model.sv single-port 32KB model, ECC, latency, timing
sram_cell_6t.sv 6T cell (physical reference)
sram_cpp_model.cpp C++ reference model
tb/
sram_if.sv SRAM interface + BFM tasks
tb_top.sv top module, clock/reset, DUT + UVC
sv/
agents/ packet, config, driver, monitor, agent
pkg/ agent / seqs / env / tests packages
top/ coverage, scoreboard, env
tests/
seq_lib/sram_seq_lib.svh pattern, RAW, ECC, latency, random seqs
src/sram_test_lib.svh base + regression + focused tests
sim/
filelist.f compile order
Makefile VCS build/run