TestExtendCells.mesa
Copyright © 1985, 1986 by Xerox Corporation. All rights reversed.
Bertrand Serlet February 12, 1987 1:48:41 am PST
DIRECTORY CD, CoreGeometry, CoreOps, ExtendCells, PW, Rope, Sinix, SinixOps, TerminalIO;
TestExtendCells: CEDAR PROGRAM
IMPORTS CoreGeometry, CoreOps, ExtendCells, PW, Rope, Sinix, SinixOps, TerminalIO =
BEGIN OPEN ExtendCells;
TestExtendObject: PW.UserProc = {
EachWirePin: CoreGeometry.EachWirePinProc = {
IF side=chosenSide THEN wirePins ← CONS [[wire, min, max, layer], wirePins];
};
test: Object ← PW.Get[design, "test.mask"];
mode: Sinix.Mode = SinixOps.GetExtractMode[$cmosB];
testCT: CellType = NARROW [Sinix.Extract[test, mode].result];
chosenSide: Side = SELECT TerminalIO.RequestSelection["Side", LIST["left", "right", "top", "bottom"]] FROM 1 => left, 2 => right, 3 => top, ENDCASE => bottom;
wirePins: LIST OF WirePin ← NIL;
[] ← CoreGeometry.EnumerateWireSides[mode.decoration, testCT, EachWirePin];
RETURN [ExtendObject[wirePins, [320, 320], chosenSide]];
};
AllButHorizLeft: ExtendSegmentProc = {
IF Rope.Equal[CoreOps.GetShortWireName[wire], "horiz"] AND side=left THEN RETURN;
RETURN [ExtendSegment[wire, min, max, layer, side, extension]];
};
TestExtendCellType: PW.UserProc = {
test: Object ← PW.Get[design, "test.mask"];
mode: Sinix.Mode = SinixOps.GetExtractMode[$cmosB];
testCT: CellType = NARROW [Sinix.Extract[test, mode].result];
RETURN [CoreGeometry.GetObject[mode.decoration, ExtendCellType[mode.decoration, testCT, [top: 0, left: 80, right: 160, bottom: 40], AllButHorizLeft]]];
};
PW.Register[TestExtendObject, "TestExtendObject"];
PW.Register[TestExtendCellType, "TestExtendCellType"];
END.