diff options
-rw-r--r-- | passes/hierarchy/hierarchy.cc | 1 | ||||
-rw-r--r-- | tests/various/bug3462.ys | 12 | ||||
-rw-r--r-- | tests/various/sub.v | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/passes/hierarchy/hierarchy.cc b/passes/hierarchy/hierarchy.cc index d27fddf1c..eea6abb04 100644 --- a/passes/hierarchy/hierarchy.cc +++ b/passes/hierarchy/hierarchy.cc @@ -1058,6 +1058,7 @@ struct HierarchyPass : public Pass { if (tmp_top_mod != NULL) { if (tmp_top_mod != top_mod){ top_mod = tmp_top_mod; + top_mod->attributes[ID::initial_top] = RTLIL::Const(1); did_something = true; } } diff --git a/tests/various/bug3462.ys b/tests/various/bug3462.ys new file mode 100644 index 000000000..c85dc9470 --- /dev/null +++ b/tests/various/bug3462.ys @@ -0,0 +1,12 @@ +read_verilog <<EOT +module top(); + wire array[0:0]; + wire out; + sub #(.d(1)) inst( + .in(array[0]), + .out(out) + ); +endmodule +EOT + +hierarchy -top top -libdir . diff --git a/tests/various/sub.v b/tests/various/sub.v new file mode 100644 index 000000000..63422ca5c --- /dev/null +++ b/tests/various/sub.v @@ -0,0 +1,3 @@ +module sub #(parameter d=1) (input in, output out); + assign out = in; +endmodule |