Menu

#1036 Invalid hierarchical reference does not generate error

devel
open
nobody
None
4
2019-08-06
2019-08-03
EML
No

The code below runs on Icarus (and ModelSim), reporting 'Hello world'. However, it is rejected as invalid by Riviera-PRO, Incisive, and VCS. Note that 'top.foo.foo.baz' is not a valid path to 'baz':

module foo;
   task baz;
      $write("Hello world!\n");
   endtask
endmodule

module bar;
   initial begin
      top.foo.foo.baz;
      $finish;
   end
endmodule

module top;
   foo foo();
   bar bar();
endmodule

See also https://www.edaplayground.com/x/4hFf.

Also - getting confused - presumably v10 is still the latest-and-greatest? And is the search working? 'reported_by:EML' returns nothing.

Discussion

  • Martin Whitaker

    Martin Whitaker - 2019-08-06
    • Group: v10 --> devel
     
  • Martin Whitaker

    Martin Whitaker - 2019-08-06

    The hierarchical search algorithm is indeed broken - it matches module names as well as instance names at intermediate levels in the hierarchy.

    Setting target to devel, as that is where this will be fixed first.

    v10.2 is the latest stable release - see https://github.com/steveicarus/iverilog/releases. v10.3 is coming soon.

     

Log in to post a comment.