mirror of https://github.com/VLSIDA/OpenRAM.git
Use layer instead of special flags for wells
This commit is contained in:
parent
909321326d
commit
102758881a
|
|
@ -8,7 +8,7 @@
|
|||
import contact
|
||||
import design
|
||||
import debug
|
||||
from tech import drc
|
||||
from tech import layers
|
||||
from vector import vector
|
||||
from globals import OPTS
|
||||
from sram_factory import factory
|
||||
|
|
@ -141,7 +141,7 @@ class pgate(design.design):
|
|||
max_y_offset = self.height + 0.5 * self.m1_width
|
||||
self.nwell_position = middle_position
|
||||
nwell_height = max_y_offset - middle_position.y
|
||||
if drc("has_nwell"):
|
||||
if layers["nwell"]:
|
||||
self.add_rect(layer="nwell",
|
||||
offset=middle_position,
|
||||
width=self.well_width,
|
||||
|
|
@ -153,7 +153,7 @@ class pgate(design.design):
|
|||
|
||||
pwell_position = vector(0, -0.5 * self.m1_width)
|
||||
pwell_height = middle_position.y - pwell_position.y
|
||||
if drc("has_pwell"):
|
||||
if layers["pwell"]:
|
||||
self.add_rect(layer="pwell",
|
||||
offset=pwell_position,
|
||||
width=self.well_width,
|
||||
|
|
|
|||
|
|
@ -152,7 +152,8 @@ class ptx(design.design):
|
|||
self.active_offset = vector([self.well_enclose_active] * 2)
|
||||
|
||||
# Well enclosure of active, ensure minwidth as well
|
||||
if drc("has_{}well".format(self.well_type)):
|
||||
well_name = "{}well".format(self.well_type)
|
||||
if layer[well_name]):
|
||||
self.cell_well_width = max(self.active_width + 2 * self.well_enclose_active,
|
||||
self.well_width)
|
||||
self.cell_well_height = max(self.tx_width + 2 * self.well_enclose_active,
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ layer["thkox"] = (8, 0)
|
|||
layer["poly"] = (9, 0)
|
||||
layer["contact"] = (10, 0)
|
||||
layer["active_contact"] = (10, 0)
|
||||
layer["poly_contact"] = None
|
||||
layer["metal1"] = (11, 0)
|
||||
layer["via1"] = (12, 0)
|
||||
layer["metal2"] = (13, 0)
|
||||
|
|
@ -89,10 +90,6 @@ drclvs_home=os.environ.get("DRCLVS_HOME")
|
|||
|
||||
drc = design_rules("freepdk45")
|
||||
|
||||
drc["body_tie_down"] = 0
|
||||
drc["has_pwell"] = True
|
||||
drc["has_nwell"] = True
|
||||
|
||||
#grid size
|
||||
drc["grid"] = 0.0025
|
||||
|
||||
|
|
|
|||
|
|
@ -37,13 +37,14 @@ GDS["zoom"] = 0.5
|
|||
layer={}
|
||||
layer["vtg"] = (-1, 0)
|
||||
layer["vth"] = (-1, 0)
|
||||
layer["contact"] = (47, 0)
|
||||
layer["pwell"] = (41, 0)
|
||||
layer["nwell"] = (42, 0)
|
||||
layer["active"] = (43, 0)
|
||||
layer["pimplant"] = (44, 0)
|
||||
layer["nimplant"] = (45, 0)
|
||||
layer["poly"] = (46, 0)
|
||||
layer["poly_contact"] = None
|
||||
layer["contact"] = (47, 0)
|
||||
layer["active_contact"] = (48, 0)
|
||||
layer["metal1"] = (49, 0)
|
||||
layer["via1"] = (50, 0)
|
||||
|
|
@ -78,10 +79,6 @@ drclvs_home=os.environ.get("DRCLVS_HOME")
|
|||
|
||||
drc = design_rules("scn4me_sub")
|
||||
|
||||
drc["body_tie_down"] = 0
|
||||
drc["has_pwell"] = True
|
||||
drc["has_nwell"] = True
|
||||
|
||||
#grid size is 1/2 a lambda
|
||||
drc["grid"]=0.5*_lambda_
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue