DIRECTORY CD, NMosContacts, CDOps, CDSequencer, CDValue, TerminalIO, NMos; NMosContactCommands: CEDAR PROGRAM IMPORTS CDOps, CDSequencer, CDValue, TerminalIO, NMosContacts, NMos = BEGIN lambda: CD.DesignNumber = CD.lambda; CreateButCon: PROC [comm: CDSequencer.Command] = BEGIN ob: CD.ObPtr; TerminalIO.WriteRope["Create button contact\n"]; ob _ NMosContacts.CreateButCon[]; CDOps.AddAnObject[design: comm.design, ob: ob, location: comm.pos, orientation: 0] END; CreatePolyCon: PROC [comm: CDSequencer.Command] = BEGIN ob: CD.ObPtr; TerminalIO.WriteRope["Create contact (poly)\n"]; ob _ NMosContacts.CreatePolyCon[0]; CDOps.AddAnObject[design: comm.design, ob: ob, location: comm.pos, orientation: 0] END; CreateDifCon: PROC [comm: CDSequencer.Command] = BEGIN ob: CD.ObPtr; TerminalIO.WriteRope["Create contact (dif)\n"]; ob _ NMosContacts.CreateDifCon[0]; CDOps.AddAnObject[design: comm.design, ob: ob, location: comm.pos, orientation: 0] END; CreateDifShortCon: PROC [comm: CDSequencer.Command] = BEGIN ob: CD.ObPtr; TerminalIO.WriteRope["Create diffshort contact (NWell)\n"]; ob _ NMosContacts.CreateDifShortCon[]; CDOps.AddAnObject[design: comm.design, ob: ob, location: comm.pos, orientation: 0] END; CreateBurCon: PROC [comm: CDSequencer.Command] = BEGIN ob: CD.ObPtr; 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.AddAnObject[design: comm.design, ob: ob, location: comm.pos, orientation: 0] END; CreateMmCon: PROC [comm: CDSequencer.Command] = BEGIN ob: CD.ObPtr; TerminalIO.WriteRope["Create contact (Mm)\n"]; ob _ NMosContacts.CreateMmCon[0]; CDOps.AddAnObject[design: comm.design, ob: ob, location: comm.pos, orientation: 0] END; ImplCommands: PROC [] = BEGIN CDValue.EnregisterKey[$NMosContactL, NMos.nmos]; CDSequencer.ImplementCommand[$DrawNButCon, CreateButCon, NMos.nmos]; CDSequencer.ImplementCommand[$DrawPolCon, CreatePolyCon, NMos.nmos]; CDSequencer.ImplementCommand[$DrawNDifCon, CreateDifCon, NMos.nmos]; CDSequencer.ImplementCommand[$DrawNDifShortCon, CreateDifShortCon, NMos.nmos]; CDSequencer.ImplementCommand[$DrawNBurCon, CreateBurCon, NMos.nmos]; CDSequencer.ImplementCommand[$DrawMm2Con, CreateMmCon, NMos.nmos]; END; ImplCommands[]; END. æNMosContactCommands.mesa (part of ChipNDale) Copyright c 1984, 1983, by Xerox Corporation. All rights reserved. by Christian Jacobi, June 24, 1983 5:03 pm last edited Christian Jacobi, October 22, 1984 11:37:40 am PDT ÊQ˜šœ-™-Jšœ Ïmœ9™DJšœ,™,Jšœ?™?—J˜šÏk ˜ Jšžœ˜J˜ J˜J˜ J˜J˜ J˜J˜—šÏbœžœžœ˜#Jšžœ?˜F—Jšž˜J˜Jšœžœžœ˜$J˜šÏn œžœ˜0Jšž˜Jšœžœ˜ J˜0J˜!J˜RJšžœ˜J˜—š  œžœ˜1Jšž˜Jšœžœ˜ J˜0J˜#J˜RJšžœ˜J˜—š  œžœ˜0Jšž˜Jšœžœ˜ J˜/J˜"J˜RJšžœ˜J˜—š œžœ˜5Jšž˜Jšœžœ˜ J˜;J˜&J˜RJšžœ˜J˜—š  œžœ˜0Jšž˜Jšœžœ˜ J˜2˜J˜DJ˜CJšœ˜Jšœ ˜ —J˜RJšžœ˜J˜—š  œžœ˜/Jšž˜Jšœžœ˜ J˜.J˜!J˜RJšžœ˜J˜J˜—š  œžœ˜Jšž˜Jšœ/žœ˜1JšœD˜DJ˜DJ˜DJšœN˜NJšœD˜DJšœB˜BJšžœ˜J˜—J˜Jšžœ˜J˜—…— \ “