tri
and wire
are equivalent.
The keywords in parentheses determine drive strength, which allows switch and gate-level modeling. The rules are somewhat complex but basically a stronger signal can override a weaker one so driving a pull1
and strong0
on the same signal may result in a 0
state, rather than X
or Z
.
The error looks like a bug or missing feature in iverilog. Removing the vector range allows a successful compile.