change spare cols routing from channel to normal routing to avoid short circuits

This commit is contained in:
Jesse Cirimelli-Low 2026-06-24 14:04:21 -07:00
parent 734be5403e
commit ed369f1af4
1 changed files with 21 additions and 12 deletions

View File

@ -582,12 +582,18 @@ class port_data(design):
num_bits=self.word_size, num_bits=self.word_size,
inst1_start_bit=start_bit) inst1_start_bit=start_bit)
self.channel_route_bitlines(inst1=self.precharge_array_inst, # The spare columns route directly from the precharge array
inst1_bls_template="{inst}_{bit}", # (bypassing the column mux). A channel route would via the
inst2=inst2, # bitline up to the vertical layer right at the precharge pin,
num_bits=self.num_spare_cols, # landing on the precharge cell's full-width en_bar rail and
inst1_start_bit=self.num_cols + off, # shorting the spare bitlines to p_en_bar. Stay on the bitline
inst2_start_bit=self.word_size) # layer with connect_bitlines to avoid that via.
self.connect_bitlines(inst1=self.precharge_array_inst,
inst1_bls_template="{inst}_{bit}",
inst2=inst2,
num_bits=self.num_spare_cols,
inst1_start_bit=self.num_cols + off,
inst2_start_bit=self.word_size)
else: else:
self.connect_bitlines(inst1=self.column_mux_array_inst, self.connect_bitlines(inst1=self.column_mux_array_inst,
inst1_bls_template="{inst}_out_{bit}", inst1_bls_template="{inst}_out_{bit}",
@ -653,12 +659,15 @@ class port_data(design):
num_bits=self.word_size, num_bits=self.word_size,
inst1_start_bit=start_bit) inst1_start_bit=start_bit)
self.channel_route_bitlines(inst1=self.precharge_array_inst, # See note in route_sense_amp_to_column_mux_or_precharge_array:
inst1_bls_template="{inst}_{bit}", # spare columns route from the precharge array, so stay on the
inst2=inst2, # bitline layer to avoid shorting to the en_bar rail.
num_bits=self.num_spare_cols, self.connect_bitlines(inst1=self.precharge_array_inst,
inst1_start_bit=self.num_cols + off, inst1_bls_template="{inst}_{bit}",
inst2_start_bit=self.word_size) inst2=inst2,
num_bits=self.num_spare_cols,
inst1_start_bit=self.num_cols + off,
inst2_start_bit=self.word_size)
# This could be a channel route, but in some techs the bitlines # This could be a channel route, but in some techs the bitlines
# are too close together. # are too close together.