diff --git a/backends/functional/smtlib.cc b/backends/functional/smtlib.cc index bc1253b88..501d195eb 100644 --- a/backends/functional/smtlib.cc +++ b/backends/functional/smtlib.cc @@ -277,7 +277,7 @@ struct SmtModule { SmtModule(const std::string &module_name, FunctionalIR ir) : name(module_name), ir(std::move(ir)) {} void write(std::ostream &out) - { + { const bool stateful = ir.state().size() != 0; SmtWriter writer(out); @@ -371,6 +371,8 @@ struct SmtModule { for (size_t i = 0; i < ir.size() - ir.inputs().size(); ++i) { writer.print(" )"); // Closing each node } + if (ir.size() == ir.inputs().size()) + writer.print(" )"); // Corner case writer.print(" )"); // Closing inputs let statement writer.print(")\n"); // Closing step function diff --git a/tests/functional/single_cells/rtlil/test_cell_pos_00001.il b/tests/functional/single_cells/rtlil/test_cell_pos_00001.il new file mode 100644 index 000000000..96e9c895a --- /dev/null +++ b/tests/functional/single_cells/rtlil/test_cell_pos_00001.il @@ -0,0 +1,13 @@ +# Generated by Yosys 0.40+7 (git sha1 d8b5b90e7, g++ 13.2.0 -Og -fPIC) +autoidx 1 +module \gold + wire width 6 input 1 \A + wire width 6 output 2 \Y + cell $pos \UUT + parameter \A_SIGNED 0 + parameter \A_WIDTH 6 + parameter \Y_WIDTH 6 + connect \A \A + connect \Y \Y + end +end