RoseTestProcImpl.mesa
Copyright © 1987 by Xerox Corporation. All rights reserved.
Barth, September 24, 1987 3:56:46 pm PDT
DIRECTORY CDCommandOps, CDProperties, CDSequencer, Core, CoreOps, CoreProperties, Ports, Rope, Rosemary, RosemaryUser, SinixOps, Sisyph, TerminalIO;
RoseTestProcImpl: CEDAR PROGRAM
IMPORTS CDCommandOps, CDProperties, CoreOps, CoreProperties, Ports, 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.ROPENIL;
Ports.CoerceNewToOld[public];
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 ANYNARROW[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.