Koustubh
08/08/2024, 11:12 AMdef cmosInverter(pdk: MappedPDK) :
cmosInverter = Component()
pfet= pmos(pdk,2.5,with_dummy=(True, True),with_substrate_tap=False)
nfet= nmos(pdk,1,with_dummy=(True, True),with_substrate_tap=False)
pfet_ref = cmosInverter << pfet
nfet_ref = cmosInverter << nfet
nfet_ref.movex(evaluate_bbox(pfet)[0] + 3*pdk.util_max_metal_seperation())
cmosInverter << c_route(pdk, pfet_ref.ports["multiplier_0_gate_E"], pfet_ref.ports["multiplier_0_gate_E"])
cmosInverter << c_route(pdk, pfet_ref.ports["multiplier_0_source_E"], nfet_ref.ports["multiplier_0_source_E"])
return cmosInverter
and when I try positioning them vertically :
def cmosInverter(pdk: MappedPDK) :
cmosInverter = Component()
pfet= pmos(pdk,2.5,with_dummy=(True, True),with_substrate_tap=False)
nfet= nmos(pdk,1,with_dummy=(True, True),with_substrate_tap=False)
pfet_ref = cmosInverter << pfet
nfet_ref = cmosInverter << nfet
nfet_ref.movey(evaluate_bbox(pfet)[1] + 3*pdk.util_max_metal_seperation())
cmosInverter << straight_route(pdk, pfet_ref.ports["multiplier_0_gate_N"], pfet_ref.ports["multiplier_0_gate_S"])
cmosInverter << straight_route(pdk, pfet_ref.ports["multiplier_0_source_N"], nfet_ref.ports["multiplier_0_source_S"])
return cmosInverter
Koustubh
08/08/2024, 11:17 AMSudeep Gopavaram
08/08/2024, 11:42 AMdef cmosInverter(pdk: MappedPDK) :
cmosInverter = Component()
pfet= pmos(pdk,2.5,with_dummy=(True, True),with_substrate_tap=False)
nfet= nmos(pdk,1,with_dummy=(True, True),with_substrate_tap=False)
pfet_ref = cmosInverter << pfet
nfet_ref = cmosInverter << nfet
nfet_ref.movex(evaluate_bbox(pfet)[0] + 3*pdk.util_max_metal_seperation())
cmosInverter << c_route(pdk, pfet_ref.ports["multiplier_0_gate_E"], nfet_ref.ports["multiplier_0_gate_E"])
cmosInverter << c_route(pdk, pfet_ref.ports["multiplier_0_source_E"], nfet_ref.ports["multiplier_0_source_E"])
return cmosInverter