IF ob=
NIL
THEN {
ch1, gate, ch2: Instance;
lambda: INT ← design.technology.lambda;
dif: Layer ← CDSimpleRules.GetLayer[design.technology, IF pType THEN "wpdif" ELSE "ndif"];
pol: Layer ← CDSimpleRules.GetLayer[design.technology, "pol"];
-- components of the iconic cell
pin : Object ← CDSymbolicObjects.CreatePin[[lambda, lambda]];
green: Object ← CDSimpleRules.Rect[[3*lambda, 9*lambda], dif];
red: Object ← CDSimpleRules.Rect[[5*lambda, lambda], pol];
-- assembly
ob ← PW.CreateEmptyCell[];
[] ← PW.IncludeInCell[ob, green, [-lambda, 0]];
[] ← PW.IncludeInCell[ob, red, [-2*lambda, 4*lambda]];
ch1 ← PW.IncludeInCell[ob, pin, [0, 0]];
gate ← PW.IncludeInCell[ob, pin, [0, 4*lambda]];
ch2 ← PW.IncludeInCell[ob, pin, [0, 8*lambda]];
CDSymbolicObjects.SetName[ch1, "ch1"];
CDSymbolicObjects.SetName[gate, "gate"];
CDSymbolicObjects.SetName[ch2, "ch2"];
CDSymbolicObjects.SetLayer[ch1, dif];
CDSymbolicObjects.SetLayer[gate, pol];
CDSymbolicObjects.SetLayer[ch2, dif];
-- set the interestRect
CDCells.SetInterestRect[ob, [0, 0, lambda, 9*lambda]];
PW.IncludeInDirectory[design, ob, name];
};