DIRECTORY Core, CoreOps, Ports, PW, Rosemary, RosemaryUser, Sisyph; TGXOrTest: CEDAR PROGRAM IMPORTS CoreOps, Ports, PW, Rosemary, RosemaryUser, Sisyph = BEGIN MyTestProc: RosemaryUser.TestProc = { CycleXOrGate: PROC = { Step: TYPE = [0..4); ALevel: ARRAY Step OF Ports.Level _ [H, H, L, L]; BLevel: ARRAY Step OF Ports.Level _ [H, L, H, L]; OLevel: ARRAY Step OF Ports.Level _ [L, H, H, L]; FOR step: Step IN Step DO p[A].l _ ALevel[step]; p[B].l _ BLevel[step]; p[XOrAB].l _ OLevel[step]; Eval[]; ENDLOOP; }; p[A].l _ p[B].l _ p[XOrAB].l _ L; Eval[! Rosemary.Stop => RESUME]; CycleXOrGate[]; }; ct: Core.CellType _ Sisyph.ExtractSchematicByName["TGXOr.sch", Sisyph.Create[PW.OpenDesign["///Users/Barth.pa/DA/PrismCells"], Sisyph.defaultGlobalNames]]; Vdd: NAT = CoreOps.GetWireIndex[ct.public, "Vdd"]; Gnd: NAT = CoreOps.GetWireIndex[ct.public, "Gnd"]; A: NAT = CoreOps.GetWireIndex[ct.public, "A"]; B: NAT = CoreOps.GetWireIndex[ct.public, "B"]; XOrAB: NAT = CoreOps.GetWireIndex[ct.public, "XOrAB"]; [] _ Rosemary.SetFixedWire[ct.public[Vdd], H]; [] _ Rosemary.SetFixedWire[ct.public[Gnd], L]; FOR i: NAT IN [0..ct.public.size) DO [] _ Ports.InitPort[wire: ct.public[i], initType: l]; ENDLOOP; [] _ Ports.InitTesterDrive[wire: ct.public[A], initDrive: force]; [] _ Ports.InitTesterDrive[wire: ct.public[B], initDrive: driveStrong]; [] _ Ports.InitTesterDrive[wire: ct.public[XOrAB], initDrive: expect]; RosemaryUser.MakeStandardViewer[name: "TGXOr Tester", cellType: ct, testButtons: LIST[["MyTest", MyTestProc]], displayWires: RosemaryUser.DisplayPortLeafWires[wire: ct.public], flatten: TRUE]; END. ΊTGXOrTest.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Last Edited by: Neil Gunther February 27, 1986 11:33:42 am PST Barth, February 28, 1986 3:29:08 pm PST ΚΨ˜™Icodešœ Οmœ1™K™'—J˜KšΟk œ:˜CK˜šΟb œž ˜Kšžœ3˜:Kšœž˜K˜—šΟn œ˜%J˜š  œžœ˜Jšœžœ ˜Jšœžœžœ˜3Jšœžœžœ˜1Jšœžœžœ˜1J˜šžœ žœž˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšžœ˜—Jšœ˜—J˜Jšœžœ˜!J˜Jšœžœ˜ Jšœ˜Kšœ˜K˜—Kšœ›˜›K˜Kšœžœ*˜2Kšœžœ*˜2Kšœžœ(˜.Kšœžœ(˜.Kšœžœ,˜6K˜Kšœ.˜.Kšœ.˜.K˜šžœžœžœž˜$Kšœ5˜5Kšžœ˜—K˜KšœA˜AKšœG˜GKšœF˜FK˜KšœQžœežœ˜ΐK˜Kšžœ˜—…—Vθ