<> <> <> <> <<>> DIRECTORY CD, CDCells, CDIO, CDOps, Rope, Route, RouteUtil, RTBasic, TerminalIO; RouteTestC: CEDAR PROGRAM IMPORTS CD, CDCells, CDIO, CDOps, Rope, Route, RouteUtil, RTBasic, TerminalIO SHARES Route = BEGIN c1, c2, d1, d2: Route.Pin; c1cd, c2cd, d1cd, d2cd: CD.Instance; cProperties: Route.PropList _ NIL; result: Route.RoutingResult; design: CD.Design; object: CD.Object; technology: CD.Technology _ CD.FetchTechnology[$cmos]; metal: Route.Layer _ CD.FetchLayer[technology, $met]; metal2: Route.Layer _ CD.FetchLayer[technology, $met2]; rules: Route.DesignRules _ Route.CreateDesignRules[$cmos, metal, metal2, horizontal]; routingArea: Route.RoutingArea _ Route.CreateRoutingArea["RouteTestC", rules]; Route.IncludeRoutingAreaSide[routingArea, bottom, [0, 0]]; Route.IncludeRoutingAreaSide[routingArea, top, [0, 0]]; cProperties _ RouteUtil.PutNumberProp[cProperties, Route.trunkWidthKey, 20]; cProperties _ RouteUtil.PutNumberProp[cProperties, Route.branchWidthKey, 20]; c1cd _ RouteUtil.CreateCDPin["c1", [60, 0, 64, -4], metal2]; c1 _ Route.CreatePin[c1cd, bottom]; c2cd _ RouteUtil.CreateCDPin["c1", [134, 0, 138, 4], metal2]; c2 _ Route.CreatePin[c2cd, top]; Route.IncludeNet[routingArea, "c", LIST[c1, c2], cProperties]; d1cd _ RouteUtil.CreateCDPin["d1", [134, 0, 138, -4], metal2]; d1 _ Route.CreatePin[d1cd, bottom]; d2cd _ RouteUtil.CreateCDPin["d2", [100, 0, 104, 4], metal2]; d2 _ Route.CreatePin[d2cd, top]; Route.IncludeNet[routingArea, "d", LIST[d1, d2]]; result _ Route.ChannelRoute[routingArea, [[0, 0], [200, 0], [0, 30], [0,0]], [0, 0, 200, 30], full]; design _ CDOps.CreateDesign[technology]; object _ Route.RetrieveRouting[result, result.routingArea.name, NIL, NIL].object; [ ] _ CDCells.IncludeOb[design: design, ob: object]; IF CDIO.WriteDesign[design, result.routingArea.name] THEN BEGIN newCellName: Rope.ROPE _ RTBasic.GetCDCellName[object]; IF ~Rope.Equal[result.routingArea.name, newCellName] THEN TerminalIO.PutRope[Rope.Cat["cell name changed to: ", newCellName, "\n"]]; END ELSE TerminalIO.PutRope["Error: design not written\n"]; END.