Skip to content

Wire net treated as an uwire #1267

@L3odr0id

Description

@L3odr0id

Compilation of the following SystemVerilog module throws an error:

module a(input uwire logic a1);  
endmodule: a

module b();
  wire logic b1;

  a b_inst(.a1(b1));
  not not_inst(b1, b1);

  assign b1 = 'b0;
endmodule: b

Command:

iverilog -g2012 test.sv

Error output:

test.sv:5: vvp.tgt error: (implicit) uwire "b1" must have a single driver, found (2).
error: Code generation had 1 error(s).

Expected behavior:
This module should be compiled. b1 is declared as wire logic, but it looks like it's being treated as uwire instead.

This issue occurs in Icarus Verilog version 13.0 (devel) (s20250103-44-gf82c6c7b3)

Found by a verilog model using deptycheck

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions