Install PipalCD Run -a TestPipalCD _ &cdobj _ CDCurves.CreateLine[LIST [[0, 0], [100, 64]], 4, CMosB.pol].ob _ &ob _ PipalCD.CDToPObject[&cdobj] _ &ob2 _ TestPipalCD.InOut[&ob] _ &ov2 _ Pipal.CreateOverlay[LIST [&ob2]] _ &master _ RopeFile.SimpleCreate["WavesColor.ip"] _ &ob _ PipalMos.CreatePictureFromInterpress[[100, 100], &master] _ &ob2 _ TestPipalCD.InOut[&ob] _ TestPipalCD.Draw[&ob2] _ &design _ PW.OpenDesign["SCLibCMOSB"] _ &cdobj _ PW.Get[&design, "nand2.mask"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ PipalReal.ObjectSize[&ob] -- to avoid crashing during a paint proc! _ &viewer _ PipalEdit.CreateViewer[&ob] _ CDImports.LoadAndBindAll[&design] _ &cdobj _ PW.Get[&design, "nand2.sch"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ PipalReal.ObjectSize[&ob] -- to avoid crashing during a paint proc! _ &viewer _ PipalEdit.CreateViewer[&ob] _ &design _ PW.OpenDesign["Logic"] _ &cdobj _ PW.Get[&design, "CounterUp.sch"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ PipalReal.ObjectSize[&ob] -- to avoid crashing during a paint proc! _ &viewer _ PipalEdit.CreateViewer[&ob] _ &design _ PW.OpenDesign["DynabusPads"] _ &cdobj _ PW.Get[&design, "PadAll.mask"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ PipalReal.ObjectSize[&ob] -- to avoid crashing during a paint proc! _ &ob _ PipalReal.CreateTransform[ImagerTransformation.Scale[0.2], &ob] _ &viewer _ PipalEdit.CreateViewer[&ob] _ BasicTime.PulsesToSeconds[PipalEditImpl.lastViewerPaintTime] _ &design _ PW.OpenDesign["AnalogTestLayout"] _ &cdobj _ PW.Get[&design, "AnalogTest"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ PipalReal.ObjectSize[&ob] -- to avoid crashing during a paint proc! _ &ob _ PipalReal.CreateTransform[ImagerTransformation.Scale[0.2], &ob] _ &viewer _ PipalEdit.CreateViewer[&ob] _ BasicTime.PulsesToSeconds[PipalEditImpl.lastViewerPaintTime] _ &design _ PW.OpenDesign["SCLibCMOSB"] _ &cdobj _ PW.Get[&design, "nand2.mask"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ PipalReal.ObjectSize[&ob] -- to avoid crashing during a paint proc! _ PipalOverlayEditorImpl.Test[PipalOverlayMutant.Create[&ob.child.child]] _ &design _ PW.OpenDesign["SCLibCMOSB"] _ &cdobj _ PW.Get[&design, "nand2.mask"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ &ob2 _ TestPipalCD.InOut[&ob] _ CDImports.LoadAndBindAll[&design] _ &cdobj _ PW.Get[&design, "nand2.sch"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ &ob2 _ TestPipalCD.InOut[&ob] _ TestPipalCD.Draw[&ob] _ TestPipalCD.Draw[&ob2] _ &design _ PW.OpenDesign["Logic"] _ &cdobj _ PW.Get[&design, "CounterUp.sch"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ &ob2 _ TestPipalCD.InOut[&ob] _ &design _ PW.OpenDesign["DynabusPads"] _ &cdobj _ PW.Get[&design, "PadAll.mask"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ &ob2 _ TestPipalCD.InOut[&ob] _ &design _ PW.OpenDesign["AnalogTestLayout"] _ &cdobj _ PW.Get[&design, "AnalogTest"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ &ob2 _ TestPipalCD.InOut[&ob] _ TestPipalCD.Draw[&ob] _ TestPipalCD.Draw[&ob2] _ &design _ PW.OpenDesign["SCLibCMOSB"] _ &cdobj _ PW.Get[&design, "nand2.mask"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ &ob2 _ TestPipalCD.InOut[&ob] _ &import _ PipalIO.CreateRefereedImport["Foo.Bar.sch", FALSE, &ob] _ &child _ PipalInt.NthChild[&import].nthChild _ IF LOOPHOLE[&import.creationTime, INT]=LOOPHOLE[BasicTime.nullGMT, INT] THEN $OK ELSE ERROR _ &bidon _ Pipal.CreateOverlay[LIST[&import]] _ PipalIO.SaveObject["Bidon.sch", &bidon] _ IF LOOPHOLE[&import.creationTime, INT]#LOOPHOLE[BasicTime.nullGMT, INT] THEN $OK ELSE ERROR _ &table _ RefTab.Create[3, NIL, NIL] _ RefTab.Store[&table, &ob, &ob2] _ PipalOps.TransitiveReplace[&bidon, &table] _ IF RefTab.Fetch[&table, &ob].val=&ob2 THEN $OK ELSE ERROR _ &import2 _ RefTab.Fetch[&table, &import].val _ IF &import2=NIL OR &import2#&import THEN $OK ELSE ERROR _ IF LOOPHOLE[&import2.creationTime, INT]=LOOPHOLE[BasicTime.nullGMT, INT] THEN $OK ELSE ERROR _ &bidon2 _ RefTab.Fetch[&table, &bidon].val _ IF &bidon2=NIL OR &bidon2#&bidon THEN $OK ELSE ERROR _ PipalIO.SaveObject["Bidon.sch", &bidon2] _ IF LOOPHOLE[&import2.creationTime, INT]#LOOPHOLE[BasicTime.nullGMT, INT] THEN $OK ELSE ERROR Statistics on _ &design _ PW.OpenDesign["DynabusPads"] _ &cdobj _ PW.Get[&design, "PadAll.mask"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ TestPipalCD.Stats[&ob] _ PipalOpsImpl.simpleReplace _ TRUE _ &map1 _ TestPipalCD.FindEquals[&ob] _ PipalOps.TransitiveReplace[&ob, &map1] _ &ob1 _ RefTab.Fetch[&map1, &ob].val _ IF Pipal.Equal[&ob1, &ob] THEN $OK ELSE ERROR _ &map2 _ TestPipalCD.FindEquals[&ob] _ PipalOps.TransitiveReplace[&ob, &map2] _ &ob2 _ RefTab.Fetch[&map2, &ob].val _ IF Pipal.Equal[&ob2, &ob] THEN $OK ELSE ERROR _ PipalOpsImpl.simpleReplace _ FALSE _ &map3 _ TestPipalCD.FindEquals[&ob] _ PipalOps.TransitiveReplace[&ob, &map3] _ &ob3 _ RefTab.Fetch[&map3, &ob].val _ IF Pipal.Equal[&ob3, &ob] THEN $OK ELSE ERROR _ &map4 _ TestPipalCD.FindEquals[&ob] _ PipalOps.TransitiveReplace[&ob, &map4] _ &ob4 _ RefTab.Fetch[&map4, &ob].val _ IF Pipal.Equal[&ob4, &ob] THEN $OK ELSE ERROR _ &design _ PW.OpenDesign["AnalogTestLayout"] _ &cdobj _ PW.Get[&design, "AnalogTest"] _ &ob _ PipalCD.CDToPObject[&cdobj] _ TestPipalCD.Stats[&ob] _ &map _ TestPipalCD.FindEquals[&ob] _ PipalOps.TransitiveReplace[&ob, &map] _ &ob _ RefTab.Fetch[&map, &ob].val TestPipalCD.cm Copyright Σ 1988 by Xerox Corporation. All rights reserved. Louis Monier January 18, 1988 10:40:55 am PST Bertrand Serlet May 26, 1988 2:18:45 pm PDT Run -a PipalCDPackage _ &ov _ Pipal.CreateOverlay[LIST [&ob]] _ PipalOverlayEditorImpl.Test[PipalOverlayMutant.Create[&ov]] _ TestPipalCD.Draw[&ob] _ PipalOverlayEditorImpl.Test[PipalOverlayMutant.Create[&ov2]] _ TestPipalCD.Draw[&ob2] big object! TakeHeapStats TakeHeapStats -d IO test -- Directory/Import test Stats _ &design _ PW.OpenDesign["TestSinixB"] _ &cdobj _ PW.Get[&design, "TestPinCheckpoint"] _ &ct _ PipalSinix.Extract[&cdobj, PipalSinix.layoutMode].result _ IF PipalCore.GetPins[PipalSinix.layoutMode.decoration, &ct.public[0]].first.obj=PipalCore.GetPins[PipalSinix.layoutMode.decoration, &ct.public[1]].first.obj THEN ERROR ELSE NIL _ &shell _ PipalCore.CreateShell[PipalSinix.layoutMode.decoration, &ct, TRUE] _ &shellCT _ PipalSinix.Extract[&shell, PipalSinix.layoutMode].result _ IF &shellCT.public.size=2 THEN NIL ELSE ERROR _ IF PipalCore.GetPins[PipalSinix.layoutMode.decoration, &shellCT.public[0]].first.obj=PipalCore.GetPins[PipalSinix.layoutMode.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 _ PipalSinix.Extract[&shell, PipalSinix.layoutMode].result _ IF &shellCT.public.size=2 THEN NIL ELSE ERROR _ IF PipalCore.GetPins[PipalSinix.layoutMode.decoration, &shellCT.public[0]].first.obj=PipalCore.GetPins[PipalSinix.layoutMode.decoration, &shellCT.public[1]].first.obj THEN ERROR ELSE NIL And the writing of decorations on file _ &design _ PW.OpenDesign["TestSinixB"] _ &cdobj _ PW.Get[&design, "TestIO"] _ &ct _ PipalSinix.Extract[&cdobj, PipalSinix.layoutMode].result _ CoreIO.ReportSaveCellType[&ct] _ &rct _ CoreIO.RestoreCellType["TestIO"] _ &rrct _ CoreOps.Recast[&rct] _ &robj _ PipalCore.GetObject[PipalSinix.layoutMode.decoration, &rrct] _ PW.Draw[&robj] _ &design _ PW.OpenDesign["TestSinixB"] _ &cdobj _ PW.Get[&design, "TestPinCheckpoint"] _ &ct _ PipalSinix.Extract[&cdobj, PipalSinix.layoutMode].result _ CoreIO.ReportSaveCellType[&ct] _ &rct _ CoreIO.RestoreCellType["TestPinCheckpoint"] _ &rrct _ CoreOps.Recast[&rct] _ &robj _ PipalCore.GetObject[PipalSinix.layoutMode.decoration, &rrct] _ PW.Draw[&robj] Κκ˜šœ™Icode™™>Jšœ™Jšœ2˜2JšœA˜AJšœ˜Jšœ˜J˜Jšœ œ˜'Jšœ œ˜(Jšœ#˜#JšœΟc)˜EJšœ'˜'J˜Jšœ#˜#Jšœ œ˜'Jšœ#˜#Jšœž)˜EJšœ'˜'J˜Jšœ œ˜"Jšœ œ˜,Jšœ#˜#Jšœž)˜EJšœ'˜'J˜Jšœ œ˜(Jšœ œ˜)Jšœ#˜#Jšœž)˜EJšœG˜GJšœ'˜'Jšœ>˜>J˜Jšœ ™ J™ Jšœ œ˜-Jšœ œ˜(Jšœ#˜#Jšœž)˜EJ™JšœG˜GJšœ'˜'Jšœ>˜>J˜Jšœ œ˜'Jšœ œ˜(Jšœ#˜#Jšœž)˜EJšœI˜IJ˜Jšœ™Jšœ œ˜'Jšœ œ˜(Jšœ#˜#Jšœ˜Jšœ#˜#Jšœ œ˜'Jšœ#˜#Jšœ˜JšΟb˜JšŸ˜Jšœ œ˜"Jšœ œ˜,Jšœ#˜#Jšœ˜Jšœ œ˜(Jšœ œ˜)Jšœ#˜#Jšœ˜Jšœ œ˜-Jšœ œ˜(Jšœ#˜#Jšœ˜JšŸ˜JšŸ˜J™J™Jšœ œ˜'Jšœ œ˜(Jšœ#˜#Jšœ˜Jšœ8œ˜CJšœ.˜.Jšœœœœœœœœ˜]Jšœœ ˜-Jšœ)˜)Jšœœœœœœœœ˜]Jšœœœ˜%Jšœ!˜!Jšœ,˜,Jšœœ$œœ˜;Jšœ.˜.Jš œœ œœœœ˜9Jšœœœœœœœœ˜^Jšœ,˜,Jš œœ œœœœ˜6Jšœ*˜*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šœ(˜(Jšœ%˜%Jšœœœœ˜/J˜Jšœ œ˜-Jšœ œ˜(Jšœ#˜#Jšœ˜Jšœ$˜$Jšœ'˜'Jšœ#˜#J˜Jšœ œ™'Jšœ œ"™/Jšœ@™@Jš œœ›œœœ™²JšœHœ™MJšœE™EJš œœœœœ™/Jš œœ₯œœœ™ΌJšœ$œ™?Kšœ>™>Kšœœ/™5Kšœœ%™8JšœL™LJšœE™EJš œœœœœ™/Jš œœ₯œœœ™ΌJ™Jšœ&™&Jšœ œ™'Jšœ œ™$Jšœ@™@Jšœ ™ Jšœ)™)Jšœ™JšœF™FJšœœ ™J™Jšœ œ™'Jšœ œ"™/Jšœ@™@Jšœ ™ Jšœ4™4Jšœ™JšœF™FJšœœ ™J™J™—…—j%\