diff --git a/compiler/modules/bitcell_array.py b/compiler/modules/bitcell_array.py index 69b6c47c..5c6e04a5 100644 --- a/compiler/modules/bitcell_array.py +++ b/compiler/modules/bitcell_array.py @@ -27,8 +27,8 @@ class bitcell_array(design.design): self.add_mod(self.cell) # We increase it by a well enclosure so the precharges don't overlap our wells - self.height = self.row_size*self.cell.height + drc["well_enclosure_active"] - self.width = self.column_size*self.cell.width + self.height = self.row_size*self.cell.height + drc["well_enclosure_active"] + self.m1_width + self.width = self.column_size*self.cell.width + self.m1_width self.add_pins() self.create_layout() @@ -76,28 +76,7 @@ class bitcell_array(design.design): def add_layout_pins(self): - - # Our cells have multiple gnd pins for now. - # FIXME: fix for multiple vdd too - vdd_pin = self.cell.get_pin("vdd") - - # shift it up by the overlap amount (gnd_pin) too - # must find the lower gnd pin to determine this overlap - lower_y = self.cell.height - gnd_pins = self.cell.get_pins("gnd") - for gnd_pin in gnd_pins: - if gnd_pin.layer=="metal2" and gnd_pin.by()> rect -8 29 42 51 << pwell >> @@ -73,7 +73,8 @@ rect 15 29 19 33 rect 21 20 25 24 rect 17 6 21 10 << metal1 >> -rect -2 44 32 48 +rect -2 44 15 48 +rect 19 44 32 48 rect -2 40 2 44 rect 32 40 36 44 rect 11 36 12 40 @@ -92,6 +93,7 @@ rect -2 6 17 9 rect 21 6 36 9 rect -2 5 36 6 << m2contact >> +rect 15 44 19 48 rect -2 29 2 33 rect 32 29 36 33 rect 6 -2 10 2 @@ -99,17 +101,17 @@ rect 20 -2 24 2 << metal2 >> rect -2 33 2 48 rect -2 -2 2 29 -rect 10 -2 14 48 -rect 20 2 24 48 +rect 6 2 10 48 +rect 24 -2 28 48 rect 32 33 36 48 rect 32 -2 36 29 << m3p >> rect 0 0 34 46 << labels >> -rlabel metal1 2 6 2 6 3 WL -rlabel metal2 -1 28 -1 28 1 gnd -rlabel metal2 33 28 33 28 1 gnd -rlabel metal1 17 46 17 46 5 vdd -rlabel metal2 11 43 11 43 1 BL -rlabel metal2 21 43 21 43 1 BR +rlabel metal2 0 0 0 0 1 gnd +rlabel metal2 34 0 34 0 1 gnd +rlabel m2contact 17 46 17 46 5 vdd +rlabel metal1 4 7 4 7 1 WL +rlabel metal2 8 43 8 43 1 BL +rlabel metal2 26 43 26 43 1 BR << end >> diff --git a/technology/scn3me_subm/mag_lib/replica_cell_6t.mag b/technology/scn3me_subm/mag_lib/replica_cell_6t.mag index 8257df55..52dd6265 100644 --- a/technology/scn3me_subm/mag_lib/replica_cell_6t.mag +++ b/technology/scn3me_subm/mag_lib/replica_cell_6t.mag @@ -1,6 +1,6 @@ magic tech scmos -timestamp 1517870621 +timestamp 1521677136 << nwell >> rect -8 29 42 51 << pwell >> @@ -73,19 +73,18 @@ rect 15 29 19 33 rect 21 20 25 24 rect 17 6 21 10 << metal1 >> -rect -2 44 32 48 +rect -2 44 15 48 +rect 19 44 32 48 rect -2 40 2 44 rect 32 40 36 44 rect 11 36 12 40 rect 26 36 27 40 rect -2 26 2 29 -rect 11 25 15 36 -rect 2 22 15 25 +rect 11 22 15 36 rect 23 24 27 36 -rect -2 21 15 22 -rect -2 16 2 21 -rect 11 18 15 21 +rect -2 18 15 22 rect 25 20 27 24 +rect -2 16 2 18 rect 14 14 15 18 rect 23 18 27 20 rect 32 26 36 29 @@ -95,6 +94,7 @@ rect -2 6 17 9 rect 21 6 36 9 rect -2 5 36 6 << m2contact >> +rect 15 44 19 48 rect -2 29 2 33 rect 32 29 36 33 rect 6 -2 10 2 @@ -102,17 +102,17 @@ rect 20 -2 24 2 << metal2 >> rect -2 33 2 48 rect -2 -2 2 29 -rect 10 -2 14 48 -rect 20 2 24 48 +rect 6 2 10 48 +rect 24 -2 28 48 rect 32 33 36 48 rect 32 -2 36 29 << m3p >> rect 0 0 34 46 << labels >> -rlabel metal1 2 6 2 6 3 WL -rlabel metal2 -1 28 -1 28 1 gnd -rlabel metal2 33 28 33 28 1 gnd -rlabel metal1 17 46 17 46 5 vdd -rlabel metal2 11 43 11 43 1 BL -rlabel metal2 21 43 21 43 1 BR +rlabel metal2 0 0 0 0 1 gnd +rlabel metal2 34 0 34 0 1 gnd +rlabel m2contact 17 46 17 46 5 vdd +rlabel metal1 4 7 4 7 1 WL +rlabel metal2 8 43 8 43 1 BL +rlabel metal2 26 43 26 43 1 BR << end >>