1.6 KiB
1.6 KiB
Feature roadmap (one-by-one)
Each item should be a dedicated feat/<name> branch, with tests/examples and a STATUS.md update. Merge only into this fork’s default branch (master).
Tier A — Compiler SV foundations (block Accellera UVM)
- Parameterized classes —
class C #(type T = int);/C#(byte)— needed foruvm_*#(T),config_db— partial (defaults; see STATUS) - Associative arrays —
int aa[string];— in progress / partial (string keys only; see assoc-array.md) - Virtual interfaces + eventing on
vif.clk - Clocking blocks — enough for
@(vif.cb) mailbox/semaphorebuiltins (or solid class equivalents with blocking put/get)- Constraints +
randomize()/randomize() with— start unconstrainedrand, then solver $cast/$typenamehardening for factory patterns- Covergroups — functional coverage
- DPI-C — optional but common in real flows
Tier B — Library / methodology (on top of Tier A)
- Grow
uvm/toward Accellera-shaped APIs: reporting, phases/objections, factory,config_db, TLM, sequences - Smoke: trimmed “hello UVM”, then larger Accellera UVM 1.2 slices as features land
Already usable baseline (do not re-do first)
Classes, packages, strings, queues/dynamic arrays, locators/reductions/ordering, chained calls — extend only when a UVM example needs a gap.
Out of scope
- Claiming “UVM 1.2 supported” until Accellera’s library compiles and runs
- Opening PRs to
steveicarus/iverilogfor this track (see WORKFLOW.md)