use add_enclosure for npc contacts

This commit is contained in:
mrg 2020-06-24 11:55:44 -07:00
parent e694622f28
commit 6c523a7556
3 changed files with 39 additions and 39 deletions

View File

@ -189,7 +189,7 @@ class pnand2(pgate.pgate):
active_to_poly_contact,
active_to_poly_contact2)
self.route_input_gate(self.pmos1_inst,
apin = self.route_input_gate(self.pmos1_inst,
self.nmos1_inst,
self.inputA_yoffset,
"A",
@ -206,14 +206,14 @@ class pnand2(pgate.pgate):
# active_to_poly_contact2)
# This will help with the wells and the input/output placement
self.route_input_gate(self.pmos2_inst,
bpin = self.route_input_gate(self.pmos2_inst,
self.nmos2_inst,
self.inputB_yoffset,
"B",
position="center")
if OPTS.tech_name == "sky130":
self.enclose_npc()
self.add_enclosure([apin, bpin], "npc", drc("npc_enclose_poly"))
def route_output(self):

View File

@ -227,28 +227,28 @@ class pnand3(pgate.pgate):
active_to_poly_contact,
active_to_poly_contact2)
self.route_input_gate(self.pmos1_inst,
apin = self.route_input_gate(self.pmos1_inst,
self.nmos1_inst,
self.inputA_yoffset,
"A",
position="left")
self.inputB_yoffset = self.inputA_yoffset + self.m3_pitch
self.route_input_gate(self.pmos2_inst,
bpin = self.route_input_gate(self.pmos2_inst,
self.nmos2_inst,
self.inputB_yoffset,
"B",
position="center")
self.inputC_yoffset = self.inputB_yoffset + self.m3_pitch
self.route_input_gate(self.pmos3_inst,
cpin = self.route_input_gate(self.pmos3_inst,
self.nmos3_inst,
self.inputC_yoffset,
"C",
position="right")
if OPTS.tech_name == "sky130":
self.enclose_npc()
self.add_enclosure([apin, bpin, cpin], "npc", drc("npc_enclose_poly"))
def route_output(self):
""" Route the Z output """

View File

@ -195,7 +195,7 @@ class pnor2(pgate.pgate):
self.inputB_yoffset = bottom_pin_offset + self.m1_nonpref_pitch
self.inputA_yoffset = self.inputB_yoffset + self.m1_nonpref_pitch
self.route_input_gate(self.pmos2_inst,
bpin = self.route_input_gate(self.pmos2_inst,
self.nmos2_inst,
self.inputB_yoffset,
"B",
@ -203,7 +203,7 @@ class pnor2(pgate.pgate):
directions=("V", "V"))
# This will help with the wells and the input/output placement
self.route_input_gate(self.pmos1_inst,
apin = self.route_input_gate(self.pmos1_inst,
self.nmos1_inst,
self.inputA_yoffset,
"A",
@ -212,7 +212,7 @@ class pnor2(pgate.pgate):
self.output_yoffset = self.inputA_yoffset + self.m1_nonpref_pitch
if OPTS.tech_name == "sky130":
self.enclose_npc()
self.add_enclosure([apin, bpin], "npc", drc("npc_enclose_poly"))
def route_output(self):
""" Route the Z output """