PWCoreRouteTest.mesa
Copyright © 1985, 1986 by Xerox Corporation. All rights reversed.
Bertrand Serlet April 16, 1986 11:13:23 pm PST
DIRECTORY CD, CoreCreate, PW, PWCore, PWCoreRoute;
PWCoreRouteTest: CEDAR PROGRAM    
IMPORTS CoreCreate, PW, PWCore =
BEGIN OPEN PWCoreRoute;
maxSizeY: INTMAX [CD.InterestSize[left].y, CD.InterestSize[right].y];
extendedLeftCT: CellType ← CoreClasses.CreateIdentity[leftCT];
extendedLeft: CD.Object;
PWCore.SetLayout[extendedLeftCT, $Stretch, $StretchData, NEW [StretchDataRec ← [inX: FALSE, size: maxSizeY, layer: "met"]]];
extendedLeft ← PWCore.Layout[extendedLeftCT];
TestX: PROC RETURNS [channelCT: CellType] = {
design: CD.Design ← PW.OpenDesign["PWCoreRouteTest"];
left: CD.Object ← PW.Get[design, "left.mask"];
right: CD.Object ← PW.Get[design, "right.mask"];
leftCT: CellType ← PWCore.FromLayoutWithoutPublic[left];
rightCT: CellType ← PWCore.FromLayoutWithoutPublic[right];
public: Wire ← CoreCreate.Wires["middlea", "x", "y", "z", "bar", "left", "higha", "highb"];
onlyInternal: Wire ← CoreCreate.Wires["middleb", "green", "red", "ring", "foo"];
channelCT ← CoreCreate.Cell[
public: public,
onlyInternal: onlyInternal,
instances: LIST [
CoreCreate.Instance[leftCT, ["righta", "middlea"], ["rightb", "middleb"]],
CoreCreate.Instance[rightCT, ["righta", "middlea"], ["rightb", "middleb"]]
],
name: "ChannelInX"
];
PWCore.SetLayout[channelCT, $Channel, $ChannelData, NEW [ChannelDataRec ← [
inX: TRUE,
extend: TRUE,
bottomOrLeftWires: LIST [public[0], public[1], public[2], public[3]],
topOrRightWires: LIST[public[0], public[1], public[2], public[3]],
trunkLayer: "metal",
branchLayer: "metal2"
]]];
};
TestY: PROC RETURNS [channelCT: CellType] = {
design: CD.Design ← PW.OpenDesign["PWCoreRouteTest"];
left: CD.Object ← PW.Get[design, "rleft.mask"];
right: CD.Object ← PW.Get[design, "rright.mask"];
leftCT: CellType ← PWCore.FromLayoutWithoutPublic[left];
rightCT: CellType ← PWCore.FromLayoutWithoutPublic[right];
public: Wire ← CoreCreate.Wires["middlea", "x", "y", "z", "bar", "left", "higha", "highb"];
onlyInternal: Wire ← CoreCreate.Wires["middleb", "green", "red", "ring", "foo"];
channelCT ← CoreCreate.Cell[
public: public,
onlyInternal: onlyInternal,
instances: LIST [
CoreCreate.Instance[rightCT, ["righta", "middlea"], ["rightb", "middleb"]],
CoreCreate.Instance[leftCT, ["righta", "middlea"], ["rightb", "middleb"]]
],
name: "ChannelInY"
];
PWCore.SetLayout[channelCT, $Channel, $ChannelData, NEW [ChannelDataRec ← [
inX: FALSE,
extend: TRUE,
extendTopOrRight: FALSE,
bottomOrLeftWires: LIST [public[0], public[1], public[2], public[3]],
topOrRightWires: LIST[public[0], public[1], public[2], public[3]],
trunkLayer: "metal",
branchLayer: "metal2"
]]];
};
END.