Add no well enclosure for techs without wells

This commit is contained in:
mrg 2020-06-24 12:07:47 -07:00
parent 6c523a7556
commit ba92467fec
1 changed files with 39 additions and 23 deletions

View File

@ -252,31 +252,47 @@ class pgate(design.design):
""" """
Add top-to-bottom implants for adjacency issues in s8. Add top-to-bottom implants for adjacency issues in s8.
""" """
nmos_insts = self.get_tx_insts("nmos") if self.add_wells:
pmos_insts = self.get_tx_insts("pmos") rightx = None
ntap_insts = [self.nwell_contact] else:
ptap_insts = [self.pwell_contact] rightx = self.width
self.add_enclosure(nmos_insts, nmos_insts = self.get_tx_insts("nmos")
layer="nimplant", if len(nmos_insts) > 0:
extend=self.implant_enclose_active, self.add_enclosure(nmos_insts,
leftx=0, layer="nimplant",
boty=0) extend=self.implant_enclose_active,
self.add_enclosure(pmos_insts, leftx=0,
layer="pimplant", rightx=rightx,
extend=self.implant_enclose_active, boty=0)
leftx=0,
topy=self.height) pmos_insts = self.get_tx_insts("pmos")
self.add_enclosure(ntap_insts, if len(pmos_insts) > 0:
layer="nimplant", self.add_enclosure(pmos_insts,
extend=self.implant_enclose_active, layer="pimplant",
rightx=self.width, extend=self.implant_enclose_active,
topy=self.height) leftx=0,
self.add_enclosure(ptap_insts, rightx=rightx,
layer="pimplant", topy=self.height)
extend=self.implant_enclose_active,
rightx=self.width, try:
boty=0) ntap_insts = [self.nwell_contact]
self.add_enclosure(ntap_insts,
layer="nimplant",
extend=self.implant_enclose_active,
rightx=self.width,
topy=self.height)
except AttributeError:
pass
try:
ptap_insts = [self.pwell_contact]
self.add_enclosure(ptap_insts,
layer="pimplant",
extend=self.implant_enclose_active,
rightx=self.width,
boty=0)
except AttributeError:
pass
def add_pwell_contact(self, nmos, nmos_pos): def add_pwell_contact(self, nmos, nmos_pos):
""" Add an pwell contact next to the given nmos device. """ """ Add an pwell contact next to the given nmos device. """