<> <> <> <> <<>> Install Extract CDCMosA Run -a SinixCMosA CDRead TestSinixA CDRead TestSinixB _ CoreProperties.StoreProperties[$CMosBObject, CoreProperties.PutProp[CoreProperties.FetchProperties[$CMosBObject], CoreProperties.propPrint, NIL]] _ CoreProperties.StoreProperties[$CMosBPins, CoreProperties.PutProp[CoreProperties.FetchProperties[$CMosBPins], CoreProperties.propPrint, NIL]] _ CoreProperties.StoreProperties[$CMosBGeometry, CoreProperties.PutProp[CoreProperties.FetchProperties[$CMosBGeometry], CoreProperties.propPrint, NIL]] _ CoreProperties.StoreProperties[$CMosBTrans, CoreProperties.PutProp[CoreProperties.FetchProperties[$CMosBTrans], CoreProperties.propPrint, NIL]] <> _ &design _ PW.OpenDesign["TestSinixB"] _ &obj _ PW.Get[&design, "Test"] _ &abut _ PW.AbutX[PW.CreateRotation[&obj, mirrorX], &obj] _ &ct _ Sinix.Extract[&abut, SinixCMosB.mode].result _ CoreOps.Print[&ct] _ IF CoreOps.FindWire[&ct.public, "Gate"]=NIL THEN ERROR ELSE NIL <> Run TestPW _ &design _ PW.OpenDesign["TestPW"] _ &obj _ TestPW.TestRoutingCellP[&design, NIL, NIL, NIL] _ &ct _ Sinix.Extract[&obj, SinixCMosB.mode].result _ IF &ct.public.size=3 THEN NIL ELSE ERROR _ &obj _ TestPW.TestRoutingCellN[&design, NIL, NIL, NIL] _ &ct _ Sinix.Extract[&obj, SinixCMosB.mode].result _ IF &ct.public.size=2 THEN NIL ELSE ERROR _ PW.Draw[&obj] <> _ &design _ PW.OpenDesign["TestSinixB"] _ &obj _ PW.Get[&design, "TestPinCheckpoint"] _ &ct _ Sinix.Extract[&obj, SinixCMosB.mode].result _ IF CoreGeometry.GetPins[SinixCMosB.mode.decoration, &ct.public[0]].first.obj=CoreGeometry.GetPins[SinixCMosB.mode.decoration, &ct.public[1]].first.obj THEN ERROR ELSE NIL _ &shell _ CoreGeometry.CreateShell[SinixCMosB.mode.decoration, &ct, TRUE] _ &shellCT _ Sinix.Extract[&shell, SinixCMosB.mode].result _ IF &shellCT.public.size=2 THEN NIL ELSE ERROR _ IF CoreGeometry.GetPins[SinixCMosB.mode.decoration, &shellCT.public[0]].first.obj=CoreGeometry.GetPins[SinixCMosB.mode.decoration, &shellCT.public[1]].first.obj THEN ERROR ELSE NIL _ &shellDesign _ CDOps.CreateDesign[CD.FetchTechnology[$cmosB]] _ CDOps.IncludeObjectI[&shellDesign, &shell, [0, 0], original] _ CDIO.WriteDesign[&shellDesign, "TestPinCheckpoint"] _ &shellDesign _ PW.OpenDesign["TestPinCheckpoint.dale"] _ &shell _ &shellDesign.actual.first.dummyCell.ob.specific.contents.first.ob _ &shellCT _ Sinix.Extract[&shell, SinixCMosB.mode].result _ IF &shellCT.public.size=2 THEN NIL ELSE ERROR _ IF CoreGeometry.GetPins[SinixCMosB.mode.decoration, &shellCT.public[0]].first.obj=CoreGeometry.GetPins[SinixCMosB.mode.decoration, &shellCT.public[1]].first.obj THEN ERROR ELSE NIL <> _ &design _ PW.OpenDesign["TestSinixB"] _ &obj _ PW.Get[&design, "TestIO"] _ &ct _ Sinix.Extract[&obj, SinixCMosB.mode].result _ CoreIO.ReportSaveCellType[&ct] _ &rct _ CoreIO.RestoreCellType["TestIO"] _ &rrct _ CoreOps.Recast[&rct] _ &robj _ CoreGeometry.GetObject[SinixCMosB.mode.decoration, &rrct] _ PW.Draw[&robj] _ &design _ PW.OpenDesign["TestSinixB"] _ &obj _ PW.Get[&design, "TestPinCheckpoint"] _ &ct _ Sinix.Extract[&obj, SinixCMosB.mode].result _ CoreIO.ReportSaveCellType[&ct] _ &rct _ CoreIO.RestoreCellType["TestPinCheckpoint"] _ &rrct _ CoreOps.Recast[&rct] _ &robj _ CoreGeometry.GetObject[SinixCMosB.mode.decoration, &rrct] _ PW.Draw[&robj]