mirror of https://github.com/VLSIDA/OpenRAM.git
None for layer means unused.
This commit is contained in:
parent
04045cf672
commit
b71d630643
|
|
@ -8,7 +8,7 @@
|
||||||
import contact
|
import contact
|
||||||
import design
|
import design
|
||||||
import debug
|
import debug
|
||||||
from tech import layers
|
from tech import layer, drc
|
||||||
from vector import vector
|
from vector import vector
|
||||||
from globals import OPTS
|
from globals import OPTS
|
||||||
from sram_factory import factory
|
from sram_factory import factory
|
||||||
|
|
@ -141,27 +141,29 @@ class pgate(design.design):
|
||||||
max_y_offset = self.height + 0.5 * self.m1_width
|
max_y_offset = self.height + 0.5 * self.m1_width
|
||||||
self.nwell_position = middle_position
|
self.nwell_position = middle_position
|
||||||
nwell_height = max_y_offset - middle_position.y
|
nwell_height = max_y_offset - middle_position.y
|
||||||
if layers["nwell"]:
|
if layer["nwell"]:
|
||||||
self.add_rect(layer="nwell",
|
self.add_rect(layer="nwell",
|
||||||
offset=middle_position,
|
offset=middle_position,
|
||||||
width=self.well_width,
|
width=self.well_width,
|
||||||
height=nwell_height)
|
height=nwell_height)
|
||||||
self.add_rect(layer="vtg",
|
if layer["vtg"]:
|
||||||
offset=self.nwell_position,
|
self.add_rect(layer="vtg",
|
||||||
width=self.well_width,
|
offset=self.nwell_position,
|
||||||
height=nwell_height)
|
width=self.well_width,
|
||||||
|
height=nwell_height)
|
||||||
|
|
||||||
pwell_position = vector(0, -0.5 * self.m1_width)
|
pwell_position = vector(0, -0.5 * self.m1_width)
|
||||||
pwell_height = middle_position.y - pwell_position.y
|
pwell_height = middle_position.y - pwell_position.y
|
||||||
if layers["pwell"]:
|
if layer["pwell"]:
|
||||||
self.add_rect(layer="pwell",
|
self.add_rect(layer="pwell",
|
||||||
offset=pwell_position,
|
offset=pwell_position,
|
||||||
width=self.well_width,
|
width=self.well_width,
|
||||||
height=pwell_height)
|
height=pwell_height)
|
||||||
self.add_rect(layer="vtg",
|
if layer["vtg"]:
|
||||||
offset=pwell_position,
|
self.add_rect(layer="vtg",
|
||||||
width=self.well_width,
|
offset=pwell_position,
|
||||||
height=pwell_height)
|
width=self.well_width,
|
||||||
|
height=pwell_height)
|
||||||
|
|
||||||
def add_nwell_contact(self, pmos, pmos_pos):
|
def add_nwell_contact(self, pmos, pmos_pos):
|
||||||
""" Add an nwell contact next to the given pmos device. """
|
""" Add an nwell contact next to the given pmos device. """
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
#
|
#
|
||||||
import design
|
import design
|
||||||
import debug
|
import debug
|
||||||
from tech import drc, spice
|
from tech import layer, drc, spice
|
||||||
from vector import vector
|
from vector import vector
|
||||||
from sram_factory import factory
|
from sram_factory import factory
|
||||||
|
|
||||||
|
|
@ -319,11 +319,13 @@ class ptx(design.design):
|
||||||
"""
|
"""
|
||||||
Add an (optional) well and implant for the type of transistor.
|
Add an (optional) well and implant for the type of transistor.
|
||||||
"""
|
"""
|
||||||
if drc("has_{}well".format(self.well_type)):
|
well_name = "{}well".format(self.well_type)
|
||||||
self.add_rect(layer="{}well".format(self.well_type),
|
if layer[well_name]:
|
||||||
|
self.add_rect(layer=well_name,
|
||||||
offset=(0,0),
|
offset=(0,0),
|
||||||
width=self.cell_well_width,
|
width=self.cell_well_width,
|
||||||
height=self.cell_well_height)
|
height=self.cell_well_height)
|
||||||
|
if layer["vtg"]:
|
||||||
self.add_rect(layer="vtg",
|
self.add_rect(layer="vtg",
|
||||||
offset=(0,0),
|
offset=(0,0),
|
||||||
width=self.cell_well_width,
|
width=self.cell_well_width,
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@ GDS["zoom"] = 0.5
|
||||||
|
|
||||||
# create the GDS layer map
|
# create the GDS layer map
|
||||||
layer={}
|
layer={}
|
||||||
layer["vtg"] = (-1, 0)
|
layer["vtg"] = None
|
||||||
layer["vth"] = (-1, 0)
|
layer["vth"] = None
|
||||||
layer["pwell"] = (41, 0)
|
layer["pwell"] = (41, 0)
|
||||||
layer["nwell"] = (42, 0)
|
layer["nwell"] = (42, 0)
|
||||||
layer["active"] = (43, 0)
|
layer["active"] = (43, 0)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue