Install PipalExtract Run -a TestPipalSinix CDRead TestSinixB _ CoreProperties.StoreProperties[$LayoutObject, CoreProperties.PutProp[CoreProperties.FetchProperties[$LayoutObject], CoreProperties.propPrint, NIL]] _ CoreProperties.StoreProperties[$LayoutPort, CoreProperties.PutProp[CoreProperties.FetchProperties[$LayoutPort], CoreProperties.propPrint, NIL]] _ CoreProperties.StoreProperties[$LayoutGeometry, CoreProperties.PutProp[CoreProperties.FetchProperties[$LayoutGeometry], CoreProperties.propPrint, NIL]] _ CoreProperties.StoreProperties[$LayoutTrans, CoreProperties.PutProp[CoreProperties.FetchProperties[$LayoutTrans], CoreProperties.propPrint, NIL]] _ &box1 _ PipalMos.CreateBox[[20, 32], $Pol] _ PipalSinix.Extract[&box1, PipalSinix.layoutMode] _ &box2 _ PipalInt.TransformObject[[[40, 48]], PipalMos.CreateBox[[48, 20], $Met]] _ PipalSinix.Extract[&box2, PipalSinix.layoutMode] _ &ov _ Pipal.CreateOverlay[LIST[&box1, &box2]] _ PipalSinix.Extract[&ov, PipalSinix.layoutMode] _ &cdcontact _ CDSimpleRules.Contact[CMosB.cmosB, CMosB.pol, CMosB.met] _ &contact _ PipalCD.CDToPObject[&cdcontact] _ PipalSinix.Extract[&contact, PipalSinix.layoutMode] _ &cdtrans _ CMosBObjects.CreateTransistor[[56, 52], CMosB.ndif] _ &trans _ PipalCD.CDToPObject[&cdtrans] _ &ct _ PipalSinix.Extract[&trans, PipalSinix.layoutMode].result _ &cdtrans _ CMosBObjects.CreateAngleTransistor[[40, 32], CMosB.wpdif] _ &trans _ PipalCD.CDToPObject[&cdtrans] _ &ct _ PipalSinix.Extract[&trans, PipalSinix.layoutMode].result _ &font _ Imager.FindFontScaled["Xerox/XC1-2-2/Modern", 20.0] _ &star _ PipalMos.CreateStar[&contact, LIST [PipalMos.CreateText["Name", &font]]] _ PipalSinix.Extract[&star, PipalSinix.layoutMode] _ &overlay _ Pipal.CreateOverlay[LIST [&star]] _ &ct _ PipalSinix.Extract[&overlay, PipalSinix.layoutMode].result _ IF CoreOps.FindWire[&ct.public, "Name"]=NIL THEN ERROR ELSE NIL _ &marker _ PipalInt.TransformObject[[[40, 48]], PipalMos.CreateBox[[48, 20], $Met]] _ PipalSinix.Extract[&marker, PipalSinix.layoutMode] _ &design _ PW.OpenDesign["TestSinixB"] _ &cdobj _ PW.Get[&design, "Test"] _ &obj _ PipalCD.CDToPObject[&cdobj] _ &ct _ PipalSinix.Extract[&obj, PipalSinix.layoutMode].result _ &cdrot _ PW.CreateRotation[&cdobj, mirrorX] _ &rot _ PipalCD.CDToPObject[&cdrot] _ &ct _ PipalSinix.Extract[&rot, PipalSinix.layoutMode].result _ &cdabut _ PW.AbutX[&cdrot, &cdobj] _ &abut _ PipalCD.CDToPObject[&cdabut] _ &ct _ PipalSinix.Extract[&abut, PipalSinix.layoutMode].result _ CoreOps.Print[&ct] _ IF CoreOps.FindWire[&ct.public, "Gate"]=NIL THEN ERROR ELSE NIL Run TestPW _ &design _ PW.OpenDesign["TestPW"] _ &cdrout _ TestPW.TestRoutingCellN[&design, NIL, NIL, NIL] _ &rout _ PipalCD.CDToPObject[&cdrout] _ &ct _ PipalSinix.Extract[&rout, PipalSinix.layoutMode].result _ IF &ct.public.size=2 THEN NIL ELSE ERROR _ &cdrout _ TestPW.TestRoutingCellP[&design, NIL, NIL, NIL] _ &rout _ PipalCD.CDToPObject[&cdrout] _ &ct _ PipalSinix.Extract[&rout, PipalSinix.layoutMode].result _ IF &ct.public.size=3 THEN NIL ELSE ERROR _ &design _ PW.OpenDesign["DynabusPads"] _ &cdobj _ PW.Get[&design, "PadAll.mask"] _ PW.Draw[&cdobj] _ &obj _ PipalCD.CDToPObject[&cdobj] date _ &ct _ PipalSinix.Extract[&obj, PipalSinix.layoutMode].result date _ TestPipalSinix.DrawShell[&ct] BTestPipalSinix.cm Copyright Σ 1985, 1987 by Xerox Corporation. All rights reversed. Created by Bertrand Serlet August 30, 1985 11:55:01 am PDT Bertrand Serlet April 15, 1988 2:03:58 pm PDT Run -a PipalExtractPackage We now check the extraction of abuts We check the routing class extraction A larger circuit Paste buffer _ CoreOps.Print[&ct] _ PipalConnectImpl.debugCache _ TRUE _ PipalSinixImpl.debugCache _ TRUE _ PipalConnectImpl.SetComposite[PipalInt.abutClass, PipalConnectImpl.EnumerationComposer] _ TestPipalSinix.Draw[&abut] _ TestPipalSinix.DrawShell[&ct] Κ˜šœ™JšœB™BIcodešœ7Οk™:Kšœ-™-—J™Jšœ˜Jšœ™J˜Jšœ˜J˜Jšœœ˜•JšœŒœ˜‘Jšœ”œ˜™JšœŽœ˜“J˜Jšœ,˜,Jšœ2˜2J˜JšœR˜RJšœ2˜2J˜Jšœœ˜/Jšœ0˜0J˜JšœG˜GJšœ,˜,Jšœ5˜5J˜Jšœ@˜@Jšœ(˜(Jšœ@˜@J˜JšœF˜FJšœ(˜(Jšœ@˜@J˜Jšœ=˜=Jšœ(œ&˜RJšœ2˜2Jšœ!œ ˜.JšœB˜BJš œœ&œœœœ˜AJ˜JšœT˜TJšœ4˜4J˜Jšœ œ˜'Jšœ œ˜"Jšœ$˜$Jšœ>˜>J˜Jšœ œ ˜-Jšœ$˜$Jšœ>˜>J˜Jšœ$™$Jšœ œ˜$Jšœ&˜&Jšœ?˜?Jšœ˜Jš œœ&œœœœ˜AJ˜Jšœ%™%J˜ Jšœ œ˜#Jšœ-œœœ˜;Jšœ&˜&Jšœ?˜?Jš œœœœœ˜*Jšœ-œœœ˜;Jšœ&˜&Jšœ?˜?Jš œœœœœ˜*J˜J™Jšœ œ˜(Jšœ œ˜)Jšœœ ˜Jšœ$˜$J˜Jšœ>˜>J˜J˜Jšœ ˜ J™J™ JšΟb™Jšž Πbk™$JšžŸ™"JšžY™YJšžœ™Jšžœ™ —…— Ψ