SoSTest.mesa
Copyright (C) 1985, 1986 by Xerox Corporation. All rights reserved.
Written by gbb September 20, 1985 11:52:24 am PDT
gbb June 16, 1986 1:30:49 pm PDT
Bertrand Serlet September 6, 1986 0:02:10 am PDT
Interface to ChipNDale.
DIRECTORY
CD USING [Design, Instance, InstanceList, Object],
CDCommandOps USING [CallWithResource],
CDMenus USING [CreateEntry],
CDOps USING [InstList],
CDSequencer USING [Command, ImplementCommand],
Core USING [CellType, Wire],
CoreGeometry,
PrincOpsUtils USING [],
Process USING [priorityBackground, SetPriority],
Rope USING [Cat, ROPE],
Sinix USING [Extract, Mode],
SinixOps USING [GetExtractMode],
SoS USING [CheckDesignRules],
TerminalIO USING [WriteRope];
SoSTest: CEDAR PROGRAM
IMPORTS CDCommandOps, CDMenus, CDOps, CDSequencer, Process, Rope, Sinix, SinixOps, SoS, TerminalIO
~ BEGIN
Execute: PROC [comm: CDSequencer.Command] ~ BEGIN
Called by ChipNDale upon activation of the command.
abort: REF BOOLNEW [BOOLFALSE];
ExtractAndCheck: PROC [comm: CDSequencer.Command] ~ BEGIN
Protected procedure.
tech: Sinix.Mode ← SinixOps.GetExtractMode[comm.design.technology];
IF tech=NIL THEN BEGIN
TerminalIO.WriteRope [Rope.Cat ["The technology ", comm.design.technology.name, " is not implemented in Sinix or SoS.\n"]];
RETURN
END;
FOR all: CD.InstanceList ← CDOps.InstList [comm.design], all.rest WHILE all # NIL DO
IF all.first.selected THEN BEGIN
TRUSTED {Process.SetPriority [Process.priorityBackground]};
WITH Sinix.Extract [obj: all.first.ob, mode: tech].result SELECT FROM
coreCell: Core.CellType => BEGIN
[] ← SoS.CheckDesignRules [cell: coreCell,
design: NIL,
abortFlag: abort,
verbose: FALSE,
shy: TRUE,
cdObjKey: NIL,
decoration: tech.decoration];
END;
w: Core.Wire => NULL;
ENDCASE => NULL
END-- if selected
ENDLOOP
END; -- ExtractAndCheck
TerminalIO.WriteRope ["SoS.\n"];
[] ← CDCommandOps.CallWithResource [ExtractAndCheck, comm, $SoS, abort];
TerminalIO.WriteRope ["SoS test done.\n"]
END; -- Execute
CDSequencer.ImplementCommand [key: $SoSSel1, proc: Execute, queue: doQueue];
CDMenus.CreateEntry [menu: $ProgramMenu, entry: "SoS paranoia", key: $SoSSel1];
TerminalIO.WriteRope ["SoS paranoia test package loaded.\n"]
END.
gbb March 25, 1986 10:39:05 am PST
Changed labels of menu entries.
gbb March 27, 1986 3:13:47 pm PST
Added cosmetics to make it look more like Spinifex.
changes to: DIRECTORY, IMPORTS, Execute, ExtractAndCheck (local of Execute), UpdateDRVDirectory, PrintDRVSummary, VerifyRect
gbb March 30, 1986 3:17:31 pm PST
Added cosmetics to make it look better than Spinifex.
changes to: ListDRV (local of List), InvalidateDRV
gbb June 9, 1986 6:09:27 pm PDT
Tracked addition of a parameter in the call of SoS
changes to: ExtractAndCheck (local of Execute): new parameter technology (is not used).