diff --git a/compiler/modules/write_mask_and_array.py b/compiler/modules/write_mask_and_array.py index 3b308b60..9d29cbea 100644 --- a/compiler/modules/write_mask_and_array.py +++ b/compiler/modules/write_mask_and_array.py @@ -138,10 +138,9 @@ class write_mask_and_array(design.design): width=wmask_out_pin.width(), height=wmask_out_pin.height()) - self.add_power_pin("gnd", vector((supply_pin.lx() - 0.75*drc('minwidth_metal1'))+i*self.wmask_en_len, - 0)) - self.add_power_pin("vdd", vector((supply_pin.lx() - 0.75*drc('minwidth_metal1'))+i*self.wmask_en_len, - self.height)) + self.add_power_pin("gnd", vector(supply_pin.width() + i * self.wmask_en_len, 0)) + self.add_power_pin("vdd", vector(supply_pin.width() + i * self.wmask_en_len, self.height)) + if i < self.num_wmasks-1: for n in ["gnd","vdd"]: pin = self.and2_insts[i].get_pin(n) diff --git a/compiler/sram/sram_1bank.py b/compiler/sram/sram_1bank.py index 613fe8f5..b93a9b86 100644 --- a/compiler/sram/sram_1bank.py +++ b/compiler/sram/sram_1bank.py @@ -365,7 +365,8 @@ class sram_1bank(sram_base): for x in dff_names: pin_offset = self.data_dff_insts[port].get_pin(x).center() self.add_via_center(layers=("metal1", "via1", "metal2"), - offset=pin_offset) + offset=pin_offset, + directions = ("V", "V")) self.add_via_center(layers=("metal2", "via2", "metal3"), offset=pin_offset) self.add_via_center(layers=("metal3", "via3", "metal4"), @@ -377,8 +378,7 @@ class sram_1bank(sram_base): for x in bank_names: pin_offset = self.bank_inst.get_pin(x).bc() self.add_via_center(layers=("metal1", "via1", "metal2"), - offset=pin_offset, - directions=("V","V")) + offset=pin_offset) self.add_via_center(layers=("metal2", "via2", "metal3"), offset=pin_offset) self.add_via_center(layers=("metal3", "via3", "metal4"), @@ -406,7 +406,8 @@ class sram_1bank(sram_base): for x in dff_names: offset_pin = self.wmask_dff_insts[port].get_pin(x).center() self.add_via_center(layers=("metal1", "via1", "metal2"), - offset=offset_pin) + offset=offset_pin, + directions=("V", "V")) bank_names = ["bank_wmask{0}_{1}".format(port, x) for x in range(self.num_wmasks)] bank_pins = [self.bank_inst.get_pin(x) for x in bank_names] @@ -414,7 +415,7 @@ class sram_1bank(sram_base): offset_pin = self.bank_inst.get_pin(x).center() self.add_via_center(layers=("metal1", "via1", "metal2"), offset=offset_pin) - + route_map = list(zip(bank_pins, dff_pins)) self.create_horizontal_channel_route(route_map,offset)