Every declaration answers two questions: can this bit hold X or Z, and is its value resolved from drivers or stored. The five lessons below turn those answers into habits for ports, casts, and testbench types.
Lesson | Path | What it covers |
|---|---|---|
Required | X and Z modelling, the 2-state discount, the guarded boundary, and X tracing. | |
Required | Resolution against storage, one-driver logic, and buses that still need wires. | |
Required | Widths, signedness, the three casts, and silent truncation rules. | |
Recommended | Named states, shaped vectors, shared storage, and checked conversions. | |
Optional | Dynamic text, testbench reals, opaque handles, and event sync. Optional because |
Path: Required is the core first pass for this part's goal, a self-checking testbench; Recommended is what most learners should read; Optional is reference, specialist or revision material to return to later.
The 4-state to 2-state copy mapped X to 0 silently. The first lesson guards that boundary with an explicit unknown check before the copy.