None for layer means unused.

This commit is contained in:
Matt Guthaus 2019-11-26 13:34:39 -08:00
parent 04045cf672
commit b71d630643
3 changed files with 20 additions and 16 deletions

View File

@ -8,7 +8,7 @@
import contact
import design
import debug
from tech import layers
from tech import layer, drc
from vector import vector
from globals import OPTS
from sram_factory import factory
@ -141,27 +141,29 @@ 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 layers["nwell"]:
if layer["nwell"]:
self.add_rect(layer="nwell",
offset=middle_position,
width=self.well_width,
height=nwell_height)
self.add_rect(layer="vtg",
offset=self.nwell_position,
width=self.well_width,
height=nwell_height)
if layer["vtg"]:
self.add_rect(layer="vtg",
offset=self.nwell_position,
width=self.well_width,
height=nwell_height)
pwell_position = vector(0, -0.5 * self.m1_width)
pwell_height = middle_position.y - pwell_position.y
if layers["pwell"]:
if layer["pwell"]:
self.add_rect(layer="pwell",
offset=pwell_position,
width=self.well_width,
height=pwell_height)
self.add_rect(layer="vtg",
offset=pwell_position,
width=self.well_width,
height=pwell_height)
if layer["vtg"]:
self.add_rect(layer="vtg",
offset=pwell_position,
width=self.well_width,
height=pwell_height)
def add_nwell_contact(self, pmos, pmos_pos):
""" Add an nwell contact next to the given pmos device. """

View File

@ -7,7 +7,7 @@
#
import design
import debug
from tech import drc, spice
from tech import layer, drc, spice
from vector import vector
from sram_factory import factory
@ -319,11 +319,13 @@ class ptx(design.design):
"""
Add an (optional) well and implant for the type of transistor.
"""
if drc("has_{}well".format(self.well_type)):
self.add_rect(layer="{}well".format(self.well_type),
well_name = "{}well".format(self.well_type)
if layer[well_name]:
self.add_rect(layer=well_name,
offset=(0,0),
width=self.cell_well_width,
height=self.cell_well_height)
if layer["vtg"]:
self.add_rect(layer="vtg",
offset=(0,0),
width=self.cell_well_width,

View File

@ -35,8 +35,8 @@ GDS["zoom"] = 0.5
# create the GDS layer map
layer={}
layer["vtg"] = (-1, 0)
layer["vth"] = (-1, 0)
layer["vtg"] = None
layer["vth"] = None
layer["pwell"] = (41, 0)
layer["nwell"] = (42, 0)
layer["active"] = (43, 0)