IF (cell ← FetchCell[design, name])=
NIL
THEN {
p: CellType ← TransistorType[design: design, stackHeight: 2, stackType: pE, width: width, ratio: ratio];
n: CellType ← TransistorType[design: design, stackHeight: 2, width: width, ratio: ratio];
cell ← CreateRecordCell[design: design, name: name, attributes: LIST[[$Behave, class], [$BhvFileRoot, fileRoot]]];
[] ← CreatePublicWire[design: design, on: cell, name: "Vdd"];
[] ← CreatePublicWire[design: design, on: cell, name: "Gnd"];
[] ← CreatePublicWire[design: design, on: cell, name: "nInput"];
[] ← CreatePublicWire[design: design, on: cell, name: "Drive"];
[] ← CreatePublicWire[design: design, on: cell, name: "nDrive"];
[] ← CreatePublicWire[design: design, on: cell, name: "Output", attributes: LIST[[$StcTristate, NIL]]];
[] ← CreateWire[design: design, in: cell, name: "pstack"];
[] ← CreateWire[design: design, in: cell, name: "nstack"];
[] ← CreateCellInstance[design: design, in: cell, type: p, bind: "gate: nInput, ch1: Vdd, ch2: pstack"];
[] ← CreateCellInstance[design: design, in: cell, type: p, bind: "gate: nDrive, ch1: pstack, ch2: Output"];
[] ← CreateCellInstance[design: design, in: cell, type: n, bind: "gate: Drive, ch1: Output, ch2: nstack"];
[] ← CreateCellInstance[design: design, in: cell, type: n, bind: "gate: nInput, ch1: nstack, ch2: Gnd"];
};