Code.Solve.Simulate.
The interactive path to design and verification learning.
Code
always_ff @(posedge clk) if (valid && ready) q <= d;
Write SystemVerilog, UVM and assertions in lessons you can run.
Start a lessonSolve
- correct design · quiet
- fault 1 · caught
- fault 2 · caught
- fault 3 · missed
Catch the bugs planted in hidden designs. Graded on real simulators.
Pick a problemFour tracks. One bench.
Start with SystemVerilog, build the bench in UVM, then add assertions and coverage.
PlannedRTL designAnalog & mixed-signalPhysical design
An idea you can run.
Edit SystemVerilog, inspect the output, and open the waveform.
Open the playgroundIcarus runs in your browser. Verilator and UVM use the simulator service.
Start from
Build it. Break it. Understand it.
Five kinds of problem, each graded against a correct design and a bank of broken ones.
Implement
Start from an empty skeleton and build the real thing: a function, a checker, a model.
Verify
Write the checker. We run it against a correct design and a set of broken ones. It must catch every bug and stay quiet on the good design.
Break it
Write the stimulus that exposes hidden bugs. You score by how many you catch.
Debug
Read a failing waveform and log. Find the first wrong cycle, the signal and the cause.
Fix
A design with one realistic bug. Find it and fix it.