From 4f8ab78ee2e812784d5ce279ef129af1acf40d6b Mon Sep 17 00:00:00 2001 From: Matt Guthaus Date: Wed, 11 Apr 2018 09:29:54 -0700 Subject: [PATCH] Change write driver supply pins to M2 --- compiler/modules/write_driver_array.py | 23 +++++++++--------- technology/freepdk45/gds_lib/write_driver.gds | Bin 24576 -> 22528 bytes .../scn3me_subm/gds_lib/write_driver.gds | Bin 12132 -> 11876 bytes .../scn3me_subm/mag_lib/write_driver.mag | 17 ++++--------- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/compiler/modules/write_driver_array.py b/compiler/modules/write_driver_array.py index a220e473..a561b775 100644 --- a/compiler/modules/write_driver_array.py +++ b/compiler/modules/write_driver_array.py @@ -82,7 +82,17 @@ class write_driver_array(design.design): offset=br_pin.ll(), width=br_pin.width(), height=br_pin.height()) - + + for n in ["vdd", "gnd"]: + pin_pos = self.driver_insts[i].get_pin(n).center() + # Add the M2->M3 stack + self.add_via_center(layers=("metal2", "via2", "metal3"), + offset=pin_pos) + self.add_layout_pin_rect_center(text=n, + layer="metal3", + offset=pin_pos) + + self.add_layout_pin(text="en", layer="metal1", @@ -90,16 +100,5 @@ class write_driver_array(design.design): width=self.width, height=drc['minwidth_metal1']) - self.add_layout_pin(text="vdd", - layer="metal1", - offset=self.driver_insts[0].get_pin("vdd").ll().scale(0,1), - width=self.width, - height=drc['minwidth_metal1']) - - self.add_layout_pin(text="gnd", - layer="metal1", - offset=self.driver_insts[0].get_pin("gnd").ll().scale(0,1), - width=self.width, - height=drc['minwidth_metal1']) diff --git a/technology/freepdk45/gds_lib/write_driver.gds b/technology/freepdk45/gds_lib/write_driver.gds index 4954fc800572cf2e762aeff8e3af7144a709ca3a..7c5e94caba4a17b3d019e9c54491f779f520abae 100644 GIT binary patch delta 1593 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 diff --git a/technology/scn3me_subm/gds_lib/write_driver.gds b/technology/scn3me_subm/gds_lib/write_driver.gds index a8a9c176943ac71d6f817b59c2025814ec4005bd..495a484f54c5279b71ea55636dbdeffe46d7b373 100644 GIT binary patch delta 217 zcmaD7_asJ%fsKKQftf*uk%^&kSGHKj23>g`JJW|qnc_11H&GmlR#F(=%*VP7(n7M zde558@3efGCRb|<%7M%PsfE%0P_+> rect -3 101 37 138 rect -3 0 37 51 @@ -174,8 +174,7 @@ rect 30 142 33 181 rect 20 138 33 142 rect 20 132 24 138 rect 12 122 16 125 -rect 0 118 8 122 -rect 16 118 36 122 +rect 16 118 17 122 rect 13 114 17 118 rect 5 104 9 107 rect 21 104 25 107 @@ -192,12 +191,10 @@ rect 11 45 15 48 rect 27 45 31 60 rect 3 35 7 38 rect 19 35 23 38 -rect 0 31 3 35 rect 7 31 8 35 -rect 12 31 36 35 +rect 12 31 23 35 rect 0 24 7 28 rect 11 24 36 28 -rect 0 17 32 21 << m2contact >> rect 5 191 9 195 rect 20 189 24 193 @@ -206,31 +203,27 @@ rect 8 118 12 122 rect 30 82 34 86 rect 19 64 23 68 rect 8 31 12 35 -rect 32 17 36 21 rect 12 10 16 14 << metal2 >> rect 10 195 14 202 rect 9 191 14 195 rect 20 193 24 202 rect 20 177 24 189 -rect 32 161 36 196 rect 15 157 36 161 rect 8 35 12 118 rect 32 86 36 157 rect 34 82 36 86 rect 32 72 36 82 rect 19 68 36 72 -rect 32 21 36 68 rect 16 10 20 14 rect 15 0 19 10 -rect 32 0 36 17 << m3p >> rect 0 0 34 202 << labels >> -rlabel metal1 0 31 0 31 1 vdd -rlabel metal1 0 17 0 17 7 gnd rlabel metal2 15 1 15 1 1 din rlabel metal1 2 25 2 25 3 en rlabel metal2 12 200 12 200 5 bl rlabel metal2 22 200 22 200 5 br +rlabel metal2 10 94 10 94 1 vdd +rlabel metal2 35 141 35 141 7 gnd << end >>