diff --git a/himbaechel/uarch/gatemate/pack_bram.cc b/himbaechel/uarch/gatemate/pack_bram.cc index 4a2c2683..d69d7340 100644 --- a/himbaechel/uarch/gatemate/pack_bram.cc +++ b/himbaechel/uarch/gatemate/pack_bram.cc @@ -249,23 +249,6 @@ void GateMatePacker::pack_ram() ci.disconnectPort(ctx->idf("B_BM[%d]", i)); } - if (!split) { - ci.cluster = ci.name; - - CellInfo *cell = ctx->createCell(ctx->idf("%s$dummy$u", ci.name.c_str(ctx)), id_RAM_HALF_DUMMY); - ci.constr_children.push_back(cell); - cell->constr_abs_z = true; - cell->constr_z = RAM_HALF_U_Z; - cell->cluster = ci.name; - - cell = ctx->createCell(ctx->idf("%s$dummy$l", ci.name.c_str(ctx)), id_RAM_HALF_DUMMY); - ci.constr_children.push_back(cell); - cell->constr_abs_z = true; - cell->constr_y = +8; - cell->constr_z = RAM_HALF_L_Z; - cell->cluster = ci.name; - } - if (split) { rams.push_back(&ci); } else { @@ -336,6 +319,21 @@ void GateMatePacker::pack_ram() log_error("Unknown CAS parameter value '%s' for cell %s.\n", cas.c_str(), ci.name.c_str(ctx)); } + if (!split) { + CellInfo *cell = ctx->createCell(ctx->idf("%s$dummy$u", ci.name.c_str(ctx)), id_RAM_HALF_DUMMY); + ci.constr_children.push_back(cell); + cell->constr_abs_z = true; + cell->constr_z = RAM_HALF_U_Z; + cell->cluster = ci.cluster; + + cell = ctx->createCell(ctx->idf("%s$dummy$l", ci.name.c_str(ctx)), id_RAM_HALF_DUMMY); + ci.constr_children.push_back(cell); + cell->constr_abs_z = true; + cell->constr_y = +8; + cell->constr_z = RAM_HALF_L_Z; + cell->cluster = ci.cluster; + } + // RAM and Write Modes std::string ram_mode_str = str_or_default(ci.params, id_RAM_MODE, "SDP"); if (ram_mode_str != "SDP" && ram_mode_str != "TDP")