<> <> <> <> <> <<>> <> <<>> DIRECTORY CD, CDIO, CDOps, Core, CoreProperties, PWCore, Rope, -- RTCoreUtil, -- SC, RTTestUtil; SCTestSmall: CEDAR PROGRAM IMPORTS CDIO, CDOps, CoreProperties, PWCore, -- RTCoreUtil, -- SC, RTTestUtil SHARES SC = BEGIN result: SC.Result; libName: Rope.ROPE _"SCTestLib.dale"; hMaterial: Rope.ROPE _ "metal"; vMaterial: Rope.ROPE _ "poly"; libDesign: CD.Design _ CDIO.ReadDesign[libName, NIL, CDIO.GetWorkingDirectory[]]; cellType: Core.CellType _ RTTestUtil.CreateCore[libName]; saParms: SC.SAParms; initialResult: SC.SAInitialResult; cdDesign: CD.Design _ CDOps.CreateDesign[libDesign.technology]; rules: SC.DesignRules _ SC.CreateDesignRules[cdDesign.technology.key, hMaterial, vMaterial, horizontal]; handle: SC.Handle _ SC.CreateHandle[cellType: cellType, flattenCellType: NIL, libName: libName, designRules: rules, name: "SCTestSmall", decoration: PWCore.extractMode.decoration]; CoreProperties.PutCellTypeProp[cellType, SC.investmentProp, SC.veryLongValue]; -- RTCoreUtil.PutCoreRealProp[cellType, SC.t0SA, 300000.0]; -- RTCoreUtil.PutCoreRealProp[cellType, SC.maxTStepSA, 0.985]; -- RTCoreUtil.PutCoreRealProp[cellType, SC.lambdaSA, 0.1]; -- RTCoreUtil.PutCoreIntProp[cellType, SC.tableSizeSA, 500]; -- RTCoreUtil.PutCoreIntProp[cellType, SC.limitSA, 900]; SC.InitialPlace[handle, 5]; initialResult _ SC.SAInitialPlace[handle]; saParms _ SC.SAGetParms[handle, initialResult, cellType]; SC.SAPlaceImprove[handle: handle, saParms: saParms, widthFactor: 1.1]; -- SC.SAPlaceImproveM[handle: handle, saParms: saParms, widthFactor: 1.3]; -- SC.PlaceImprove[handle: handle, maxCycles: 6]; SC.PlaceImprove[handle, 1]; SC.GlobalRoute[handle]; SC.PlaceImprove[handle, 5]; -- SC.PosImproveWL[handle, 1]; -- SC.OrientImproveWL[handle, 1]; -- SC.PosImprove[handle, 1]; -- SC.OrientImprove[handle, 1]; result _ SC.DetailRoute[handle]; RTTestUtil.WriteLayout[result.object, handle.name, cdDesign]; SC.Destroy[handle]; END.