TestChRouterXA:
PW.UserProc =
BEGIN
routerParams: PWRoute.RouterParams ← NEW[PWRoute.RouterParamsRec ← [trunkLayer: "metal2", branchLayer: "metal"]];
left: CD.Object← PW.Get[design, "LtPadRouteLeft"];
right: CD.Object← PW.Get[design, "LtPadRouteRight"];
bottom: CD.Object← PW.Get[design, "LtPadRouteBottom"];
test: CD.Object← PWRoute.AbutChRouteListX[LIST[left, right], LIST[bottom], NIL, routerParams];
RETURN[test];
END;
TestChRouterYA:
PW.UserProc =
BEGIN
routerParams: PWRoute.RouterParams ← NEW[PWRoute.RouterParamsRec ← [trunkLayer: "metal", branchLayer: "metal2", signalSinglePinNets: FALSE, signalBreakAtExit: FALSE]];
top: CD.Object← PW.Get[design, "-no name@585"];
bottom: CD.Object← PW.Get[design, "-no name@573"];
test: CD.Object← PWRoute.AbutChRouteListY[LIST[bottom, top], NIL, NIL, routerParams];
RETURN[test];
END;
TestSbRouterHA:
PW.UserProc =
BEGIN
routerParams: PWRoute.RouterParams ← NEW[PWRoute.RouterParamsRec ← [trunkLayer: "metal", branchLayer: "metal2", technologyKey: design.technology.key, opt: noIncompletes, signalSinglePinNets: FALSE]];
rightOrig: CD.Object← PW.Get[design, "SbRight"];
rightXfer: CD.Object← PWRoute.XferPins[design.technology.key, rightOrig, left, 50, "metal"];
right: CD.Object← PW.AbutX[rightXfer, rightOrig];
topOrig: CD.Object← PW.Get[design, "SbTop"];
topXfer: CD.Object← PWRoute.XferPins[design.technology.key, topOrig, bottom, 50, "metal2"];
top: CD.Object← PW.AbutY[topXfer, topOrig];
bottomOrig: CD.Object← PW.Get[design, "SbBottom"];
bottomXfer: CD.Object← PWRoute.XferPins[design.technology.key, bottomOrig, top, 50, "metal2"];
bottom: CD.Object← PW.AbutY[bottomOrig, bottomXfer];
sb: CD.Object← PWRoute.AbutSbRoute[bottom, right, top, NIL, horizontal, routerParams];
column: CD.Object← PW.AbutListY[LIST[bottom, sb, top]];
test: CD.Object← CDCells.CreateEmptyCell[];
dy1: INT ← IRSize[bottom].y;
dx1: INT ← 0;
dx2: INT ← IRSize[column].x;
[] ← CDCells.IncludeOb[cell: test, ob: column, trans: [[dx1 , 0], original]];
[] ← CDCells.IncludeOb[cell: test, ob: right, trans: [[dx1 + dx2, dy1], original]];
RTBasic.RepositionCell[test];
RETURN[test];
END;