Constraints declare the legal stimulus space and the solver picks random points inside it. Coverage records which parts of that space were visited.
Topic | Lessons | Description | Time |
|---|---|---|---|
4 | The solver call behind every random test: rand fields, hooks, nested objects and seeds. | 30 min | |
4 | How inside, dist, implication, solve-before and soft shape the solver search space. | 30 min | |
5 | Freeze fields, toggle blocks, tighten at call sites, and pick the right control layer. | 40 min | |
5 | Variable-length payloads, ordered lists and transaction streams, described as constraints. | 40 min | |
5 | How the solver picks values: solution sets, ordering, randc, speed, and guarantees. | 40 min | |
4 | Debug randomization failures: classify the symptom, isolate the cause, and harden the bench. | 30 min | |
9 | Write-the-constraint drills plus senior-level randomization Q&A with answers. | 70 min |
pkt.randomize() without checking the result, and one call fails. What does the design receive?The previous packet again. A failed call returns 0 and changes nothing, so an unchecked call sends stale stimulus with no error anywhere.
Icarus 13 has no constraint support, so every runnable listing in this part runs on Verilator 5.048. Where Verilator's answer differs from the standard, the lesson says so; What the Open Simulators Run has the full list.