RoseTestProcImpl.mesa
Copyright © 1987 by Xerox Corporation. All rights reserved.
Barth, September 24, 1987 3:56:46 pm PDT
Jean-Marc Frailong December 26, 1987 5:09:39 pm PST
DIRECTORY CDCommandOps, CDProperties, CDSequencer, Core, CoreOps, CoreProperties, Rope, Rosemary, RosemaryUser, SinixOps, Sisyph, TerminalIO;
RoseTestProcImpl:
CEDAR
PROGRAM
IMPORTS CDCommandOps, CDProperties, CoreOps, CoreProperties, Rope, Rosemary, RosemaryUser, SinixOps, Sisyph, TerminalIO
= BEGIN
ExtractAndRosemaryTest:
PROC [comm: CDSequencer.Command] ~ {
cellType: Core.CellType ← SinixOps.SelectedCellType[comm.design, Sisyph.mode].root;
public: Core.Wire ← cellType.public;
Vdd: Core.Wire ← CoreOps.FindWire[public, "Vdd"];
Gnd: Core.Wire ← CoreOps.FindWire[public, "Gnd"];
tester: RosemaryUser.Tester ← NIL;
testButtons: LIST OF Rope.ROPE ← NIL;
IF Vdd=NIL THEN TerminalIO.PutRope["RoseTestProc: Couldn't find Vdd\n"]
ELSE [] ← Rosemary.SetFixedWire[Vdd, H];
IF Gnd=NIL THEN TerminalIO.PutRope["RoseTestProc: Couldn't find Gnd\n"]
ELSE [] ← Rosemary.SetFixedWire[Gnd, L];
FOR tbl:
LIST
OF
REF
ANY ←
NARROW[CoreProperties.GetCellTypeProp[cellType, $Tests]], tbl.rest
UNTIL tbl=
NIL
DO
testButtons ← CONS[CoreOps.FixStupidRef[tbl.first], testButtons];
ENDLOOP;
tester ← RosemaryUser.TestProcedureViewer[
cellType: cellType,
testButtons: testButtons,
name: Rope.Cat[CoreOps.GetCellTypeName[cellType], " Test"],
displayWires: RosemaryUser.DisplayPortLeafWires[cellType],
cutSet: NARROW[CoreProperties.GetCellTypeProp[cellType, $CutSet]]];
CDProperties.PutDesignProp[comm.design, $DAUserRoseDisplay, tester.display];
};
CDCommandOps.RegisterWithMenu[menu: $OtherProgramMenu, entry: "
Extract and Rosemary Test", key: $
ExtractAndRosemaryTest, proc:
ExtractAndRosemaryTest, queue: doQueue];
END.