<> <> <> <> <> <> DIRECTORY CD USING [Number], CMos USING [lambda], SX USING [CellPostProcessProc, CombineNodePropertyProc, ConversionProc, SpinifexLayerIndex, BoxMapProc, ConstraintArray, ConstraintIndex, techCIndexBase], SXOutput USING [LinkagePrintProc]; SXCMos: CEDAR DEFINITIONS = BEGIN lambda: CD.Number ~ CMos.lambda; ndifSpinifex: SX.SpinifexLayerIndex ~ SX.SpinifexLayerIndex.FIRST; pdifSpinifex: SX.SpinifexLayerIndex ~ ndifSpinifex.SUCC; polSpinifex: SX.SpinifexLayerIndex ~ pdifSpinifex.SUCC; metSpinifex: SX.SpinifexLayerIndex ~ polSpinifex.SUCC; m2Spinifex: SX.SpinifexLayerIndex ~ metSpinifex.SUCC; wellSpinifex: SX.SpinifexLayerIndex ~ m2Spinifex.SUCC; ConstraintArray: TYPE ~ SX.ConstraintArray; CIndex: TYPE ~ SX.ConstraintIndex; ndCnstr: REF ConstraintArray; -- n-Diffusion constraints ndCh: CIndex ~ SX.techCIndexBase; -- n-Diffusion channel ndBur: CIndex ~ ndCh.SUCC; -- Buried window here. pdCnstr: REF ConstraintArray; -- p-Diffusion constraints pdCh: CIndex ~ SX.techCIndexBase; -- p-Diffusion channel polCnstr: REF ConstraintArray; -- Poly constraints pExnD: CIndex ~ SX.techCIndexBase; -- Poly not allowed here because of n-Diffusion. pExpD: CIndex ~ pExnD.SUCC; -- Poly not allowed here because of p-Diffusion. pExNdCon: CIndex ~ pExpD.SUCC; -- Poly not allowed here because of n-Diffusion Contact. pExPdCon: CIndex ~ pExNdCon.SUCC; -- Poly not allowed here because of p-Diffusion Contact. pChE: CIndex ~ pExPdCon.SUCC; -- Close to Xstr Gate, (Channel Edge). pDExcl: CIndex ~ pChE.SUCC; -- No n-Diffusion Permitted here due to buried contact. pBur: CIndex ~ pDExcl.SUCC; -- Buried window here. pBurErr: CIndex ~ pBur.SUCC; -- Buried Error, diffusion emerges from wrong side. pDxorP: CIndex ~ pBurErr.SUCC; -- Diffusion XOR Poly allowed here. pDandP: CIndex ~ pDxorP.SUCC; -- Diffusion AND Poly may appear together here. metCnstr: REF ConstraintArray; -- Metal constraints mCut: CIndex ~ SX.techCIndexBase; -- Cut from Metal to dif or pol (bloated). mVia: CIndex ~ mCut.SUCC; -- Via from Metal to Metal2 (bloated). ConvTransistor: SX.ConversionProc; ConvertPDifRect: SX.ConversionProc; InitContacts: PROCEDURE; ConvertContact: SX.ConversionProc; ConvertBuriedContact: SX.ConversionProc; RoseTransistor: SXOutput.LinkagePrintProc; ThymeTransistor: SXOutput.LinkagePrintProc; CopyWellConnections: SX.CombineNodePropertyProc; CheckWellConnections: SX.CellPostProcessProc; AttachNWellContact: SX.BoxMapProc; END.