mirror of https://github.com/VLSIDA/OpenRAM.git
use add_enclosure for npc contacts
This commit is contained in:
parent
e694622f28
commit
6c523a7556
|
|
@ -189,7 +189,7 @@ class pnand2(pgate.pgate):
|
||||||
active_to_poly_contact,
|
active_to_poly_contact,
|
||||||
active_to_poly_contact2)
|
active_to_poly_contact2)
|
||||||
|
|
||||||
self.route_input_gate(self.pmos1_inst,
|
apin = self.route_input_gate(self.pmos1_inst,
|
||||||
self.nmos1_inst,
|
self.nmos1_inst,
|
||||||
self.inputA_yoffset,
|
self.inputA_yoffset,
|
||||||
"A",
|
"A",
|
||||||
|
|
@ -206,14 +206,14 @@ class pnand2(pgate.pgate):
|
||||||
# active_to_poly_contact2)
|
# active_to_poly_contact2)
|
||||||
|
|
||||||
# This will help with the wells and the input/output placement
|
# 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.nmos2_inst,
|
||||||
self.inputB_yoffset,
|
self.inputB_yoffset,
|
||||||
"B",
|
"B",
|
||||||
position="center")
|
position="center")
|
||||||
|
|
||||||
if OPTS.tech_name == "sky130":
|
if OPTS.tech_name == "sky130":
|
||||||
self.enclose_npc()
|
self.add_enclosure([apin, bpin], "npc", drc("npc_enclose_poly"))
|
||||||
|
|
||||||
|
|
||||||
def route_output(self):
|
def route_output(self):
|
||||||
|
|
|
||||||
|
|
@ -227,28 +227,28 @@ class pnand3(pgate.pgate):
|
||||||
active_to_poly_contact,
|
active_to_poly_contact,
|
||||||
active_to_poly_contact2)
|
active_to_poly_contact2)
|
||||||
|
|
||||||
self.route_input_gate(self.pmos1_inst,
|
apin = self.route_input_gate(self.pmos1_inst,
|
||||||
self.nmos1_inst,
|
self.nmos1_inst,
|
||||||
self.inputA_yoffset,
|
self.inputA_yoffset,
|
||||||
"A",
|
"A",
|
||||||
position="left")
|
position="left")
|
||||||
|
|
||||||
self.inputB_yoffset = self.inputA_yoffset + self.m3_pitch
|
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.nmos2_inst,
|
||||||
self.inputB_yoffset,
|
self.inputB_yoffset,
|
||||||
"B",
|
"B",
|
||||||
position="center")
|
position="center")
|
||||||
|
|
||||||
self.inputC_yoffset = self.inputB_yoffset + self.m3_pitch
|
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.nmos3_inst,
|
||||||
self.inputC_yoffset,
|
self.inputC_yoffset,
|
||||||
"C",
|
"C",
|
||||||
position="right")
|
position="right")
|
||||||
|
|
||||||
if OPTS.tech_name == "sky130":
|
if OPTS.tech_name == "sky130":
|
||||||
self.enclose_npc()
|
self.add_enclosure([apin, bpin, cpin], "npc", drc("npc_enclose_poly"))
|
||||||
|
|
||||||
def route_output(self):
|
def route_output(self):
|
||||||
""" Route the Z output """
|
""" Route the Z output """
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ class pnor2(pgate.pgate):
|
||||||
self.inputB_yoffset = bottom_pin_offset + self.m1_nonpref_pitch
|
self.inputB_yoffset = bottom_pin_offset + self.m1_nonpref_pitch
|
||||||
self.inputA_yoffset = self.inputB_yoffset + 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.nmos2_inst,
|
||||||
self.inputB_yoffset,
|
self.inputB_yoffset,
|
||||||
"B",
|
"B",
|
||||||
|
|
@ -203,7 +203,7 @@ class pnor2(pgate.pgate):
|
||||||
directions=("V", "V"))
|
directions=("V", "V"))
|
||||||
|
|
||||||
# This will help with the wells and the input/output placement
|
# 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.nmos1_inst,
|
||||||
self.inputA_yoffset,
|
self.inputA_yoffset,
|
||||||
"A",
|
"A",
|
||||||
|
|
@ -212,7 +212,7 @@ class pnor2(pgate.pgate):
|
||||||
self.output_yoffset = self.inputA_yoffset + self.m1_nonpref_pitch
|
self.output_yoffset = self.inputA_yoffset + self.m1_nonpref_pitch
|
||||||
|
|
||||||
if OPTS.tech_name == "sky130":
|
if OPTS.tech_name == "sky130":
|
||||||
self.enclose_npc()
|
self.add_enclosure([apin, bpin], "npc", drc("npc_enclose_poly"))
|
||||||
|
|
||||||
def route_output(self):
|
def route_output(self):
|
||||||
""" Route the Z output """
|
""" Route the Z output """
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue