From 29061d30518f96a49fc1a9b021667ba09da78dbf Mon Sep 17 00:00:00 2001 From: Stan Lee Date: Tue, 20 Jan 2026 15:55:05 -0800 Subject: [PATCH] leave no room for err --- passes/cmds/splitcells.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/passes/cmds/splitcells.cc b/passes/cmds/splitcells.cc index bafa27154..92f1e25e3 100644 --- a/passes/cmds/splitcells.cc +++ b/passes/cmds/splitcells.cc @@ -170,14 +170,16 @@ struct SplitcellsWorker int slice_lsb = slices[i-1]; std::string base_name = cell->name.str(); + IdString slice_name; if (blast) { - base_name = base_name.substr(0, base_name.find('[')); + slice_name = module->uniquify(cell->name.str().substr(0, cell->name.str().find('[')) + stringf( + "%c%d%c", format[0], slice_lsb, format[1])); + } else { + slice_name = module->uniquify(base_name + (slice_msb == slice_lsb ? + stringf("%c%d%c", format[0], slice_lsb, format[1]) : + stringf("%c%d%c%d%c", format[0], slice_msb, format[2], slice_lsb, format[1]))); } - IdString slice_name = module->uniquify(base_name + (slice_msb == slice_lsb ? - stringf("%c%d%c", format[0], slice_lsb, format[1]) : - stringf("%c%d%c%d%c", format[0], slice_msb, format[2], slice_lsb, format[1]))); - Cell *slice = module->addCell(slice_name, cell); for (IdString portname : splitports) {