2.4 KiB
2.4 KiB
Status
Last updated: 2026-07-21
Accellera UVM 1.2
Not supported. Official Accellera UVM will not compile on stock Icarus or on this fork yet.
This fork
| Area | Status |
|---|---|
| Icarus Verilog tree | Fork of steveicarus/iverilog (master @ merge of SV array ordering work) |
uvm/ |
Seeded from IVL_UVM (VerifWorks) — messaging, CLP, stub phases, legacy poor-man’s mailbox/semaphore classes; not Accellera-compatible. Prefer compiler builtins for mailbox/semaphore (see STATUS row below). |
examples/hello_uvm |
Smoke TB for the seeded library (Makefile included) |
| Parameterized classes | Partial on feat/param-classes (merged): ANSI class C #(type T = int, parameter int W = 8); parses into the class scope and elaborates with defaults. Explicit specializations C#(byte) / overrides not done yet. See examples/param_classes. |
| Associative arrays | Partial on feat/assoc-array: string-keyed int aa[string] / int aa[*] with size/num/exists/delete/foreach/copy. See docs/assoc-array.md and examples/assoc_array. |
| Virtual interfaces | Partial on feat/virtual-interface: virtual interface T as class property / TF arg; assign interface instance; member R/W; @(posedge vif.clk). See docs/virtual-interface.md and examples/virtual_interface. |
| Clocking blocks | Partial on feat/clocking-blocks: interface-local clocking; @(bif.cb); cb.sig R/W with #0 skew. See docs/clocking.md and examples/clocking. |
| Mailbox / semaphore | Partial on feat/mailbox-semaphore: compiler builtins; mailbox #(int) + blocking/nonblocking put/get/num; semaphore get/put/try_get. See docs/mailbox-semaphore.md and examples/mailbox_sem. |
| Constraints / randomize | Partial on feat/randomize-unconstrained: unconstrained rand/randc integral props via obj.randomize() (returns 1). No constraint solver / with yet. See docs/randomize.md and examples/randomize. |
| Covergroups / DPI | Missing |
Remotes
origin→ https://github.com/muhammadjawadkhan/iverilog-uvmupstream→ https://github.com/steveicarus/iverilog (fetch only for this track)