NMosContactCommands.mesa (part of ChipNDale)
Copyright © 1984, 1983, by Xerox Corporation. All rights reserved.
by Christian Jacobi, June 24, 1983 5:03 pm
last edited Christian Jacobi, March 19, 1986 12:51:21 pm PST
DIRECTORY
CD,
NMosContacts,
CDOps,
CDSequencer,
CDValue,
TerminalIO,
NMos;
NMosContactCommands: CEDAR PROGRAM
IMPORTS CDOps, CDSequencer, CDValue, TerminalIO, NMosContacts, NMos =
BEGIN
lambda: CD.Number = NMos.lambda;
CreateButCon: PROC [comm: CDSequencer.Command] =
BEGIN
ob: CD.Object;
TerminalIO.WriteRope["Create button contact\n"];
ob ← NMosContacts.CreateButCon[];
CDOps.IncludeObjectI[design: comm.design, ob: ob, location: comm.pos, orientation: 0]
END;
CreatePolyCon: PROC [comm: CDSequencer.Command] =
BEGIN
ob: CD.Object;
TerminalIO.WriteRope["Create contact (poly)\n"];
ob ← NMosContacts.CreatePolyCon[0];
CDOps.IncludeObjectI[design: comm.design, ob: ob, location: comm.pos, orientation: 0]
END;
CreateDifCon: PROC [comm: CDSequencer.Command] =
BEGIN
ob: CD.Object;
TerminalIO.WriteRope["Create contact (dif)\n"];
ob ← NMosContacts.CreateDifCon[0];
CDOps.IncludeObjectI[design: comm.design, ob: ob, location: comm.pos, orientation: 0]
END;
CreateBurCon: PROC [comm: CDSequencer.Command] =
BEGIN
ob: CD.Object;
TerminalIO.WriteRope["Create burried contact \n"];
ob ← NMosContacts.CreateBurCon[
w: CDValue.FetchInt[comm.design, $NMosContactL, technology]*lambda,
l: CDValue.FetchInt[comm.design, $NMosContactL, technology]*lambda,
wex: 2*lambda,
lex: lambda];
CDOps.IncludeObjectI[design: comm.design, ob: ob, location: comm.pos, orientation: 0]
END;
CreateMmCon: PROC [comm: CDSequencer.Command] =
BEGIN
ob: CD.Object;
TerminalIO.WriteRope["Create contact (Mm)\n"];
ob ← NMosContacts.CreateMmCon[0];
CDOps.IncludeObjectI[design: comm.design, ob: ob, location: comm.pos, orientation: 0]
END;
ImplCommands: PROC [] =
BEGIN
CDValue.RegisterKey[$NMosContactL, NMos.nmos];
CDSequencer.ImplementCommand[$DrawNButCon, CreateButCon, NMos.nmos];
CDSequencer.ImplementCommand[$DrawPolCon, CreatePolyCon, NMos.nmos];
CDSequencer.ImplementCommand[$DrawNDifCon, CreateDifCon, NMos.nmos];
CDSequencer.ImplementCommand[$DrawNBurCon, CreateBurCon, NMos.nmos];
CDSequencer.ImplementCommand[$DrawMm2Con, CreateMmCon, NMos.nmos];
END;
ImplCommands[];
END.