From e4295ea61b05f52041a1a48042c6d1c310f5301e Mon Sep 17 00:00:00 2001 From: Matt Guthaus Date: Wed, 31 Jan 2018 17:37:16 -0800 Subject: [PATCH] Fix pin names to lower case. Fix write driver DRC errors and LVS error. --- compiler/bank.py | 4 +- compiler/bitcell_array.py | 3 +- compiler/write_driver.py | 2 +- compiler/write_driver_array.py | 4 +- technology/freepdk45/gds_lib/write_driver.gds | Bin 24576 -> 24576 bytes technology/freepdk45/sp_lib/write_driver.sp | 2 +- .../scn3me_subm/gds_lib/write_driver.gds | Bin 12132 -> 12132 bytes .../scn3me_subm/mag_lib/write_driver.mag | 432 +++++++++--------- technology/scn3me_subm/sp_lib/write_driver.sp | 2 +- 9 files changed, 225 insertions(+), 224 deletions(-) diff --git a/compiler/bank.py b/compiler/bank.py index ce686c84..c792ee23 100644 --- a/compiler/bank.py +++ b/compiler/bank.py @@ -234,8 +234,8 @@ class bank(design.design): """ Adding Precharge """ # The wells must be far enough apart - # We use two well spacings because the bitcells tend to have a shared rail in the height - y_offset = self.bitcell_array.height + 2*drc["pwell_to_nwell"] + # The enclosure is for the well and the spacig is to the bitcell wells + y_offset = self.bitcell_array.height + 2*drc["pwell_to_nwell"] + drc["well_enclosure_active"] self.precharge_array_inst=self.add_inst(name="precharge_array", mod=self.precharge_array, offset=vector(0,y_offset)) diff --git a/compiler/bitcell_array.py b/compiler/bitcell_array.py index 30696b7c..44318206 100644 --- a/compiler/bitcell_array.py +++ b/compiler/bitcell_array.py @@ -26,7 +26,8 @@ class bitcell_array(design.design): self.cell = self.mod_bitcell() self.add_mod(self.cell) - self.height = self.row_size*self.cell.height + # 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.add_pins() diff --git a/compiler/write_driver.py b/compiler/write_driver.py index 57ba39c3..67477a8d 100644 --- a/compiler/write_driver.py +++ b/compiler/write_driver.py @@ -11,7 +11,7 @@ class write_driver(design.design): the technology library. """ - pin_names = ["din", "BL", "BR", "en", "gnd", "vdd"] + pin_names = ["din", "bl", "br", "en", "gnd", "vdd"] (width,height) = utils.get_libcell_size("write_driver", GDS["unit"], layer["boundary"]) pin_map = utils.get_libcell_pins(pin_names, "write_driver", GDS["unit"], layer["boundary"]) diff --git a/compiler/write_driver_array.py b/compiler/write_driver_array.py index 0bf5d32d..a220e473 100644 --- a/compiler/write_driver_array.py +++ b/compiler/write_driver_array.py @@ -69,14 +69,14 @@ class write_driver_array(design.design): offset=din_pin.ll(), width=din_pin.width(), height=din_pin.height()) - bl_pin = self.driver_insts[i].get_pin("BL") + bl_pin = self.driver_insts[i].get_pin("bl") self.add_layout_pin(text="bl[{0}]".format(i), layer="metal2", offset=bl_pin.ll(), width=bl_pin.width(), height=bl_pin.height()) - br_pin = self.driver_insts[i].get_pin("BR") + br_pin = self.driver_insts[i].get_pin("br") self.add_layout_pin(text="br[{0}]".format(i), layer="metal2", offset=br_pin.ll(), diff --git a/technology/freepdk45/gds_lib/write_driver.gds b/technology/freepdk45/gds_lib/write_driver.gds index c1b0d0b9e692c609168ea4258af5d12b13488e10..4954fc800572cf2e762aeff8e3af7144a709ca3a 100644 GIT binary patch delta 201 zcmZoTz}Rqrae{cb5CbEFJcA&E9D^nU4-;ETYFc7xP6-2p2s5jl!jaia9|wQ4REiP5 z;Ja3gL57uyfscWkL6U)!L4(1B0a>pA8(Vo%W=U#%N>OH6YSH98R(tjk1~y5yq@2kO zY*LfYu{un4Vbz)3#wN0{Wev;ZHg=26MQkFBAc4(K*mD>syRnN-=4VTuypNrWDXD03 tAE(jg8qU)ki`#{mCc6tcY;G56(3yNURB-bRS399ijt5vai$%O*2LN1#H}(Jk delta 195 zcmZoTz}Rqrae{cbAOi=31Opd?C4(>n4-;ETYFc7xP6-2p2s5jl!jaia9|wQ4REiP5 z;Ja3VL57uyfscWkL6U)!L4(1B0a>pA8(Vo%W=U#%N>OH6YSCs3#zQQVcQJ`f=3~^E z%*JWK!&t+>pb*T!CduaHGueS%dg6Ke$+tLCHXE^tFai}gF*yZoc3^K~oIHh7XLAkb nX^zS6A`Xk)g_t(Ci!|tLjt$<)GFdE8VzY#!ozP~nh*#_YVr4Pc diff --git a/technology/freepdk45/sp_lib/write_driver.sp b/technology/freepdk45/sp_lib/write_driver.sp index 8f1a551f..1267eb91 100644 --- a/technology/freepdk45/sp_lib/write_driver.sp +++ b/technology/freepdk45/sp_lib/write_driver.sp @@ -1,5 +1,5 @@ -.SUBCKT write_driver din bl br wen vdd gnd +.SUBCKT write_driver din bl br en vdd gnd *inverters for enable and data input minP bl_bar din vdd vdd pmos_vtg w=360.000000n l=50.000000n minN bl_bar din gnd gnd nmos_vtg w=180.000000n l=50.000000n diff --git a/technology/scn3me_subm/gds_lib/write_driver.gds b/technology/scn3me_subm/gds_lib/write_driver.gds index af90e33d8d7583b684d586f58b27d236a70a215b..a8a9c176943ac71d6f817b59c2025814ec4005bd 100644 GIT binary patch literal 12132 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 literal 12132 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 PHLAPrh`TQFl6&mGf%r+f diff --git a/technology/scn3me_subm/mag_lib/write_driver.mag b/technology/scn3me_subm/mag_lib/write_driver.mag index 53a509e4..7398bb84 100644 --- a/technology/scn3me_subm/mag_lib/write_driver.mag +++ b/technology/scn3me_subm/mag_lib/write_driver.mag @@ -1,236 +1,236 @@ magic tech scmos -timestamp 1516828491 +timestamp 1517448475 << nwell >> -rect -3 100 37 137 -rect -3 -1 37 50 +rect -3 101 37 138 +rect -3 0 37 51 << pwell >> -rect -3 137 37 201 -rect -3 50 37 100 +rect -3 138 37 202 +rect -3 51 37 101 << ntransistor >> -rect 9 176 11 188 -rect 17 176 19 188 -rect 15 161 27 163 -rect 9 143 11 147 -rect 17 143 19 147 -rect 10 81 12 88 -rect 18 81 20 88 -rect 8 56 10 63 -rect 16 56 18 63 -rect 24 59 26 63 +rect 9 177 11 189 +rect 17 177 19 189 +rect 15 162 27 164 +rect 9 144 11 148 +rect 17 144 19 148 +rect 10 82 12 89 +rect 18 82 20 89 +rect 8 57 10 64 +rect 16 57 18 64 +rect 24 60 26 64 << ptransistor >> -rect 9 124 11 131 -rect 17 124 19 131 -rect 10 106 12 113 -rect 18 106 20 113 -rect 8 37 10 44 -rect 16 37 18 44 -rect 24 37 26 44 +rect 9 125 11 132 +rect 17 125 19 132 +rect 10 107 12 114 +rect 18 107 20 114 +rect 8 38 10 45 +rect 16 38 18 45 +rect 24 38 26 45 << ndiffusion >> -rect 8 176 9 188 -rect 11 176 12 188 -rect 16 176 17 188 -rect 19 176 20 188 -rect 15 163 27 164 -rect 15 160 27 161 -rect 12 156 15 159 -rect 12 155 16 156 -rect 8 143 9 147 -rect 11 143 12 147 -rect 16 143 17 147 -rect 19 143 20 147 -rect 9 81 10 88 -rect 12 81 13 88 -rect 17 81 18 88 -rect 20 81 21 88 -rect 25 81 26 85 -rect 7 56 8 63 -rect 10 56 11 63 -rect 15 56 16 63 -rect 18 56 19 63 -rect 23 59 24 63 -rect 26 59 27 63 +rect 8 177 9 189 +rect 11 177 12 189 +rect 16 177 17 189 +rect 19 177 20 189 +rect 15 164 27 165 +rect 15 161 27 162 +rect 12 157 15 160 +rect 12 156 16 157 +rect 8 144 9 148 +rect 11 144 12 148 +rect 16 144 17 148 +rect 19 144 20 148 +rect 9 82 10 89 +rect 12 82 13 89 +rect 17 82 18 89 +rect 20 82 21 89 +rect 25 82 26 86 +rect 7 57 8 64 +rect 10 57 11 64 +rect 15 57 16 64 +rect 18 57 19 64 +rect 23 60 24 64 +rect 26 60 27 64 << pdiffusion >> -rect 8 124 9 131 -rect 11 124 12 131 -rect 16 124 17 131 -rect 19 124 20 131 -rect 12 121 16 124 -rect 9 106 10 113 -rect 12 106 13 113 -rect 17 106 18 113 -rect 20 106 21 113 -rect 7 37 8 44 -rect 10 37 11 44 -rect 15 37 16 44 -rect 18 37 19 44 -rect 23 37 24 44 -rect 26 37 27 44 -rect 3 34 7 37 +rect 8 125 9 132 +rect 11 125 12 132 +rect 16 125 17 132 +rect 19 125 20 132 +rect 12 122 16 125 +rect 9 107 10 114 +rect 12 107 13 114 +rect 17 107 18 114 +rect 20 107 21 114 +rect 7 38 8 45 +rect 10 38 11 45 +rect 15 38 16 45 +rect 18 38 19 45 +rect 23 38 24 45 +rect 26 38 27 45 +rect 3 35 7 38 << ndcontact >> -rect 4 176 8 188 -rect 12 176 16 188 -rect 20 176 24 188 -rect 15 164 27 168 -rect 15 156 27 160 -rect 4 143 8 147 -rect 12 143 16 147 -rect 20 143 24 147 -rect 5 81 9 88 -rect 13 81 17 88 -rect 21 81 25 88 -rect 3 56 7 63 -rect 11 56 15 63 -rect 19 56 23 63 -rect 27 59 31 63 +rect 4 177 8 189 +rect 12 177 16 189 +rect 20 177 24 189 +rect 15 165 27 169 +rect 15 157 27 161 +rect 4 144 8 148 +rect 12 144 16 148 +rect 20 144 24 148 +rect 5 82 9 89 +rect 13 82 17 89 +rect 21 82 25 89 +rect 3 57 7 64 +rect 11 57 15 64 +rect 19 57 23 64 +rect 27 60 31 64 << pdcontact >> -rect 4 124 8 131 -rect 12 124 16 131 -rect 20 124 24 131 -rect 5 106 9 113 -rect 13 106 17 113 -rect 21 106 25 113 -rect 3 37 7 44 -rect 11 37 15 44 -rect 19 37 23 44 -rect 27 37 31 44 +rect 4 125 8 132 +rect 12 125 16 132 +rect 20 125 24 132 +rect 5 107 9 114 +rect 13 107 17 114 +rect 21 107 25 114 +rect 3 38 7 45 +rect 11 38 15 45 +rect 19 38 23 45 +rect 27 38 31 45 << psubstratepcontact >> -rect 12 151 16 155 -rect 26 81 30 85 +rect 12 152 16 156 +rect 26 82 30 86 << nsubstratencontact >> -rect 12 117 16 121 -rect 3 30 7 34 +rect 12 118 16 122 +rect 3 31 7 35 << polysilicon >> -rect 9 193 30 195 -rect 9 188 11 193 -rect 17 188 19 190 -rect 28 184 30 193 -rect 9 174 11 176 -rect 17 171 19 176 -rect 6 169 19 171 -rect 6 166 8 169 -rect 13 161 15 163 -rect 27 161 33 163 -rect 9 147 11 149 -rect 17 147 19 149 -rect 9 131 11 143 -rect 17 131 19 143 -rect 9 123 11 124 -rect 2 121 11 123 -rect 17 123 19 124 -rect 17 121 28 123 -rect 2 74 4 121 -rect 10 113 12 115 -rect 18 113 20 115 -rect 10 88 12 106 -rect 18 105 20 106 -rect 16 103 20 105 -rect 16 91 18 103 -rect 26 99 28 121 -rect 27 95 28 99 -rect 16 89 20 91 -rect 18 88 20 89 -rect 10 80 12 81 -rect 10 78 13 80 -rect 2 70 3 74 -rect 11 70 13 78 -rect 18 78 20 81 -rect 18 76 23 78 -rect 31 70 33 161 -rect 11 68 33 70 -rect 11 66 13 68 -rect 8 64 13 66 -rect 8 63 10 64 -rect 16 63 18 65 -rect 24 63 26 65 -rect 8 44 10 56 -rect 16 51 18 56 -rect 24 51 26 59 -rect 16 49 26 51 -rect 16 44 18 49 -rect 24 44 26 49 -rect 8 27 10 37 -rect 16 13 18 37 -rect 24 35 26 37 +rect 9 194 30 196 +rect 9 189 11 194 +rect 17 189 19 191 +rect 28 185 30 194 +rect 9 175 11 177 +rect 17 172 19 177 +rect 6 170 19 172 +rect 6 167 8 170 +rect 13 162 15 164 +rect 27 162 33 164 +rect 9 148 11 150 +rect 17 148 19 150 +rect 9 132 11 144 +rect 17 132 19 144 +rect 9 124 11 125 +rect 2 122 11 124 +rect 17 124 19 125 +rect 17 122 28 124 +rect 2 75 4 122 +rect 10 114 12 116 +rect 18 114 20 116 +rect 10 89 12 107 +rect 18 106 20 107 +rect 16 104 20 106 +rect 16 92 18 104 +rect 26 100 28 122 +rect 27 96 28 100 +rect 16 90 20 92 +rect 18 89 20 90 +rect 10 81 12 82 +rect 10 79 13 81 +rect 2 71 3 75 +rect 11 71 13 79 +rect 18 79 20 82 +rect 18 77 23 79 +rect 31 71 33 162 +rect 11 69 33 71 +rect 11 67 13 69 +rect 8 65 13 67 +rect 8 64 10 65 +rect 16 64 18 66 +rect 24 64 26 66 +rect 8 45 10 57 +rect 16 52 18 57 +rect 24 52 26 60 +rect 16 50 26 52 +rect 16 45 18 50 +rect 24 45 26 50 +rect 8 28 10 38 +rect 16 14 18 38 +rect 24 36 26 38 << polycontact >> -rect 28 180 32 184 -rect 4 162 8 166 -rect 23 95 27 99 -rect 3 70 7 74 -rect 23 74 27 78 -rect 7 23 11 27 -rect 16 9 20 13 +rect 28 181 32 185 +rect 4 163 8 167 +rect 23 96 27 100 +rect 3 71 7 75 +rect 23 75 27 79 +rect 7 24 11 28 +rect 16 10 20 14 << metal1 >> -rect 5 188 8 190 -rect 32 180 33 184 -rect 13 168 16 176 -rect 13 164 15 168 -rect 4 147 8 162 -rect 12 155 16 156 -rect 12 147 16 151 -rect 4 131 8 143 -rect 20 141 24 143 -rect 30 141 33 180 -rect 20 137 33 141 -rect 20 131 24 137 -rect 12 121 16 124 -rect 0 117 8 121 -rect 16 117 36 121 -rect 13 113 17 117 -rect 5 103 9 106 -rect 21 103 25 106 -rect 5 100 25 103 -rect 5 88 9 100 -rect 21 99 25 100 -rect 21 95 23 99 -rect 25 81 26 85 -rect 4 63 7 70 -rect 27 63 31 78 -rect 3 50 7 56 -rect 3 47 15 50 -rect 11 44 15 47 -rect 27 44 31 59 -rect 3 34 7 37 -rect 19 34 23 37 -rect 0 30 3 34 -rect 7 30 8 34 -rect 12 30 36 34 -rect 0 23 7 27 -rect 11 23 36 27 -rect 0 16 32 20 +rect 5 189 8 191 +rect 32 181 33 185 +rect 13 169 16 177 +rect 13 165 15 169 +rect 4 148 8 163 +rect 12 156 16 157 +rect 12 148 16 152 +rect 4 132 8 144 +rect 20 142 24 144 +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 13 114 17 118 +rect 5 104 9 107 +rect 21 104 25 107 +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 4 64 7 71 +rect 27 64 31 79 +rect 3 51 7 57 +rect 3 48 15 51 +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 0 24 7 28 +rect 11 24 36 28 +rect 0 17 32 21 << m2contact >> -rect 5 190 9 194 -rect 20 188 24 192 -rect 11 156 15 160 -rect 8 117 12 121 -rect 30 81 34 85 -rect 19 63 23 67 -rect 8 30 12 34 -rect 32 16 36 20 -rect 12 9 16 13 +rect 5 191 9 195 +rect 20 189 24 193 +rect 11 157 15 161 +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 194 14 201 -rect 9 190 14 194 -rect 20 192 24 201 -rect 20 176 24 188 -rect 32 160 36 195 -rect 15 156 36 160 -rect 8 34 12 117 -rect 32 85 36 156 -rect 34 81 36 85 -rect 32 71 36 81 -rect 19 67 36 71 -rect 32 20 36 67 -rect 16 9 20 13 -rect 15 0 19 9 -rect 32 0 36 16 +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 201 +rect 0 0 34 202 << labels >> -rlabel metal1 0 30 0 30 1 vdd -rlabel metal1 0 16 0 16 7 gnd -rlabel metal2 15 0 15 0 1 din -rlabel metal1 0 23 3 24 3 en -rlabel metal2 11 197 11 197 5 BL -rlabel metal2 21 197 21 197 5 BR +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 << end >> diff --git a/technology/scn3me_subm/sp_lib/write_driver.sp b/technology/scn3me_subm/sp_lib/write_driver.sp index 45fa5097..0d244673 100644 --- a/technology/scn3me_subm/sp_lib/write_driver.sp +++ b/technology/scn3me_subm/sp_lib/write_driver.sp @@ -1,5 +1,5 @@ *********************** Write_Driver ****************************** -.SUBCKT write_driver din bl br wen vdd gnd +.SUBCKT write_driver din bl br en vdd gnd **** Inverter to conver Data_in to data_in_bar ****** M_1 net_3 din gnd gnd n W='1.2*1u' L=0.6u