DIRECTORY PW, PWRoute, Rope; PWRouteTest: CEDAR PROGRAM IMPORTS PW, PWRoute = BEGIN ROPE: TYPE = Rope.ROPE; TestChRouterX: PW.UserProc = BEGIN left, right, top, bottom, test: PW.Object; examples: PW.Design _ PW.OpenDesign["PWRouteTest.dale"]; left _ PW.Get[examples, "ChXleft"]; right _ PW.Get[examples, "ChXright"]; top _ PW.Get[examples, "ChXtop"]; bottom _ PW.Get[examples, "ChXbottom"]; test _ PWRoute.AbutChRouteListX[design, LIST[left, right], LIST[bottom], LIST[top]]; RETURN[test]; END; TestChRouterY: PW.UserProc = BEGIN left, right, top, bottom, test: PW.Object; examples: PW.Design _ PW.OpenDesign["PWRouteTest.dale"]; left _ PW.Get[examples, "ChYleft"]; right _ PW.Get[examples, "ChYright"]; top _ PW.Get[examples, "ChYtop"]; bottom _ PW.Get[examples, "ChYbottom"]; test _ PWRoute.AbutChRouteListY[design, LIST[bottom, top], LIST[left], LIST[right]]; RETURN[test]; END; TestSbRouterH: PW.UserProc = BEGIN left, right, top, bottom, sb, column, test: PW.Object; dx1, dx2, dy1: INT; examples: PW.Design _ PW.OpenDesign["PWRouteTest.dale"]; left _ PW.Get[examples, "SbXleft"]; right _ PW.Get[examples, "SbXright"]; top _ PW.Get[examples, "SbXtop"]; bottom _ PW.Get[examples, "SbXbottom"]; sb _ PWRoute.AbutSbRoute[design, bottom, right, top, left, horizontal]; column _ PW.AbutListY[design, LIST[bottom, sb, top]]; test _ PW.CreateEmptyCell[]; dy1 _ PW.IRSize[bottom].y; dx1 _ PW.IRSize[left].x; dx2 _ PW.IRSize[column].x; [] _ PW.IncludeInCell[test, left, [0, dy1]]; [] _ PW.IncludeInCell[test, column, [dx1 , 0]]; [] _ PW.IncludeInCell[test, right, [dx1 + dx2, dy1]]; PW.IncludeInDirectory[design, test, "Switchbox"]; RETURN[test]; END; TestSbRouterV: PW.UserProc = BEGIN left, right, top, bottom, sb, row, test: PW.Object; dx1, dy1, dy2: INT; examples: PW.Design _ PW.OpenDesign["PWRouteTest.dale"]; left _ PW.Get[examples, "SbYleft"]; right _ PW.Get[examples, "SbYright"]; top _ PW.Get[examples, "SbYtop"]; bottom _ PW.Get[examples, "SbYbottom"]; sb _ PWRoute.AbutSbRoute[design, bottom, right, top, left, vertical]; row _ PW.AbutListX[design, LIST[left, sb, right]]; test _ PW.CreateEmptyCell[]; dy1 _ PW.IRSize[bottom].y; dy2 _ PW.IRSize[row].y; dx1 _ PW.IRSize[left].x; [] _ PW.IncludeInCell[test, bottom, [dx1, 0]]; [] _ PW.IncludeInCell[test, row, [0 , dy1]]; [] _ PW.IncludeInCell[test, top, [dx1, dy1 + dy2]]; PW.IncludeInDirectory[design, test, "Switchbox"]; RETURN[test]; END; TestSb2Sides: PW.UserProc = BEGIN left, bottom, sb, row, test: PW.Object; dx, dy: INT; examples: PW.Design _ PW.OpenDesign["PWRouteTest.dale"]; left _ PW.Get[examples, "Sb2left"]; bottom _ PW.Get[examples, "Sb2bottom"]; sb _ PWRoute.AbutSbRoute[design, bottom, NIL, NIL, left, vertical]; row _ PW.AbutListX[design, LIST[left, sb]]; test _ PW.CreateEmptyCell[]; dy _ PW.IRSize[bottom].y; dx _ PW.IRSize[left].x; [] _ PW.IncludeInCell[test, bottom, [dx, 0]]; [] _ PW.IncludeInCell[test, row, [0 , dy]]; PW.IncludeInDirectory[design, test, "Switchbox"]; RETURN[test]; END; PW.Register[TestChRouterX, "TestChRouterX"]; PW.Register[TestChRouterY, "TestChRouterY"]; PW.Register[TestSbRouterH, "TestSbRouterH"]; PW.Register[TestSbRouterV, "TestSbRouterV"]; PW.Register[TestSb2Sides, "TestSb2Sides"]; END. ”PWRouteTest.mesa Copyright c 1984 by Xerox Corporation. All rights reversed. Last Edited by: Monier, June 21, 1985 11:52:00 am PDT Preas October 29, 1985 4:08:58 pm PST Use with the file PWRouteTest.dale to test routing: RWRoute.load cdread PWRouteTest -- NOTE: PWRouteTest.dale must be in the /// directory run PWRouteTest middle click P in the ChipNDale viewer select the appropriate generator Κž˜– "Cedar" stylešœ™Jšœ Οmœ1™