DIRECTORY CD, CDBasics, PW, PWRoute, Rope; PWRouteTestA: CEDAR PROGRAM IMPORTS CD, CDBasics, PW, PWRoute = BEGIN ROPE: TYPE = Rope.ROPE; IRSize: PROC [obj: PW.Object] RETURNS [size: CD.Position] = {size _ CDBasics.SizeOfRect[CD.InterestRect[obj]]}; TestChRouterYA: PW.UserProc = BEGIN -- examples: PW.Design _ PW.OpenDesign["PWRouteTestA.dale"]; routerParams: PWRoute.RouterParams _ NEW[PWRoute.RouterParamsRec _ ["metal", "metal2"]]; top: PW.Object _ PW.Get[design, "-no name@585"]; bottom: PW.Object _ PW.Get[design, "-no name@573"]; test: PW.Object _ PWRoute.AbutChRouteListY[LIST[bottom, top], NIL, NIL, routerParams]; RETURN[test]; END; TestSbRouterHA: PW.UserProc = BEGIN -- examples: PW.Design _ PW.OpenDesign["PWRouteTestA.dale"]; routerParams: PWRoute.RouterParams _ NEW[PWRoute.RouterParamsRec _ [trunkLayer: "metal", branchLayer: "metal2", technologyKey: design.technology.key, opt: noIncompletes]]; rightOrig: PW.Object _ PW.Get[design, "SbRight"]; rightXfer: PW.Object _ PWRoute.XferPins[design.technology.key, rightOrig, left, 50, "metal"]; right: PW.Object _ PW.AbutX[rightXfer, rightOrig]; topOrig: PW.Object _ PW.Get[design, "SbTop"]; topXfer: PW.Object _ PWRoute.XferPins[design.technology.key, topOrig, bottom, 50, "metal2"]; top: PW.Object _ PW.AbutY[topXfer, topOrig]; bottomOrig: PW.Object _ PW.Get[design, "SbBottom"]; bottomXfer: PW.Object _ PWRoute.XferPins[design.technology.key, bottomOrig, top, 50, "metal2"]; bottom: PW.Object _ PW.AbutY[bottomOrig, bottomXfer]; sb: PW.Object _ PWRoute.AbutSbRoute[bottom, right, top, NIL, horizontal, routerParams]; column: PW.Object _ PW.AbutListY[LIST[bottom, sb, top]]; test: PW.Object _ PW.CreateEmptyCell[]; dy1: INT _ IRSize[bottom].y; dx1: INT _ 0; dx2: INT _ IRSize[column].x; [] _ PW.IncludeInCell[test, column, [dx1 , 0]]; [] _ PW.IncludeInCell[test, right, [dx1 + dx2, dy1]]; PW.RepositionCell[test]; RETURN[test]; END; PW.Register[TestChRouterYA, "TestChRouterYA"]; PW.Register[TestSbRouterHA, "TestSbRouterHA"]; END. BPWRouteTestA.mesa Copyright c 1984, 1986 by Xerox Corporation. All rights reversed. Last Edited by: Preas, February 12, 1986 2:38:05 pm PST Use with the file PWRouteTestA.dale to test routing: PWRoute.load cdread PWRouteTestA run PWRouteTestA middle click P in the ChipNDale viewer select the appropriate generator ΚΌ˜– "Cedar" stylešœ™Jšœ Οmœ7™BJ™7J˜—šœ4™4Jšœ ™ Jšœ™Jšœ™J™&J™ —J˜šΟk œ˜ Jšœžœ˜ —J˜šœžœžœ˜Jšžœžœ ˜$Jšžœ˜J˜Jšžœžœžœ˜J˜š Οnœžœžœžœžœ ˜;Jšœ3˜3J˜—šΟbœžœ ˜Jšž˜J˜Jšœ žœ žœ!˜