diff --git a/compiler/modules/write_driver_array.py b/compiler/modules/write_driver_array.py index a561b775..909badec 100644 --- a/compiler/modules/write_driver_array.py +++ b/compiler/modules/write_driver_array.py @@ -84,13 +84,15 @@ class write_driver_array(design.design): 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) + pin_list = self.driver_insts[i].get_pins(n) + for pin in pin_list: + pin_pos = pin.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) diff --git a/technology/scn3me_subm/gds_lib/write_driver.gds b/technology/scn3me_subm/gds_lib/write_driver.gds index 495a484f..59a5ac02 100644 Binary files a/technology/scn3me_subm/gds_lib/write_driver.gds and b/technology/scn3me_subm/gds_lib/write_driver.gds differ diff --git a/technology/scn3me_subm/mag_lib/write_driver.mag b/technology/scn3me_subm/mag_lib/write_driver.mag index 2a90ff9a..4395e8b0 100644 --- a/technology/scn3me_subm/mag_lib/write_driver.mag +++ b/technology/scn3me_subm/mag_lib/write_driver.mag @@ -1,6 +1,6 @@ magic tech scmos -timestamp 1523061656 +timestamp 1523920429 << nwell >> rect -3 101 37 138 rect -3 0 37 51 @@ -161,7 +161,8 @@ rect 23 75 27 79 rect 7 24 11 28 rect 16 10 20 14 << metal1 >> -rect 5 189 8 191 +rect 5 192 10 196 +rect 5 189 8 192 rect 32 181 33 185 rect 13 169 16 177 rect 13 165 15 169 @@ -174,7 +175,6 @@ rect 30 142 33 181 rect 20 138 33 142 rect 20 132 24 138 rect 12 122 16 125 -rect 16 118 17 122 rect 13 114 17 118 rect 5 104 9 107 rect 21 104 25 107 @@ -182,7 +182,7 @@ rect 5 101 25 104 rect 5 89 9 101 rect 21 100 25 101 rect 21 96 23 100 -rect 25 82 26 86 +rect 25 82 26 90 rect 4 64 7 71 rect 27 64 31 79 rect 3 51 7 57 @@ -191,30 +191,23 @@ rect 11 45 15 48 rect 27 45 31 60 rect 3 35 7 38 rect 19 35 23 38 -rect 7 31 8 35 -rect 12 31 23 35 +rect 7 31 19 35 rect 0 24 7 28 rect 11 24 36 28 << m2contact >> -rect 5 191 9 195 +rect 10 192 14 196 rect 20 189 24 193 rect 11 157 15 161 -rect 8 118 12 122 -rect 30 82 34 86 +rect 16 118 20 122 +rect 26 86 30 90 rect 19 64 23 68 -rect 8 31 12 35 +rect 19 31 23 35 rect 12 10 16 14 << metal2 >> -rect 10 195 14 202 -rect 9 191 14 195 +rect 10 196 14 202 +rect 9 192 10 195 rect 20 193 24 202 rect 20 177 24 189 -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 16 10 20 14 rect 15 0 19 10 << m3p >> @@ -224,6 +217,9 @@ 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 +rlabel m2contact 21 66 21 66 1 gnd +rlabel m2contact 28 88 28 88 1 gnd +rlabel m2contact 13 159 13 159 1 gnd +rlabel m2contact 21 33 21 33 1 vdd +rlabel m2contact 18 120 18 120 1 vdd << end >>