--- insert_spare_cells_single_domain.tcl_ORIG 2021-03-02 00:06:51.087400749 +0100 +++ insert_spare_cells_single_domain.tcl 2021-03-02 00:07:13.365401057 +0100 @@ -168,13 +168,14 @@ remove_objects [get_objects -type region $outside_regions] # adding cells to spare regions; placing them in the center of the spare regions - foreach spare_region [get_object region "${spare_prefix}_*"] { + set index 0 + foreach spare_region [lsort -dictionary [get_object region "${spare_prefix}_*"]] { fk_msg -type info " processing spare cell region $spare_region ..." set name [get_property -name name $spare_region] set xcenter [expr [get_property -name xorigin $spare_region] + [get_property -name width $spare_region] / 2] set ycenter [expr [get_property -name yorigin $spare_region] + [get_property -name height $spare_region] / 2] fk_msg -type info " adding tie cell spare gate 0 ..." - set cell [create_cell -name ${spare_prefix}gate0 -lib_cell $tie_cell -force true ] + set cell [create_cell -name ${spare_prefix}gate_${index}_0 -lib_cell $tie_cell -force true ] set_property -name spare -value true $cell set_property -name cell_user_spare -value true $cell move_objects -object $cell -x $xcenter -y $ycenter @@ -182,7 +183,7 @@ set i 1 foreach spare_lib_cell $cells_to_be_added { fk_msg -type info " adding logic spare gate $i : $spare_lib_cell ..." - set cell [create_cell -name ${spare_prefix}gate$i -lib_cell $spare_lib_cell -force true -hierarchy $name] + set cell [create_cell -name ${spare_prefix}gate_${index}_$i -lib_cell $spare_lib_cell -force true -hierarchy $name] set_property -name spare -value true $cell set_property -name cell_user_spare -value true $cell move_objects -object $cell -x $xcenter -y $ycenter @@ -193,8 +194,9 @@ fk_msg -type info " adding tie net to region ..." set net [create_net -name tie_net -hierarchy $name] fk_msg -type info " connecting tie net to tie cell output and other cell inputs ..." - connect_net -net $net -objects [get_pins -filter "@is_out" -of [get_cells -filter "@path == ${name}/${spare_prefix}gate0"]] + connect_net -net $net -objects [get_pins -filter "@is_out" -of [get_cells -filter "@path =~ ${name}/${spare_prefix}gate*_0"]] connect_net -net $net -objects [get_pins -filter "@is_in" -of [get_cells -filter "@path =~ ${name}/${spare_prefix}gate*"]] + incr index }