Skip to content

read_verilog: array of instances parsing assertion failure #4785

Open
@Muxianesty

Description

@Muxianesty

Version

Yosys 0.44 (git sha1 80ba43d, clang++-18 18.1.8 -fPIC -O3)

On which OS did this happen?

Linux

Reproduction Steps

module test(in1, in2, out1);
  input in1, in2;
  output out1;

  nand  #2 t_nand[0:7](out1, in1, in2);
  nand  #2 x_nand[0:3](out1, in1, in2), y_nand[4:7](out1, in1, in2);
endmodule

Expected Behavior

IEEE Std 1364-2005:
7. Gate- and switch-level modeling
7.1 Gate and switch declaration syntax
7.1.5 The range specification
An array of instances shall have a continuous range. One instance identifier shall be
associated with only one range to declare an array of instances.
The range specification shall be optional. If no range specification is given, a single
instance shall be created.

The module body specified in reproduction steps was taken directly from the standard (page 78). It should be parsed just fine.

Actual Behavior

 /----------------------------------------------------------------------------\
 |  yosys -- Yosys Open SYnthesis Suite                                       |
 |  Copyright (C) 2012 - 2024  Claire Xenia Wolf <[email protected]>         |
 |  Distributed under an ISC-like license, type "license" to see terms        |
 \----------------------------------------------------------------------------/
 Yosys 0.44 (git sha1 80ba43d26, clang++-18 18.1.8 -fPIC -O3)

yosys> read_verilog module.v 

1. Executing Verilog-2005 frontend: module.v
Parsing Verilog input from `module.v' to AST representation.
Generating RTLIL representation for module `\test'.
ERROR: Assert `new_cell->children.at(0)->type == AST_CELLTYPE' failed in frontends/ast/simplify.cc:2686.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions