<> <> <> <<>> DIRECTORY CD, CoreCreate, CoreOps, PW, PWCore, PWCoreRoute; TestPWCoreRoute: CEDAR PROGRAM IMPORTS CoreCreate, CoreOps, PW, PWCore = BEGIN OPEN PWCoreRoute; TestX: PROC RETURNS [channelCT: CellType] = { design: CD.Design _ PW.OpenDesign["TestPWCoreRoute"]; 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", "through", "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 [CoreOps.FindWire[public, "middlea"], CoreOps.FindWire[public, "through"], CoreOps.FindWire[public, "highb"]], topOrRightWires: LIST[CoreOps.FindWire[public, "middlea"], CoreOps.FindWire[public, "through"], CoreOps.FindWire[public, "highb"]], trunkLayer: "metal", branchLayer: "metal2" ]]]; }; TestY: PROC RETURNS [channelCT: CellType] = { design: CD.Design _ PW.OpenDesign["TestPWCoreRoute"]; 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.