#################################################### Date: Mon, 29 Dec 86 22:37:55 PST From: Jacobi.pa Subject: News on ChipNDale 2.4 To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa New BringDATools24 command to bringover the complete [as far as already converted] datool suite on top of ChipNDale24. Warning: Some tools are still missing. (Static, Lichen, ReadCif...) Designer which need the complete datool suite must still wait before doing the switch. To get the new BringDATools24 command, bringover /datools/datools6.1/top/BringDATools24.df The BringDATools24 command is the one place where the version number must show through. But in principle the package wouldn't need a version number on the df file, the command should suffice. [Actualy, the same package also implements a command BringDATools23 and others] Christian #################################################### Date: Fri, 19 Dec 86 20:34:32 PST From: Beretta.pa Subject: Easy documentation access for DATools 6.1 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa, Bland.pa DF: no bringover required Documentation: self documenting Maintainer: DAToolsImplementors^.pa Ever wondered how to get those strays into your Core ? Or listed in vain the directories on [DATools] to find the Catalog, or some documentation about ChipNDale ? Or scanned in vain the Catalog to find a tool that finds unconnected wires ? If you have 76 gfi's left, your anwer might be to stuff the following line in the command tool: WBOpen [Ebbetts.alpine]Whiteboard.segment; Whiteboard M Putting in your user profile an alias you can easily remember will help in the case of need. Collected by Giordano Beretta and Lissy Bland. #################################################### Date: Wed, 10 Dec 86 18:05:00 PST From: Beretta.pa Subject: Which rules are checked and which not? To: DAToolsUsers^.pa Reply-to: Beretta.pa Which rules are checked and which not? This is a quick hack. It describes the state valid on December 10, 1986 4:21:07 pm PST with Cedar 6.1 and ChipNDale 24. Only the Dragon rules are considered. It does not state anything about the past or the future. A document containing the truth at the moment it is read is in preparation (SXMaintenance2* has a command in the P-menu (<=23) or control panel (24) that describes in full detail what Spinifex does). Format: the 1st field contains the rule as in [indigo]Documentation>DragonCMOSDesignRules>DragonCMOSDesignRulesC.tioga!2; the second field says who verifies it (SoS at the moment is out of order). 6.1. Well Rules 6.1.1. Minimum Width: Spinifex 6.1.2. Minimum Spacing: Spinifex 6.1.3. Under Bonding Pads: not verified 6.1.4. Minimum Spacing of P-Well from N-well: not used 6.2. Well Resistor Rules: not used 6.3. Diffusion Rules 6.3.1. Minimum Width: Spinifex 6.3.2. Transistor Minimum Width: Spinifex (weak transistors not allowed) 6.3.3. Diffusion Minumum Spacing: Spinifex 6.3.4. Diffusion Minimum Spacing: Spinifex, Gismo Diffusion-in-Well 6.3.5. N-Well Surrounds P+: Gismo Diffusion-in-Well 6.3.6. N-Well Surrounds N+ Contact: Gismo Diffusion-in-Well (there is a bug) 6.3.7. N-Well Avoids N+: Spinifex 6.3.8. N-Well Overlaps N+ Guard Ring: not verified 6.3.9. N-Well Avoids P+ Contact: Gismo Diffusion-in-Well (there is a bug) 6.3.10. N+ Guard Ring Avoids P+ Contact: not verified 6.3.11. P-Well Surrounds N+Contact: Gismo Diffusion-in-Well 6.3.12. P+ to N+ Minimum Spacing: Spinifex, Gismo Diffusion-in-Well 6.3.13. P-Well Overlaps P+ Contact: not used 6.3.14. P-Well Avoids P+: not used 6.3.15. P-Well Overlaps P+ Guard Ring: not used 6.3.16. P+ Guard Ring Avoids N+ Contact: not verified 6.3.17. N- Substrate Overlaps N+ Contact: not used 6.3.18. Source/Drain Extension: Spinifex 6.3.19. Substrate Overlaps P+ Guard Ring: Spinifex 6.3.20. Angle Transistors: Spinifex 6.4. Polysilicon Rules 6.4.1. Poly Minimum Width: Spinifex 6.4.2. Minimum Transistor Length: Spinifex 6.4.3. Minimum Spacing: Spinifex 6.4.4. Minimum Gate Extension: Spinifex 6.4.5. Minimum Spacing to Unrelated Diffusion: Spinifex 6.5. Contact Rules 6.5.1. Contact To P+ And N+ Diffusion And Poly 6.5.1.1. Minimum Contact Size: not verified (atomic object) 6.5.1.2. Maximum Contact Size: Spinifex 6.5.1.3. Minimum Contact Spacing: Spinifex 6.5.1.4. Minimum Poly Surround of Contact: not verified (atomic object) 6.5.1.5. Minimum Diffusion Surround of Contact: not verified (atomic object) 6.5.1.6. Minimum Diffusion Contact to Gate Spacing: Spinifex 6.5.1.7. Minimum Poly Contact to Diffusion Spacing: Spinifex 6.5.1.8. Minimum Metal1 Surround of Contact: not verified (atomic object) 6.5.2. Split Contact 6.5.2.3. Gate to Opposite Diffusion Spacing: Spinifex 6.5.2.4. Minimum Split Contact Width: not verified (atomic object) 6.5.2.5. Minimum Split Contact Size: Spinifex 6.5.2.6. Maximum Split Contact Size: Spinifex 6.5.2.7. Minimum Overlap of Split Contact and Diffusion: not verified (atomic object) 6.5.2.8. Minimum Metal1 Surround of Contact: not verified (atomic object) 6.6. Metal1 Rules 6.6.1. Metal1 Minimum Width: Spinifex 6.6.2. Metal1 Minimum Spacing: Spinifex 6.6.3. Metal1 Maximum Current Limit: not verified 6.7. Via Rules 6.7.1. Via Permitted Sites: Gismo Via-Flatness 6.7.2. Via Minimum Size: not verified (atomic object) 6.7.3. Via Maximum Size: Spinifex 6.7.4. Via Minimum Spacing: Spinifex 6.7.5. Via Minimum Metal Surround: not verified (atomic object) 6.7.6. Minimum Spacing to Poly: Gismo Via-Flatness 6.7.7. Minimum Poly Surround: Gismo Via-Flatness 6.7.8. Minimum Spacing to Diffusion Contact: Gismo Via-Flatness 6.7.9. Minimum Spacing to Poly Contact: Gismo Via-Flatness 6.7.10. Maximum Current Limit: not verified 6.7.11. Minimum Spacing to Diffusion: Gismo Via-Flatness 6.7.12. Minimum Diffusion Surround: Gismo Via-Flatness 6.8. Metal2 Rules 6.8.1. Metal2 Minimum Width: Spinifex 6.8.2. Metal2 Minimum Spacing: Spinifex 6.8.3. Metal2 Maximum Current Limit: not verified 7.1. Bonding Pads 7.1.2. Minimum Pad Dimensions: not verified 7.1.3. Minimum Metal Surround of Pad Via: not verified 7.1.4. Minimum Metal2 Surround of Overglass Cut: not verified 7.1.5. Minimum Pad Spacing: not verified 7.1.6. Minimum Overglass Cut Width: not verified 7.1.7. Minimum Nitride Passivation Cut Width: not verified 7.1.8. Minimum Spacing to Unrelated Metal: not verified 7.1.9. Minimum Spacing to Unrelated Features: not verified 7.1.10. Bond Pad Fillet Options: not verified 7.1.10.1. Options for Minimum Width of Wide Metal Entering Pad: not verified 7.1.10.2. Minimum Length of Wide Metal Entering Pad: not verified 7.1.10.3. Minimum Metal Width Leadaway After Wide Metal: not verified 7.1.10.4. Spacing from Passivation Cut to Edge of Wide Metal: not verified 7.1.10.5. Minimum Opening in Pad Metal: not verified #################################################### Date: Tue, 9 Dec 86 13:34:21 PST From: Jacobi.pa Subject: Improvements in ChipnDale 2.4 To: DAToolsImplementors^.pa Cc: Jacobi Reply-to: Jacobi.pa Tioga Font substitution CDTexts has a built in (device independent) tioga font substitution paint mode. (Previously font substitution was done on Nectarine and interpress plots only) The algorithm to find a corresponding press font is copied from Nectarine. (Previously [in interpress plot] the matching font names where read in from a font substitution file). Viewers: Its a draw mode. See the draw mode commands . new! IP plots: You must answer the question from a pop up menu. PD plots: If you select the special options (from pop up menu), you will be asked whether tioga fonts should be substituted. new! Nectarine: Did behave nicely all the time; nothing has changed. Client coding: to get Tioga font substitution use CD.CreateDrawRef[[specialFonts: TRUE]] Warning: This is for cd24! do not convert your designs until the tools you need are available. Christian #################################################### Date: Tue, 9 Dec 86 13:25:32 PST From: Jacobi.pa Subject: Improvements in ChipnDale 2.4 To: DAToolsImplementors^.pa Cc: Jacobi Reply-to: Jacobi.pa Improved PD plotting PD plot is changed such that it scan converts object in device pixel coordinates. (Previously scan convertion was done in design coordinates.) This results in smoth pictures for lines, splines, texts, and at the same time faster scan conversion on large (overview) scales, and, in a simplification of the code for polygons [Cedar 5.0 graphics is no more needed]. Borders appear on pd plots. (War story: I couldn't fix the bug, even after a complete second implementation. Then I discovered that PreView sometimes ignores lines of 1 pixel width when you didn't know about the -f option.) Many thanks to Michel Plass Improved IP plotting The fixed scale plotting reads the scale from a property of the design or the technology. Warning: This is for cd24! do not convert your design work until the tools you need are available. Christian #################################################### Date: Tue, 23 Dec 86 15:21:14 PST From: Jacobi.pa Subject: ChipNDale (only) 2.4 released To: ChipNDaleUsers^.pa, DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa has Tioga levels ChipNDale (only) 2.4 released Actually it happened on 04-Nov-86 (but was only messaged to DAToolsImplementors). Designers: wait until your favorite tool set is available, but please put pressure on the tool implementors to do the conversion if they havn't yet. There is no way to read in a file writen with version 2.4 into any older ChipNDale version. Why a message before all the other tools are available: I can't wait any longer, since I am now thinking on getting the conversion to Cedar7.0 smoothly, and, I have to tell you about the archive and deletion plans sufficiently ahead. This release has mainly improvements for designing with programs for the integration of tools. What next When Cedar7.0 will be released, I will convert ChipNDale fast. The changes noted in my master whish list will be incorporated, and the converted ChipNDale will be called 2.5. There will be minor changes only for 2.5. [It's a good time now to forward your whishes] Old versions Version 2.3 will stay accessible to users until all the major tools are converted. But I will pull the plug after Cedar 7.0 is released; I can not maintain 3 different versions ! [Nor do we have unlimited disk space on Cyan] Version 2.3 will be archived on request only; ChipNDale 2.4 will be archived anyway. Version 2.4 is able to read in all the different file formats written since version 0.0; but only the features made by packages which had been declared as released. [Version 2.5 wil NOT] Current state All my code is converted... See /DATools/DATools6.1/Top/CDDesign24.df Usefull files are /DATools/DATools6.1/CDCommon24/cd24.tioga /DATools/DATools6.1/CDCommon24/cd24renames.tioga ChipNDale 2.4 also uses new versions of TerminalIO, D2Basic, ColorMaps and CStitching While the release time it might be of advantage to NOT put ColorMaps into your checkpoint. Good news Some df files with core related tools have version numbers in their names. It looks like the users will not be thrown into the cold water, but have a choice of their own when to convert their code. Updates Main attractions of this release Concurrent IO of different designs. TokenIO supports streams as tokens. Orientation is newly defined [does no more depend on object size]. Objects can have their origin at any point; No repositioning. CDCells suports only one coordinate system [the former originCoords]. Sequences are used to represent cell contents. Large clean up, smaller code size. If you dont want to read it in detail look for the starred* attractions. If you are programming ChipNDale clients, really check all the points. Global changes Packages given up CDFeedback I always stated that I wouldn't maintain it. CDX coordinate system transfers are no more necessary CDCallSpecific complexity/functionality was too large CDLRUCache replaced by general package CDOrient collapsed with CDBasics * CDPolygons use CDCurves CDMenus use general menu package, CDCommandOps, and rarely CDPopUpMenus CDChipmonkColors.df who uses that? CDExtras usefull procedures distributed into other packages CDTipEtc replaced by CDEnvironment all the FooExtra's merged in Not done Parts of CMosA: Old Chipmonk compatible objects do not have interactive commands. Parts of NMos Df file renamed to CDNMosA24, Conversion of data structures is implemented, Interactive commands which where not used by Tom or Shahram are not converted CDRecognizer, CDOverlapRemover Formally converted but not functional [the semantical differences of orientation are not considered] Lots of things not maintained by me. Renaming FooPtr => FooSpecific Orientation concept ** No repositioning ** cells can be represented using sequences * safes trashing on cons cells for the dragon ifu chip This code, while principially ugly, saves 600000 words of memory in the representation of the dragon ifu. Conversion hint: See warning in detailed list. Saves 8 gfi's, 2 mds * 2 gfi's by collapsing packages; the others by really reducing features Package changes CD Rename: specificRef => specific Replace: size => bbox * Orientation and Transformation are lower level and imported * design New version feature accessible from clients; use boolean fields in CD, set with CDSequencer Fields edited, changedSinceSaving [reserrved for sequencer] PushRec.changed now in CellRec Has fields for delayed redraws Propertylist to implement undo caches class InternalReadProc knows atom Field whether object class is created with CDAtomicObjects drawing Default device size is reduced to LAST[INT]/2 to prevent arithmetic overflow Has a dummyInstance field Showing selection for abstract devices CDAtomicObjects Rename: lev => layer CDBasics All the functionality from CDOrient * Rename: NormalizeRect => ReInterpreteRect Degenerated new proc CDCells No coordinate system choices ** Some procedures moved to CDCellsInteractions SetSimplificationTreshhold has comment CreateCell, IncludeInstance, EnumerateInstances: new procs IncludeMode: dontReposition also implies dontNotify; dontPropagate renamed to make sure compiler find possible conflict spots. [for dontReposition I greped /datools/datools6.1/*] Use of sequence and list to represent cells * *Warning (Conversion hint): Use "grep .contents *.mesa!h" to find all use of cell interiors; check whether it is the contents of a pushed in design or a real cell. If it is a real cell use CDCells.EnumerateInstances instead. The field contents does not describe the complete contents of a cell; this might cause some troubles in converting clients. It might be good to use grep to look for places using this field. CDCellsInteractions Module separates implementation of commands from implementation of data structures CDCleanup ReplaceFunny removed: it could only be implemented using PreTag and ReplaceTagged CDCommandOps Some procedures migrated to CDOps DoWithResource replaces CallWithResource (no abortFlag feature) CDDebug New definitions useful for debugging only CDDirectory Expand and Another procs have different defaults return values ReplaceObject: comment must say deals with instances but not with the directory. DirectoryProc: Better class procedures to deal with renaming CDEnvironment New procedure RemoveSpaces CDGenerate Rename: Table => Context Context not readonly; there were too many LOOPHOLE'S CDInstances new procedures Member, Length CDImports The dummy readonly design is accessible [but private] Rename CDImportsExtras => CDImportsBackdoor ImportDesign => ImportEntry New proc TrustedCreateImport Working directory: check first in designs wDir, then in ChipNDale's wDir CDInstances Documentation such that you won't intermix Composed, DeComposed any more CDIO Handle for design; parallel IO possible ** CDMakeMenusImpl Menus are made from a ChipNDale.MenuTable file... Lots of tools start now from menus CDMenuSpecials SelectOneOf allows also list of ropes, type in It removes duplicates CDOps Rename: Redraw => ImmediateRedraw DelayedRedraw => Redraw PointedInstance is removed [it had only one client] Some procedures from CDCommandOps LambdaRope must not have a default for lambda CDPanel Cleaned up implementation CDProperties New procedures PutPropProp and GetPropProp * RegisterAndInstall => Register; new parameters CDRemote New mechanism for using non-defaulted file names CDSatellites Comment is not property but font only! On output (input) we do not enforce invariants but on call of GetSatellites the satellites are either cached, or if computed thats the time to enforce invariants On pop the invariants are not enforced but on GetSatellites... CDSequencer Command.ref viewer instead of viewer.data field New procedure to associate an abort flag CheckAborted also checks commandtool stop button CDSimpleRules New mechanism for large contacts [the mechanism is there, not the implementation] CDStretchyExtras Replaced by CDStretchyBackdoor; new mechanism to return similar object CDTexts Rigid and flexible texts Font no more readonly [some LOOPHOLE less] Gone: CDProperties.PutProp[rigidTextClass, $SisyphExtractProc, $ExtractNull]; CDProperties.PutProp[rigidTextClass, $SinixCMosBExtractProc, $ExtractNull]; CDTextsBackdoor New package CDUtil Flatten procedure CDViewer It is now possible to open a viewer without opening a control panel The procedure DesignOf also works for control panels, buttons inside control panels in addition to plain ChipNDale design viewers (uses the property $ChipNDaleDesign on the viewer or its parent) CDViewerInternals New package CStitching New proc EnumerateNeighborhood [gbb] (In definitions only) D2Basic Rename: Pos => Vector D2Orient New package exporting Orientation and Transformation in a ChipNDale independent way to allow sharing Transformations between ChipNDale and other packages. Once in future also procedures should be moved (and renamed) from CDBasics. TerminalIO * Log file Edits on input are possible Rename: Write~ => Put~ Less procedures Timeout parameter on input is no more optional TokenIO Completely redone: Concurrent IO for different designs is possible. * Tokenized streams. * Ropes use lru cacheing [saves 10% of file length]. UserProfile options User profile options which have to do with files (tiptables, icons, menutables) have a prefix including a version number. ChipNDale.OpenPanel: BOOL _ TRUE If set to false, reading a design won't open a control panel ChipNDale24.AutoLoad: BOOL Switch whether technologies should be loaded automatically on need ChipNDale24.AutoLoad.technologyKey: BOOL Switch whether technology technologyKey should be loaded automatically on need This switch, if set, overrules the ChipNDale.AutoLoad switch. ChipNDale24.MenuTable: Default File to load menu texts and help documentation ChipNDale.SavePeriod: 0 Time in seconds ChipnDale waits before starting a background save ChipNDale.AutoLoadImports: TRUE Whether imports should be directly loaded when file is read Commands and properties Background saving For a particular design can be stopped using a property $CDxDontBackgroundSave with value $TRUE on the design. Statistic command writes the font of single selected texts Viewers View mode can substitute or leave tioga fonts The split viewer command does not automatically opens a control panel [must use "control panel" entry in viewer pop up menu to create a control panel] Control panels Are never suppressed [for the benefit of Nectarine on CSMonitor] InterpressPlot Font substitution is done without file Default scale option reads scale from property PDPlot Scan converts in device coordinates (instead cd coordinates) Font substitution Can draw outlines Pop Up Menus Menus can be defined from the menu entry definition files Imports Reading a design can load all imports, depending on options and user profile Some commands are improved Christian #################################################### Date: Thu, 18 Sep 86 18:25:18 PDT From: Jacobi.pa Subject: CDSatellites23 for DATools6.1 To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi DF: [DATools]Top>CDSatellites23.df Documentation: [DATools]CDSatellites23>CDSatellitesDoc.tioga Maintainer: Jacobi This is a new version of a older module previously stored with PW.df CDSatellites does not do any computations anymore, except when 1) a client calls a CDSatellites procedure 2) a small, constant time on IO 3) a large (linear with the number of instances) time for conversion when reading in designs which used old CDSatellites. GetSatellites applied on cells cache the result automatically. Not beeing an instance satellite does not make a text an object satellite. There is the possibility of a text not beeing a satellite at all. [This makes CDSatellites behaving correct, even when combined with other text handling modules] Exact Invariants and properties are hidden in the implementation, only a simplified subset is exported. The definition module is complete: the commands are implemented using exported features only. #################################################### Date: Tue, 26 Aug 86 11:33:27 PDT From: Jacobi.pa Subject: New menus To: DAToolsImplementors^.pa Cc: Jacobi Reply-to: Jacobi.pa To implementors of ChipNDale clients Pop-up menus are implemented differently, you might have seen the PopUpMenus message on CedarChest. As consequence of this, the module CDMenus is no more really supported. It will still stay available for the time of this release, but might not be loaded automatically anymore. Its usage can usually be replaced by use of CDCommandOpsExtras2; in very few cases, using CDPopUpMenus or PopUpMenus directly is appropriate. To load the old CDMenus module, you might use CDOldCDMenus.load. Getting the help messages right has turned out to be much more difficult then I thought. Your help in formulating missing or bad help messages is very appreciated. If you propose some new messages, send them to me quickly; so no other people try to makeup a message for these commands. The file ChipNDale.MenuTable contains all the messages already implemented. Christian #################################################### Date: Mon, 25 Aug 86 10:58:39 PDT From: Jacobi.pa Subject: ChipNDale improvements To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa The implementation of ChipNDale text objects is changed two classes of text objects rigid texts: (rigid texts behave like all the old texts did) flip texts: (this is the new behaviour) flip texts are displayed in a way that they are easy to read. flip texts must not be made using layers which generate mask. Client interface: CDTextsExtras A text object keeps its class on editing, font, or layer change. There is a command (in the special commands menu) to change class of text objects. Texts in previous ChipNDale versions will be converted to either class on reading in the ChipNDle file. A message will be made, and it is possible to direct the conversion. As always, old stuff will stay readable until explicitely messaged. Texts and Labels are different: Texts are objects of class text... Labels are cells (made of rectangles), which to a human look like texts Thanks to Jean-Mark Frailong for the idea Christian #################################################### Date: Thu, 7 Aug 86 16:44:33 PDT From: Jacobi.pa Subject: ChipNDale user interface To: DAToolsUsers^.pa, ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi ChipNDale user interface enhancements New module: CDEnvironment replaces CDTipEtc ChipNDale now can load packages on the fly.. New menu button in control panel for root of menus New menus (new method of specifying menus) , for drc's , for selections , for root of menus , for operators to draw certain features bringover /DATools/DATools6.1/Top/CDDesign23.df Christian #################################################### Date: Fri, 1 Aug 86 17:55:30 PDT From: Jacobi.pa Subject: CDPDPlot23 for DATools6.1 To: DAToolsUsers^.pa, ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa DF: [DATools]Top>CDPDPlot23.df Documentation: ChipNDaleToolsDoc.tioga [chapter 4]. This package replaces CDColorPDPlot23.df New features: It allows sending the plot directly to a server (Using Don's PeachPrint package). Now has a definition module. Multiple plotting requests are queued (No global state). It loads the stipples automaticaly. A special "device" which can be set up from command file. This can be used to make color separations. It allows defining an explicite scale (on the command file "device"). Start program: CDPDPlot.load and hard copy menu (H-middle) or special command file first and then the hard copy menu (H-middle) #################################################### Date: Mon, 28 Jul 86 15:29:13 PDT From: Jacobi.pa Subject: New ChipNDale features To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa Some new ChipNDale features and bug corrections New user features A new help button in control panel The output command is interruptable using ESC-DEL Reading a design: Tries to automaticaly load the technology, if it is not already loaded and the user profile allows it: ChipNDale.AutoLoad.technologyKey: TRUE Revised change layer command: {left-right or CTRL}-' works for 9 different object classes (among others rectangles, texts, splines, polygons, pins) Common text commands for CMosB and ChipNSil [actually, the old different commands still work, but the new ones are identical in both technologies and may be easyer to remember] draw text: Y-midddle edit text: Y-left change font: F-left change layer: '-left The control panel has a name field on the generator line. If this field is not "_ interactive", the U-middle command does not ask in the Terminal viewer what object should be drawn, but takes the value from the name field. [Experimental feature] try U-middle with generator: DIRECTORY name: name of any object in directory generator: IMPORT name: SSI.And.icon generator: INCLUDE name: SSI.And.icon TerminalIO viewer allows to edit inputs; it also behaves better on splits. [Fixed by using edited viewers; the actual bug in typescripts is neither understood nor fixed] Listing the objects in the directory makes a new viewer, instead of a list in the TerminalIO viewer. [You don't want the list to scroll away exactly when you need it...] New client features [Of course, absolutely no interface change outside a release] CDPanelExtras procedures to make [editable] text fields in the control panel CDCommandOpsExtras procedure to place an instance down without specifying where CDViewerInternals private module to control the reset scale command [space-ESC] CDViewer DesignOf works also for control panel viewers and nested viewers inside control panel CDSequencer the ref: REF field in CommandRec can also be initialized with a ViewerClasses.Viewer Christian #################################################### Date: Fri, 18 Jul 86 19:09:55 PDT From: Jacobi.pa Subject: last weeks hacks To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa Some of my hacks from last week: DF: [DATools]Top>TerminalIO2.df Keeps a log file TerminalIO.log; idea from Bertrand DF: [DATools]Top>Core.df New module CoreDirectory DF: [DATools]Top>CDConvertTechnologies23.df New package with redesigned (technology independent) procedure for the conversion of ChipNDale technologies. Currently only CMosA to CMosB DF: [DATools]Top>CDHierarchyMarks23.df Experimental Hack, NOT RELEASED. Allows to interactively designate full path names; use program menu. DF: [DATools]Top>CDCommon23.df New commands. Push: push into objects of funny classes work Push by name: Tries harder to find an instance; might even make one. X-left: to push into the schematic of a selected icon [Only if icon is created with new Sisyph or has right property] A-space: to view everything on all pushed levels CDSequencer.CheckAborted also checks aborts issued from command tools I have noticed that lots of people don't remember some old ChipNDale commands; try those as a refresher and remember only the ones you like: - Zoom in using mouse; ESC-space; ESC-space; ESC-space - In control panel: SHIFT-select a layer - When a pop up menu is visible, push a second mouse button down before releasing the other - /-left when you worked with funny grids before - G-left on selected wiress Christian #################################################### Date: Wed, 25 Jun 86 16:19:16 PDT From: Jacobi.pa Subject: Splines in ChipNDale To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale now knows about arbitrary lines, polygons and splines /Cyan/DATools6.1/top/cdCommon23.df For details see the documentation: /Cyan/DATools6.1/top/cdDoc23.df ChipNDale.tioga, chapter 2.15. So far you can't DRC splines, but mask generation works! Have fun Christian #################################################### From: Beretta.pa Subject: Gismo for DATools 6.1 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>Gismo.df Documentation: [DATools]Gismo>GismoDoc.tioga Maintainer: Beretta.pa Added a new command and client interface to verify the sex and surround of diffusion: Diffusion and wells for CMOS-B Verifies for every diffusion rectangle that it lies in a well of the opposite sex and with sufficient surrounding. Substrate and p-well are given the same sematics. If twin-wells are used, this utility verifies that wells of the opposite type do not overlap. Spinifex user will not need this utility unless they lay out the n-wells and the p-diffusion separately. Since it is common not to lay out the wells in a hierarchical manner, the hierarchy is flattened out completely. #################################################### Date: Thu, 5 Jun 86 10:21:38 PDT From: jacobi.pa Subject: ChipNDale (version 2.3) for DATools 6.1 To: CedarImplementors^.pa, ChipNDaleImplementors^.pa, DAToolsImplementors^.pa Cc: Jacobi Reply-to: jacobi.pa ChipNDale (version 2.3) for DATools 6.1 The other design tools may follow soon The following is interesting for design tool implementors only The switch to Cedar 6.1 does NOT include a ChipNDale release; ChipNDale version 2.3 has identical interfaces for Cedar version 6.0 and 6.1, however the implementation differs. Higher level tools might use the switch to incorporate interface changes between ChipNDale releases. Designers should switch to Cedar6.1 only with the general Cedar user community; not with the implementors crowd. No improvements or minor bug corrections on the ChipNDale versions using Cedar 6.0 will be done any more. The following tools are available in Cedar 6.1 version on Cyan: /DATools/DATools6.1/Top/... ReleasedChipNDale.df CDDesign23.df CDCommon23.df CDDoc23.df CDCmosA23.df CDCMosB23.df ChipNSil23.df CDNmos23.df Spinifex23.df CDBackgroundCheck23.df Gismo.df TerminalIO2.df GraphicsSubset.df CStitching2.df ColorMaps2.df D2Basic1.df CDChipmonkColors23.df CDCifGen23.df CDColorPDPlot23.df CDCounting23.df CDExtras23.df CDInterpressPlot23.df CDLabel23.df CDMakeProc23.df CDOverlapRemover23.df CDReadCif23.df CDRecognizer23.df CSMonitor23.df SXMaintenance23.df #################################################### Date: Mon, 31 Mar 86 15:28:40 PST From: jacobi.pa Subject: New ChipNDale features To: DAToolsUsers^.pa, ChipNDaleUsers^.pa Cc: Jacobi Reply-to: jacobi.pa New ChipNDale feature check utility This tool allows the user to check whether certain features are used or not. It could be used as a mean for subclassing technologies. It implements checking the selection for usage of particular layers, atomic objects, object sizes or calling user defined check procedures. Df file: included in CDExtras23.df Command(s): CDFeatureCheckDragon.cm and then the program menu The user can easily make other commandfiles of his own to check for different subsets of a technology. Documentation: CDFeatureCheckDoc.tioga Interactive usage changes : Text & Property menu (previously: ) : Name & Property menu (previously: other entry in Text & Property menu) : Display menu (previously ). Module is no more resident but loaded on demand only. [CDColor.load in CDExtras23.df] save: a) if used after output command: will use new file name from last output command b) Designs are (background) saved also when the control panel viewer is only viewer of design. (Note: The background save does not switch file name after an output command) enforce control panel: in viewer commands menu (previously special commands menu) selection by layer: -left or right (previously: documentation was wrong) [Edited]-flag on viewer caption. GFI war (Chipmonk) busses are loaded only when used; saves 1 gfi. [If you think you should complain about saving a single gfi your dead wrong and also not the first person trying to do that. If some more people join that crowd I won't even try to save the next gfi. Did you ever add the saved gfi's since last release? (I bet you forgot to count the removing of the color commands module implementing the display menu, mentioned only 9 lines above...)] Coherence There is a relation between being able to check what features are used and loading an object class automaticely: How do you protect yourself from using designs which cause fancy, unwanted features to be loaded! [The load mechanism is private to CDIO] Christian #################################################### PreMessage23.tioga -- Jacobi, March 18, 1986 2:44:44 pm PST ChipNDale 2.3 released. The main changes for clients are Clean up of my very long pending list. (Including name changes) Recursive properties allowed again. Expand mechanism has weakened, clearly stated (not necessarily simple) invariants. Multiprogramming possibilities for clients improved. Interactive usage is not essantialy changed. The file [Cyan]CDCommon23>doc>renames23.tioga contains list of changed names and instructions how to use the EditTool to substitute these names quickly. It can not be complete, some changes depend on context or need manual inspection. To get rid of old load files, it might be a good idea to delete CD*!*, delete CMos*!*, NMos*!*; bringover environment [To get ChangeWorkingDirectory again] and bringover ChipNDale. Do that (or use a new subdirectory). Lots of old loadfile are replaced with cm files; the old files will deceive you for sure if you don't delete them. /Cyan/DATools6.0/Top/CDDesign23.df contains pointers to other tools already converted to release 2.3. As soon as the additional tools you might need are converted to ChipNDale 2.3 you might switch to ChipNDale 2.3 at your own paste. It is not possible for me to wait with a release until all tools are ready; I do not have the necessary control, nor do I think such tight control would be good. Most of the Core related tools are already available for version 2.3. Check /Cyan/DATools6.0/Top/DAWorld.df for those tools. ChipNDale version 2.2 will be archived; any improvements or bug corrections on 2.2 made after this release will not be added to the archive. I will not delete version 2.2 without previous message to ChipNDaleUsers^.pa and DAToolsUsers^.pa. Version 2.1 will be deleted unless somebody get serious problems. Changes in interfaces This is not a complete list of changes, it contains only changes clients should know CD Comments about invariants are improved ContextFilter uses booleans instead of Imager.color; ContextColors: new concept OutlineProc uses a layer names of layers are changed commentLayer is now a technology independent layer old inside rect features are removed further proc removed; use properties uses HashTable for directory, but exported as REF ANY (module changes too often) registration of object classes is more elegant creation of Draw-Records is more elegant parent object classes, for object oriented tricks... CDBottomUp (CDExtras23.df) Handle has more fields for client This module should be used more! It allows analysis tools to monitor whether cells or subcells where changed since last analysis, and to do the analysis of subcells in the right order. CDCells SetSimplificationTreshhold: new proc (simplifyOn is real; speed up) SetBorder: new proc (new field drawBorder: BOOL) CDCleanUp comments improved procedures can have a root object new proc RemoveProperties CDCommandOps procedures return Rope; dont write directly anymore LambdaRope: from CDExtras InstRope: renamed BoundingBox: from CDExtras CallWithResource can wait until resource is freed CDColors Imager colors are handled identical to bricks CDDirectory ExpandProcs AnotherProcs redesigned. The actual expansion or copy works exactly as before, but the procedures return to the caller what he might do with the result. (If a procedure caches the result, the caller now knows that he must not change the result...) There are new higher level procedures to convert or copy immutable returned objects into mutable state. creation of objectclasses in directory is more elegant implementation does no more use LOOPHOLE CDDirectoryOps procedures have better names CDExtras procedures moved to proper places ToRope, ToLambda, BoundingBox --> CDCommandOps RemoveProperties --> CDCleanUp PushedCellName --> CDCells CDInstances Transform: Removed SplitPointed: Removed Copy: New Composed: New DeComposed: New ComposedList: New name DeComposedList: New name TransformList removed CDIOExtras included into CDIO CDLayers new procedure Kind. (new procedure MakePaint) CDMarkObjects removed; use CDSymbolicObjects CDPanelExtras included into CDPanel CDPinObjects removed; use CDSymbolicObjects CDPrivate New low level features to implement enumeration of (mutable) designs. Necessary, so CDSequencer can implement enumeration of designs to be periodically saved without importing CDViewers. CDProperties use module PropertyLists instead of Properties. A new module PropertyLists is made instead to change Properties to avoid version conflicts; Properties will no more be supported. property list will not be reordered; vanila user can now safely enumerate properties output and copy without monitor lock (no reorder to prevent): properties can have (recursive) CD-types with property lists again procedures renamed; new names are easier to remember properties registration can set a boolean field which causes the property to be removed on edits. CDPropertyTools Should be used by all tools which set up parameters by setting global properties. This module allows to undo such a setup without exactly knowing the set up. CDTextExtraction replaces CDPropertyExtraction; (Same features but better parameters). CDSequencer Is now the only way to serialize calls no private data fields visible anymore procedures Quit and AbortDesignsCommand are renamed new procedure to initialize a designs queue (So designs created by patchwork are immutable unless dialogue opened) CDSimpleRules new MaxWidth feature (for limited size cuts) CDSymbolicObjects direction has a none constant. The direction constants have a certain order (Not changed); if you define direction constants of your own, try to use the same order unless you have a reason not to. (The selected order makes computations with CD.Orientation easy). CDViewer CreateViewer has field to tell whether design should be opened for queued (interactive) commands. ShowArrow, RemoveArrow removed; use module CDVArrow instead CSMonitor (CSMonitor23.df) Monitor request returns the viewer Redesplay feature CStitching (CStitching2.df) replaces CornerStitching. Main difference: the new definition module is such that both implementations could use it. (The changed module has a different name, so you could still use the old one; don't) Better statement of what operations are legal when Renaming; better and shorter. ... en replaced by eN: for emphasis on asymetry. Some functional changes CD Uses less GFI's (>8 implementation modules merged, removed or changed to use less gfi's) Displaying cells is faster (again) The viewer lock problem on the color display is improved; not locking has been reported yet. InterpressPlot (CDInterpressPlot23.df) now draws borders Hierachical property extraction (CDExtras23.df) New package. I'm not sure whether property extraction should be hierarchical, but this is a good test of CDBottomUp. Background design rule checker (CDBackgroundCheck23.df) semi new The old CDColors commandtool command is removed from basic ChipNDale and included into CDExtras23.df. -- Christian #################################################### Date: Tue, 4 Mar 86 13:50:47 PST From: Beretta.pa Subject: SoS22 for DATools 6.0 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>SoS22.df Documentation: [DATools]SoS22>SoSDoc.tioga Maintainer: Beretta.pa a) Increased robustness against semantic changes in upstream packages. The heuristic enhancement of the violation reporting is now on by default. b) Optimized dynamic memory allocation & deallocation and procedure calls in inner loops [made memory usage more local]. Running time decreased appromaxitely by a factor 5X (more precisely this affects a term i(i+1) of the time complexity, for i = number of cell instances). c) Abandoned the catholic data flow in favor of a geometric one, which allows exact pruning. Expected value of the average running time decreased appromaxitely (at least) by a factor 30X. Client programs may require major rework. Enjoy. #################################################### Date: Wed, 19 Feb 86 11:50:09 PST From: Beretta.pa Subject: Gismo for DATools 6.0 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>Gismo22.df Documentation: [DATools]Gismo22>GismoDoc.tioga Maintainer: Beretta.pa Added a flat design rule checker for via flatness. Accepts only the CMOS-B technology. To use interactively execute the Gismo.Load file, select the cells to be verified, select the entry "via flatness" in the ChipNDale program menu. To use by programme look at ViaFlatness.mesa. #################################################### Date: Tue, 18 Feb 86 16:11:48 PST From: Jacobi.pa Subject: hack attack To: DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa hack attack /datools/datools6.0/top/BackgroundCheck22.df load program BackgroundCheck.load start program use program menu Simple flat distance checks in background. For speed reasons the program is restricted to the displayed area, and is disabled if the displayed area is too large. Not part of release 2.2: Internal interfaces are not stable Christian #################################################### Date: Tue, 28 Jan 86 12:24:55 PST From: Jacobi.pa Subject: CMosB: new cmos technology To: ChipNDaleUsers^.pa, DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa CMosB: new CMos technology for the Dragon project is now released. Design rules and atomic objects according to the Dragon design rule document. Additional Comment layer for comments or schematic diagrams. Texts should be used in comment layer only, even if generated by programs. Commands <0-middle> draw text in comment layer <0-left> replace selected text in comment layer <0> select comment layer for drawing change font To set control panel numbers to fractions of lambda: CTRL-right: divide by 2 CTRL-left: multiply by 2 Use the names and property menu to extract properties from texts. (In Helvetica tioga fonts, not italic) There is a conversion program for conversion from CMosA to CMosB; but you have to set up how conversion of certain objects (which are different in CMosA and CMosB) should happen. [See the load file ConvertCMosB.load] CMosA remains valid. Transition time for previous usage of un-released versions: Designs made with previous (not released!) versions of CMosB contain features which can NOT be read in with the released version of CMosB. For one week the released version will be able to read in and convert those features from some un-released versions. Ater this week the conversion code will be removed (and NOT archived) [Don't worry: as long as you used only released features of released technologies, your designs since version 0.0 can all be converted to the newest version; Those conversion programs ARE archived] Christian #################################################### Date: Mon, 13 Jan 86 17:22:01 PST From: Jacobi.pa Subject: ChipNDale 2.2; some new features To: ChipNDaleUsers^.pa, DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale 2.2; some new features New modules CDViewerBase This module allows independent implementation of different atoms usable by ViewerOps.GetViewer or ViewerOps.SetViewer on ChipNDale viewers It is used to implement setting grid and ticks by programs. CDBottomUp A module which allows easy implementation of bottom up calls which cache the results. (Cached results are flushed when a cell is edited). It can be used by extractors and design rule checkers. (In CDExtras22.df) CDPropertyTools Property features useful to pass parameters to simple, non reentrant tools. Allows removing all the properties set up by previous set ups, without really knowing what atoms or layers the previous set up really used. CDPropertyExtraction A module which allows setting properties by extracting text objects. This makes it possible to set the properties in a way always visible to the designer. Useful in ChipNSil [and CMosB]. To allow it to nicely coexist with other approaches, this is restricted to non italic Helvetica fonts. New commands Restore View: : name and property pop up menu has lot's of new entries Other Features Labels: can be generated now also from spline fonts. The hack to convert all texts to labels (good for pd plots) is now built in to CDLabel . Recognizer: Uses less VM. [Works also with CMosB]. Christian #################################################### Date: Mon, 13 Jan 86 15:13:31 PST From: Beretta.pa Subject: Spinifex22 for DATools 6.0 To: DAToolsUsers^.pa Cc: DesignTool Coordinator Reply-to: Beretta.pa DF: [DATools]Top>Spinifex22.df Maintainer: Beretta.pa a) The command CMosSpinifex has been replaced with the two commands CMosASpinifex and CMosBSpinifex to conform with the ChipNDale naming scheme of the two CMos technologies. b) In CMosB, the separation rule for transistor gates is 2|l, while the source/drain diffusion beyond gate is 3l. Since Spinifex must be able to detect transistors generated by mistake, and since at the moment when the design rules are checked Spinifex cannot know the origin (other than its node) of a piece of material, for each pair of transistors placed at minimal distance a number (2 per corner) of violations "Poly over Diffusion" will be displayed. I hope you will be able to live with this. c) The December 1985 versions of Corner Stitching contain an error which causes Spinifex not to be able to find any design rule violations at all. Please make sure the date of CornerStitchingImpl.bcd is > 10-Jan-86 19:02:09 PST. #################################################### Date: Tue, 24 Dec 85 15:35:09 PST From: Jacobi.pa Subject: ColorMaps for DATools 6.0 To: ChipNDaleUsers^.pa, DAToolsUsers^.pa Reply-to: Jacobi.pa DF: [DATools]Top>ColorMaps2.df A new package to read or write the contents of the color map to or from files. ChipNDale CMos and NMos do not load the color map tools any more, but read their color maps from files. Since ColorMaps is independent of ChipNDale, the color map entries can now be included in checkpoints. ChipNDale's interactive color map tools can still be used; however they are loaded on demand only and their use is typically reduced to the creation of new color map files. The ColorMaps module opens a button which allows interactive selection of registerd colormap files. It further implements the command tool commands ColorMap filename to read in a color map from a file. OutputColorMap filename to write the current color map onto a file (independent how the color map was created). Merry Christmas Christian #################################################### Date: Thu, 19 Dec 85 19:41:19 PST From: Jacobi.pa Subject: ChipNDale PD plots over night To: ChipNDaleUsers^.pa, Diebert Cc: Jacobi Reply-to: Jacobi.pa Todays hack attack on plotting... If you want to make a plot over night you can start the plot command and then run the commandfile CDSendPlotToBitBucket.cm (Stored in [DATools]top>CDColorPDPlot22.df). With some luck, and if your machine isn't power'd down too early, this commandfile will send the bits to the device as soon as they are ready... Edit the command file yourself for your favorite plotter and have fun Christian #################################################### Date: Mon, 18 Nov 85 19:35:20 PST From: Beretta.pa Subject: Gismo for DATools6.0 To: DAToolsUsers^.pa Cc: DATools Coordinator Reply-to: Beretta.pa DF: [DATools]Top>Gismo22.df Maintainer: Beretta.pa A new start for a small collection of small interactive design rule checkers verifying single rules. Use the load file Gismo.Load and use the ChipNDale program menu to apply them interactively. Currently available: Well tester. This utility enumerates all wells in a set of selected cells. Any well that contains p-diffusion and has not a proper contact is flagged to be in error. #################################################### Date: Tue, 12 Nov 85 12:42:34 PST From: Jacobi.pa Subject: New modules for ChipNDale 2.2 To: DAToolsImplementors^.pa Cc: Jacobi Reply-to: Jacobi.pa New modules for ChipNDale 2.2 CDPanelExtras Allows to specify lambda based int's in the control-panel (This allows implementation of fractional lambda step moves [ctrl-right-mouse in panel]) CDSymbolicObjects A unifying module implementing pins, alignment marks and (new) segments. pins: 2 dimensional segments: 1 dimensional marks: 0 dimensional These objects can be used to define interfaces. The new module replaces the modules CDPinObjects and CDMarkObjects. The two replaced modules will disappear with version 2.3 (with automatic conversion of objects to the new module). (user interface: draw empty pins to get segments or marks [;-middle]) 3 GFI's saved by collapsing some command modules (if counted after removal of replaced modules) ChipNSil colors will not be initialized if ChipNSil is not the first technology started (saves 30 seconds). New CDSilBW load file which does not even loads the color module (1 more GFI saved for Lissy). Thanks to Jeff and Praedip Christian #################################################### Date: Mon, 4 Nov 85 17:48:35 PST From: Jacobi.pa Subject: ChipNDale 2.2 released To: ChipNDaleUsers^.pa, ChipNDaleDiscussion^.pa, DAToolsUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale 2.2 released. Global structure changes Tioga level structure introduced. Most definition modules commented. You wouldn't believe it, but I have removed more than I have introduced. 40 words in mds are saved (20 at some speed cost, 20 for free just by carefull checking) 2 GFI's are saved by mergin modules. (Well, I will not merge modules which do not belong together) Use of the DATools directory. The main df file is now called CDCommon22; All ChipNDale df file names have three parts: "CD", the main name, and the version number. CornerStitching is made independant of ChipNDale. A module D2Base serves to define basic data structures common to CornerStitching and ChipNDale. TerminalIO is version numbered. (ChipNDale 2.2 requires TerminalIO 2.0, CornerStitching 1.0 and D2Base 1.0) The documentation df file is version numbered; the actual documentation file names do not contain version numbers anymore. Definition modules changed CD lambda removed, lambda field included into the technology. This will allow increasing lambda if it proves necessary for second sourcing. ObjectClass.reservedForCDEnvironment removed. The module was CDEnvironment was removed earlier. InterestSize new proc. Vanilla procedure, but used fairly often. ContextFilter simpler (saves memory) DrawInformation specialFonts, checkPriority boolean flags; (cleaner) Properties renamed to PropList (resolves name conflict with new module Properties) CDAtomicObjects size is interest rect size. Designers creating designs by program will be thankful. CDColors Allows specifying of context filters. Good for ChipNSil. CDDefaultProcs CDDefaultProcsExtras merged in. CDDrawQueue replaces CDDraw; is simpler (and [not measurable] faster) CDExtras ToLambda has lambda parameter. SelectedBox new procedure. CDImports All names and comments beautyfied Load now has a design-name (previous: design) Not giving the user access to the cached design allows to share it with CDRemote. CreateImport if necessary loads the design first... If all you want are the defaults, CreateImport the only procedure of this module you need. CDIO UseWorkingDirectory removed; Cedar does not allow this without dirty trick ReadDesign has new working directory parameter CDIOExtras New module; all silly simple procedures; but they were coded inline in zillion places before CDLayers new module; replaces CDDefaults and CDDefaultsExtras. May now be used by arbitrary clients without invalidating the control panel. CDMenus comments made understandable new procedure ImplementMenuEntryCommand for conveniance CDObjectProcs removed; replace it with CDProperties. This module was not used so often that it could not as well be implemented using properties. CDOrient Get rid of forgotten 45... CDPanel setting and querrying the default layer is removed; use CDLayers directly panel get the changes if other source cause a change in default layer width lambda from technology CDProperties PropRef: TYPE = REF Properties; --must never be NIL; this allows to put properties on more types, but to have a smaller (faster) select statement. Important types like Objects and Instances still have direct properties. Properties: use module Properties instead of Atom; uses substantially less memory and is a little bit faster, at cost of more expensive enumeration of properties. Properties MUST NOT be enumerated without CDProperties's monitor lock. If you want to enumerate properties in a vanilla program, make a copy first and enumerate the copy. (Otherwise a GetProp from a concurrent process fools your enumeration; [ChipNDale actually doesn't care]) Properties can not contain objects which contain Properties. Would wedge when written to files. CDRemote replaces CDGenerateRemote; easier to use CDTexts comments removed, (I didn't remember if they were correct or wrong) MakeFont is only procedure to create a font CDUtil usefull stuff for client generation of chipndale objects; replaces old modules CDSimpleCells and CDSimpleCells2 (without changes) CDValue new procedure StoreConditional. This allows implementation of arbitrary initializations in an atomic way without introducing monitors. This is specially useful for programs which are already monitored, recursive monitor entry for initialization will not wedge. Registration has new registrationKey parameter (like CDProperties always had) CMosObjects size is interest rect size CornerStitching Beautified; The definition module now documents legal conditions to call procedures Enumerations have split into two procedures with less parameters each. ChangeTile no more inline, but works for every tile. TerminalIO WriteF, WriteF1, WriteRopes, TOS new procedures time outs for RequestSelection and Confirm Confirm replaces UserSaysYes TerminalIOExtras: RequestRope with timeout. This procedure has been introduced into an "Extras" module, because the correctness of its implementation depends on assumptions which have been checked by experiments. Further tools changed Interpress plot Font substitution for all scales; different format of font substitution file. Thanks to Don. PD plot Supports c150. Special colors for ChipNSil-stick diagrams on c150 Supports c400. All the coordinate transform between design and device is rewritten. Removed some rounding errors. Label generation New hack to make a flat cell with labels matching all texts in tioga fonts. Handy for plotting. Label generation is still restricted to Tioga fonts. Cursor tracking Dandelions use different, faster cursor for drawing vectors. CMos The commands use "CMosA" instead of "CMos", this allows to distinguish it from CMosB which will be released soon. The following df files are available in the release now: /DATools/DATools6.0/Top/ReleasedChipNDale.df --Read comments in this df file before applying bringover /DATools/DATools6.0/Top/CDDesign22.df /DATools/DATools6.0/Top/CDDoc22.df /DATools/DATools6.0/Top/CDCommon22.df /DATools/DATools6.0/Top/CDCMos22.df /DATools/DATools6.0/Top/CDNMos22.df /DATools/DATools6.0/Top/ChipNSil22.df /DATools/DATools6.0/Top/CDColorPDPlot22.df /DATools/DATools6.0/Top/CDInterPressPlot22.df /DATools/DATools6.0/Top/CSMonitor22.df /DATools/DATools6.0/Top/CDExtras22.df /DATools/DATools6.0/Top/CDLabel22.df /DATools/DATools6.0/Top/CDCifGen22.df /DATools/DATools6.0/Top/CDMakeProc22.df /DATools/DATools6.0/Top/CDOverlapRemover22.df /DATools/DATools6.0/Top/CDRecognizer22.df /DATools/DATools6.0/Top/D2Basic1.df /DATools/DATools6.0/Top/CornerStitching1.df /DATools/DATools6.0/Top/GraphicsSubset.df /DATools/DATools6.0/Top/TerminalIO2.df Browsing shows you some more tools, but released and beeing available does not mean the same thing! As soon as the additional tools you might need are converted to ChipNDale 2.2 you might switch to ChipNDale 2.2 at your own paste. It is not possible for me to wait with a release until all tools are ready; I do not have the necessary control, nor do I think such tight control would be good. Please make sure that all files with version numbers < 2.0 are converted. (Files written with 2.1 are safe for some more time to go, but I will soon remove the code which converts from older file versions.) ChipNDale version 2.1 will be archived; any improvements or bug corrections on 2.1 made after this release will not be added to the archive. I will not delete version 2.1 without previous message to ChipNDaleUsers^.pa unless the next release already happened. Enjoy Christian #################################################### Date: Thu, 10 Oct 85 09:26:34 PDT From: jacobi.pa Subject: ChipNDale now on DATools6.0 directory To: ChipNDaleUsers^.pa, ChipNDaleDiscussion^.pa, DAToolsUsers^.pa Cc: jacobi Reply-to: jacobi.pa ChipNDale and it friends for ChipNDale version 2.1 have been moved to the new directory. There are no changes, this is not a new release but only a new directory structure. The directory will be used as a private development directory. Do not rely on you files not beeing deleted there. sits on Cyan but is refered as [DATools]. Use Iago to add the pseudoserver [DATools]. For a quick test, the PseudoServerAdd command will also be sufficient. All old members of ChipNDaleUsers^.pa have been included into the new dl DAToolsUsers^.pa. If you need ChipNDale only as illustrator and not as design tool you might consider to remove yourself from DAToolsUsers^.pa. The ChipNDale umbrella df files are To get version 2.1 /DATools/DATools6.0/Top/CDDesign21.df To get the current release, what ever it is (currently also 2.1). Don't use this df file without reading its comments first. /DATools/DATools6.0/Top/ReleasedChipNDale.df TerminalIO is now available as package independent of ChipNDale; to be compatible with ChipNDale version 2.1 you have to use TerminalIO version 1.0 Christian #################################################### Date: Fri, 30 Aug 85 19:07:43 PDT From: jacobi.pa Subject: ChipNDale improvements To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: jacobi.pa ChipNDale improvements It might be time to bringover again bringover /cedar/chipndale/6.0/top/cddesign21 ChipNSil Texts are displayed faster Rounding bugs corrected; texts now stay inside its bounding box Method how to solve the problem "** size of text wrong, probably different font.." Command file CDGetFonts.cm to get fonts CD CDRemote is improved module which will replace CDGenerateRemote CDInterpressPlot Versatec plotter works Other minor bug corrections Christian #################################################### Date: Fri, 23 Aug 85 13:12:51 PDT From: Beretta.pa Subject: Patient died under surgery To: ChipNDaleUsers^.pa Reply-to: Beretta.pa While Spinifex was languishing in the intensive care station of the VLSI CAD-Tool Group, resting between a two reanimation interventions, his friends decided that his life was no longer worthwhile. Euthanasia, the supreme nurse, was called who turned off the oxygen valves. The body will rest on /Cedar/ChipNDale/6.0/Top/Spinifex21, on the side of interimCore in the ChipNDale subdirectory. The surgery applied to the late Spinifex since the last medical bulletin include: ~ Corrected handling of well geometry. ~ Added the processing of a property $Crystal for transistors in order to test Crystal. ~ Names of NMos transistors for Thyme have been corrected. ~ Spinifex output for Rosemary is uniformly expressed in l units. ~ An address fault errors when determining ports has been fixed. ~ A confusion between coordinates relative to the bounding box and to the interest rect of a cell has been solved. ~ Fixed several bugs around Quad-CIF trees. ~ Added the processing of a property $Export for wires in order to force a wire in a root cell to be a port. ~ Reimplemented cleanly the usage of Red-Black Trees. ~ Rewrote the analysis of transistors. ~ Added the extraction of Core data structures. An independent extraction of Core data structures is being implemented for CMos by Bertrand. Other birth anouncements will be published in this DL. Giordano #################################################### Date: Fri, 16 Aug 85 10:52:22 PDT From: jacobi.pa Subject: ChipNDale grid command To: ChipNDaleUsers^.pa Cc: jacobi Reply-to: jacobi.pa I got mad about drawing schematics... You get a new little hack. Move to grid (Use the Special Commands Menu) Move all the selected objects to the nearest grid point Christian #################################################### Date: 9 Aug 85 11:39:57 PDT From: gbier.pa Subject: Another new tool To: ChipNdaleUsers^.pa Cc: gbier Reply-to: gbier.pa DF File: /Cedar/ChipNDale/6.0/top/CDOverlapRemover21.df Start program: CMosCifOverlap Execute: Use the Program menu CMosCifOverlap finds all wires of type ndif that lie completely on top of wires of type pdif and removes the ndif wire from the design. Its most probable use is after reading in a design using XeroxCmosCif. Currently when reading in a design using XeroxCmosCif, all rects of type pdif in CIF are given a ChipNDale representation of both an ndif and pdif wire. CMosCifOverlap can be used to remove the ndif. OverlapRemover is a general tool that takes two layers, a keepLayer and a throwAwayLayer, and whenever a wire of type throwAwayLayer is found that lies completely on keepLayer, then the throwAwaLayer wire is thrown away. An example of how to register the layers can be found in /Cedar/ChipNDale/6.0/CDOverlapRemover21/CMosCifOverlapImpl.mesa Several people have asked me about the convenience of the cornerstitching implementation. I think that this program is a good (simple!) example of using cornerstitching. If interested in such take a look at /Cedar/ChipNDale/6.0/CDOverlapRemover21/OverlapRemoverImpl.mesa --George #################################################### Date: Mon, 5 Aug 85 10:45:26 PDT From: gbier.pa Subject: A New Tool To: ChipNDaleUsers^.pa Cc: gbier Reply-to: gbier.pa A New Tool: Recognizer DF File: /Cedar/ChipNDale/6.0/top/CDRecognizer21.df Start program: CMosRecognizer NMosRecognizer Execute: Use the Program menu Recognizer will replace drawn transistors and contacts with the corresponding ChipNDale primitive. It is particularly useful for ReadCif designs since ReadCif does not know about ChipNDale transistors etc. From the program menu two choices for invocation of the command exist: "Recognize All" which will traverse the hiearchy of the design finding transistors throughout the whole design and "Recognize Top" which will only search the top level of the design. Any comments or suggestions (but no complaints) direct to GBier.pa Enjoy --George #################################################### Date: 1 Aug 85 14:35:22 PDT From: serlet.pa Subject: Alps21 Released To: ChipNDaleUsers^.pa Cc: serlet Reply-to: serlet.pa DF file: [Cedar]6.0>Top>Alps21.df User Manual: [Cedar]6.0>Alps21>PWAlpsDoc.tioga How it works: [Cedar]6.0>Alps21>AlpsDoc.tioga (still rough) PWAlps is a PLA-like generator, looking a lot like PWPLA for its input, but generating a completely different layout. Bertrand #################################################### Date: 29 Jul 85 15:53:45 PDT From: jacobi.pa Subject: ChipNDale's make proc command To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: jacobi.pa Generating Program Text DF File: /Cedar/ChipNDale/6.0/Top/CDMakeProc21.DF Start program: CDMakeProc Commands: Use the program menu and select "make text" The command generates a file (and a viewer) with a program text. This program will generate the selected object... Of course you have to compile and run the program first. There is no guarantee that the generated program will run with any other ChipNDale version than the one used to generate it. It might be more work to transfer source text to a newer ChipNDale version, than to transfer the .dale file. Not all ChipNDale features are handled for the program; Give it a try, look if the command generates a program powerful enough, or, if not, you have bad luck. I do not intend to do any AI to get an optimal program... Have fun Christian #################################################### Date: 12 Jul 85 19:30:18 PDT From: jacobi.pa Subject: ChipNDale 2.1 released To: ChipNDaleUsers^.pa, ChipNDaleDiscussion^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale 2.1 released. Very difficult naming issue resolved. We can't go on for ever with naming ChipNDale versions 0.xx. ChipNDale is no more so experimental to bear a number starting with 0. But what's a good number? 1.0 is missleading because it sounds so important. I really don't know which version deserves this great change in numbering. The new version (internally named 0.21 before) is a nice improvment, but its difference with the predecessor version is not much bigger than for any other version. 1.2: simply skipping the 1.0... how boring 21 instead a 0.21? It corresponds more with the truth but there is not enough structure.. 6.0 or 6.1 in association with Cedar 6; this would create confusion later because the ChipNDale version number would increase faster as the Cedar version number. 2.1: its a decimal left shift... It would also be a fine number for normal people who start counting with one... (furthermore, I don't have to change any subdirectory names...) Release means: Definition modules will not be recompiled; This does not mean that all tools are already converted to the new release. (Spinifex is not yet ready) Version 0.19 will be destroyed in about a week (without archive). For deleting version 0.20 I will wait until 3 seconds after all the Dragon designers did their conversion to Cedar 6 and an archive is made. Please, after switching to version 2.1 of ChipNDale, convert all designs to this version. To convert a file: read it in and write it out. It will automatically be written in the newest file format version. Version 2.2 might no more be able to read in files written with any ChipNDale version 0.x. Principal changes Great renaming ObPtr -> Object ApplicationPtr -> Instance ... A file exist which helps you setting up the edit-tool (temporarily stored on /Cedar/ChipNDale/6.0/CD21/Replace.tioga) Port to Cedar 6.0 Graphics replaced by Imager CDConditions, CDEnvironment removed and replaced by Object generation environment (Objects must not depend on environment anymore) ChipNDale is now substantially simpler!!! (but not smaller) Definition module changes CDX is split: IncludeOb, RemoveApp goes into CDCells SimpleGetOrigin, SimpleSetOrigin goes into new private module all the rest stays in CDX; this module is no more loaded automaticaly with ChipNDale. Tell me any use; otherwise it might disappear. CDGenerate, CDGenerateBackdoor new modules implementing a new object generating environment CDGenerateImports, CDGenerateRemote modules using the generating environment CDCells new procedure IsPushedIn, stuff moved from CDX changed procedure for push CDTexts re-done, using Imager fonts CDDefaultProcs new internal module implementing default procedures CDDirectory Include substantially faster! CDDirectoryOps new module Procedures to clean up the directory, Rename objects... CDExtras procedures MergeIn, MergeInObjects removed; I think they caused more troubles than they are worth. new procedures ToRope, GetTechnology CDColors Some new bits per pixel modes. 1 b/p in color is now different from bw. (This in preparation for some changes in the Cedar color device handling) CD saveRect mechanism removed procedure HitRect with object instead of instance new procedure to enumerate technologies CDBasics procedure IsPushedIn removed CDInstances new procedure HitInstance CDProperties Copy has purpose parameter... Defaults right for most purpose's CDSequencer new procedure QuitCommand CDMarks now easier to use, harder to missuse CDViewHighlight New module; allows implementation of independent highlight mechanisms; Thought for HighlightNode and similar uses. CDSimpleRules Improved from RoutingTechnology. Implemented for nmos and cmos New object generation environment Registration mechanism to implement patchwork or other module generators. Calling generators from programs is possible. Supports cacheing of generated objects. Indirect calls (Generator may be called recursively). Calls from command interpreter. Intercepting calls at each level in the hierarchy of a generated object. Multiple instances (name spaces) of generators. Each project (chip) may have a generator name space of its own. In addition, there are several tool name spaces. Different Generators built on top of the new registration mechanism. User defined... Use of directory. Include from other design. Import from other design. (Auto-regenerated on top of user defined). Supporting the possibility to call generators from programs and NOT supporting any hidden environment informations it will lead to: Any new, great generation feature will be callable from the generator. But since there will be no generator magic, the program will as easy be callable using standard Cedar imports. As a consequence every generator will be able to call every other generator, (Even if made by a programmer who didn't care). Related modules PopUpMenu 24 bit mode, position parameter... /Cedar/ChipNDale/6.0/top/GraphicsSubset.df New package to simulate the graphics clipper of Cedar5.2. /Cedar/ChipNDale/6.0/top/CDExtras21.df New df file contains stuff which might be useful but is not bound into ChipNDale Contains module(s): CDSimpleCells: new, utility for object generators CDFeedBack: moved from cd21.df CDX: moved from cd21.df Black and white Versatec plot Not yet ported to ChipNDale 2.1; I don't know yet how to handle stipples with the Imager /Cedar/ChipNDale/6.0/Top/CDInterpressPlot21.df New package; Black and white only, no stipples. Good for ChipNSil. Chipmonk compatibility Busses on Chipmonk read Is no more an object class, but simply cells are created Colors The 4 bit per pixel color mode is no more compatible with Chipmonk's colors. CMos Data structure for PWell simmilar to NWell (but not commands) Atomic objects are now implemented using CDAtomicObs Writing a Chipmonk file is not (yet?) available for 0.21 NMos all the (n, p) well layers and features removed Commands and behavior Viewing Drawing stops immediately when the scale changes, new scheduling of viewer painting Transform to cell command no more necessary; removed Debug command (^-middle) Improved, allows inclusion of object... Push command Can do an expand if necesary Save command new, gets also an entry on panel ChipNSil fonts try the difference between TiogaFonts and PressFonts; they work both User profile has scaling entry (use for PressFonts). Generate command U-middle: Generate an object U-Space: Generator menu. (Set up generators... but NOT generate object) Selected generator environment (name space) is displayed on panel. The following tools are available now: /Cedar/ChipNDale/6.0/Top/CDDesign21.df /Cedar/ChipNDale/6.0/Top/CD21.df /Cedar/ChipNDale/6.0/Top/CDCMos21.df /Cedar/ChipNDale/6.0/Top/CDNMos21.df /Cedar/ChipNDale/6.0/Top/Chipnsil21.df /Cedar/ChipNDale/6.0/Top/CDColorPDPlot21.df /Cedar/ChipNDale/6.0/Top/CDPressPlot21.df /Cedar/ChipNDale/6.0/Top/CDInterPressPlot21.df /Cedar/ChipNDale/6.0/Top/CSMonitor21.df /Cedar/ChipNDale/6.0/Top/CDExtras21.df /Cedar/ChipNDale/6.0/Top/CDLabel21.df /Cedar/ChipNDale/6.0/Top/GraphicsSubset.df /Cedar/ChipNDale/6.0/Top/CDCifGen21.df /Cedar/ChipNDale/6.0/Top/CDChipmonkColors21.df /Cedar/ChipNDale/6.0/Top/TerminalIO.df Enjoy Christian #################################################### Date: 3 Jul 85 14:38:13 PDT From: serlet.pa Subject: PadFrame router Released To: Chipndaleusers^.pa Cc: serlet Reply-to: serlet.pa DF file: [indigo]5.2>top>Onion20.df Onion is a simple PadFrame router. I have a copy of the paper from which I stole the algorithm, for those who are interested. The interface (Onion.mesa) is not very clean, just enough for Louis', Rick' and Pradeep' chips; don't hesitate to bug me about it. To start it, just type "Onion". #################################################### Date: 1 Jul 85 16:30:13 PDT From: Jacobi.pa Subject: ChipNDale, cmos and mask.. To: ChipNDaleUsers^ Cc: Jacobi Reply-to: Jacobi.pa ChipNDale, cmos and masks or CIF Warning: Whoever wants to create masks for cmos should be aware that well contacts should not be close to any other diffusion. (Problem because of the shrink of the nwell for CIF generation). Contact me or Ed Christian #################################################### Date: 14 Jun 85 15:41:42 PDT From: serlet.pa Subject: Alps20 Released To: ChipNDaleUsers^.pa, ChipndaleDiscussion^.pa Reply-to: Bertrand Cc: Serlet DF file: [indigo]5.2>top>Alps20.df Documentation: [indigo]5.2>Alps20>PWAlpsDoc.tioga PWAlps is a PLA-like generator, looking a lot like PWPLA for its input, but generating a completely different layout. Documentation is still rough, it is only a brief manual how to use PWAlps, but very soon a paper on Alps principle itself should come. This version should be able to generate big Alps structures. Knowing how to use PWPLA is a good way for starting use of PWAlps. For further problems come and see me. Bertrand #################################################### Date: 10 Jun 85 15:34:12 PDT From: serlet.pa Subject: Extras for CD and PW code writers To: ChipNDaleUsers^.pa, ChipndaleDiscussion^.pa Reply-to: Bertrand Cc: Serlet, ChipndaleImplementors^.pa In /indigo/chipndale/5.2/top/CDE20.df (CDE like CDExtras), 3 small interfaces: - CDExpr (already used by PWPLA and Alps) for reading interpreted parameters - CDAbuts (low-weight abuts internally used by PW20) - PWPins for manipulating easily pins (it is conceptually a complement to CDPinObjects, part of CD) I maintain those packages. Bertrand #################################################### Date: 14 May 85 17:55:54 PDT From: jacobi.pa Subject: ChipNDale Chipmonk compatibility and Colors To: ChipNDaleUsers^.pa Cc: jacobi Reply-to: jacobi.pa ChipNDale Chipmonk compatibility and Colors ChipNDale does no more load the Chipmonk compatibility package by default. When you want to read or write Chipmonk files you have to load the appropriate program. See the documentation file ChipndaleTools20.tioga. The 4 bit per pixel mode is no more loaded by default; If you want 4 bit per pixel colors, you have to load it yourself. (See the documentation) The cmos 8 bit per pixel tool is improved and a button on the screen top allows you to reset cmos 8 bit colors completely. Christian #################################################### Date: 9 May 85 11:50:02 PDT From: Jacobi.pa Subject: ChipNDale measure command To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa New measure command I tried to draw a rectangle of exact length 630 lambda yesterday !?@3#... Now I do it the following way: I set an arrow mark at the beginning (A-middle). Using the statistic command (CTRL-middle quick) I search for the position of the endpoint. Then I draw the rectangle backwards from the endpoint to the arrow mark. Finally I remove the arrow mark with (ESC-A) and check if the size of the rectangle is right (again statistic command). Measure, statistic, grid, ticks, control panel now use all the same length units... (lambda's) Christian #################################################### Date: 8 May 85 18:02:46 PDT From: Gasbarro.pa Subject: ReadCif for Chipndale20 To: ChipndaleUsers^.pa Reply-To: Gasbarro ReadCif, the cif file reader for Chipndale is now available for Chipndale20. New features include the ability to read non-rectilinear polygons, wires and flashes. Chipndale20 allows these features to be displayed and plotted (they don't DRC). New technology files for XeroxNmosCif, XeroxCmosCif, MosisCmosCif, and StanfordCmosCif. Full documentation on [Indigo]Documentation>ChipndaleTools20.tioga. --Jim #################################################### Date: 7 May 85 18:51:13 PDT From: serlet.pa Subject: PW20 and PWPLA20 released To: ChipNDaleUsers^.pa, ChipndaleDiscussion^.pa Reply-to: Bertrand Cc: Serlet, Monier, ChipndaleImplementors^.pa Both packages are in the standard place, /indigo/chipndale/5.2/top/PW20.df and /indigo/chipndale/5.2/top/PWPLA20.df While Louis is concentrating on the EU, until July, I'll assume the maintenance of these two packages. They have been adapted for CD20. For the user, it probably means no difference, other than slightly different messages on CD typescript. The big internal difference is the use of the Expand mechanism and the definition of a new class of CD objects (Abuts). Bertrand #################################################### Date: 7 May 85 15:17:16 PDT From: Jacobi.pa Subject: ChipNDale 0.20 released To: ChipNDaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi, ChipndaleImplementors^.pa Reply-to: Jacobi.pa ChipNDale 0.20 Release There is no backward compatibility from version 0.20 to Version 0.19. Use /indigo/chipndale/5.2/top/CDDesign20.df to get to the version 0.20 df files. General changes Drawing into a Graphics context has new mechanism. Constructing cells by program is much faster. (Speeds up Patchwork, reading a design from a file...) Level is renamed to Layer. Please don't complain, I have changed hundreds of files. New expand mechanism. (Arbitrary angled Polygons can be plotted on the color versatec plotter; However, with Cedar 6, this might be no more possible; try to avoid this features until we know if it can be supported or not) Pins and Marks are called symbolic objects; drawing of symbolic objects is made optional. I will not support Parquet and its application anymore, since Patchwork is available. Changes in definition modules CD InterestRect new feature insideRect feature removed oldInsideRect feature temporary introduced; will disappear with the next release again. New convention: Objects must either not have children or not call the context draw proc ObjectsProcs description: ROPE describeProc with application symbolic: BOOL DrawInformation environment: BOOL symbolics: BOOL CDAtomicObjects is a new mechanism which will be used to replace the implementation of contacts and transistors in a future release; This mechanism is used already for the implementation of cmos buried contacts. D2Basic renamed from old PlanarBaseTypes CDCells IsCell: PROC [ob: CD.ObPtr] RETURNS [BOOL] PushInCellPointed removed IncludeApplication, RemoveApplication removed; use CDX instead CDDirectory EnumerateChildObjects has default for x Rename has new fiddlename parameter Include, Remove and Rename will call back class implementor new Expand mechanism CDSimpleOps renamed from old CDCommands FlushDeletedCache: PROC [design: CD.Design]; DeletePointed, CopyPointed, TransformPointed removed CDCommandOps IsPushedIn: PROC [d: CD.Design] RETURNS [BOOL] CornerStitching Tesselation has client data and stopFlag CDImports HasUnloadedImports: PROC [d: CD.Design] RETURNS [BOOL] CDMarks Checks for concurrency errors included CDMark module removed; it is no more possible to implement a Chipmonk-like tip table CDEnvironment SomeChildPropagates: PROC [ob: CD.ObPtr] RETURNS [BOOL] CDConditions Commands of this modules are disabled (unless your a priviledged user). CDConditions might disapear in a future version. CDIO MakeShortName: PROC [design: CD.Design] RETURNS [name: Rope.ROPE]; CDPinObjects The old, never released, pin package on /ivy/jacobi/top/CDPins19.DF will get absolutely no support anymore. The df file is already deleted. CDPolygons IsPolygon: PROC [ob: CD.ObPtr] RETURNS [BOOL]; CDRepetitions IsRepetition: PROC [ob: CD.ObPtr] RETURNS [BOOL]; CreateRepetitionCell removed; use the Expand proc instead CDInterestrects Module removed; it is now the object class implementor who provides the interest-rect feature CDSequencer type Command changed procedure ExecuteCommand changed new procedure ExecuteProc CDViewer CDViewerExtras merged in procedure DesignOf changed new procedure VisibleRect CDX The origin feature simplified: Object class implementor has to completely provide implementation of SetOrigin himself if the class is supposed to have immutable non default origins. InludeRelative --> IncludeOb New procedure RemoveApp CDPanel Panels can be changed at run time. New buttons and labels. CDTexts Texts have the origin set as specifyed by the font. CDCreateLabels CharCells have the origin set as specifyed by the font. Changes in user interface Show Instance-names command (temporary on I-middle) ChipNSil: Fonts selected with menu Pop up menus for: Draw mode Simplification Ticks Grid DF files Df files which belong to ChipNDale but are not completely obvious have a prefix CD in their names. (Still cmos20 but CDCifGen20). (renamed: ColorPDPlot*, CornerStitching*, cif*, vplot*, PressPlot*, FlatCif*, Label*) The /Indigo/ChipNDale/ directory There is far more stuff stored on /Indigo/ChipNDale/ than what actually is inside my maintenance umbrella! I can not maintain other peoples stuff. The fact that something is stored on /Indigo/ChipNDale/ does not mean I have even looked at it. Stuff without version number, with a wrong version number, or with an outdated version number, will be deleted. /Indigo/ChipNDale/ is not a back up storage. Not be supported as separate df files anymore ShowErrors: built into cd20 CmosColors: built into cmos20 Available df files [indigo]5.2>top>cdDesign20.df [indigo]5.2>top>cd20.df [indigo]5.2>top>nmos20.df [indigo]5.2>top>cmos20.df [indigo]5.2>top>chipnsil20.df [indigo]5.2>top>Spinifex20.df [indigo]5.2>top>CDVPlot20.df [indigo]5.2>top>CDColorPDPlot20.df [indigo]5.2>top>CDCornerStitching20.df [indigo]5.2>top>CDPressPlot20.df [indigo]5.2>top>CDCifGen20.df [indigo]5.2>top>CDFlatCif20.df [indigo]5.2>top>CDLabel20.df [indigo]5.2>top>CSMonitor20.df [indigo]5.2>top>CDCounting20.df [indigo]5.2>top>cddoc.df [indigo]5.2>top>PopUpMenu.df [indigo]5.2>top>TerminalIO.df ask the authors CDPropTool, EbesMask, MakeCP, MakePLA, Parquet, PW, PWPLA, ReadCif, VersatecChipNSilHack Christian #################################################### Date: 26 Apr 85 09:42:05 PST From: McCreight.pa Subject: CDPropTool19 To: ChipNDaleUsers^.pa Cc: McCreight Reply-to: McCreight.pa /Indigo/ChipNDale/5.2/Top/CDPropTool19.df contains an amusing little tool designed to help those of you who have gotten tired of setting ChipNDale properties in the standard way. After starting ChipNDale, you start CDPropTool by typing "CDPropTool" to the CommandTool. The tool is pretty self-explanatory; it gives some feedback to the ChipNDale terminal window. If you push a SetPropOnSelected screen button, the active property-value pair is the one in the record viewer below. If you push another screen button, the active property-value pair is shown in the button's label. If you use the left mouse button, the tool sets the active property-value pair on all selected applications; if you middle-button, the tool just copies the property-value on the button to the record viewer (so, for example, you can edit the value). Button labels, except for the first one, are replaced in least-recently-used order. The tool also puts a (time-varying) line in all ChipNDale pop-up menus relating to properties. Ed #################################################### Date: 16 Apr 85 10:46:59 PST From: monier.pa Subject: VersatecChipnsilHack19 To: ChipndaleUsers^.pa Reply-to: monier.pa If you use ChipnSil and want to plot your design on the Versatec, check /Indigo/Chipndale/5.2/VersatecChipnsilHack19.df It is a quick fix that will allow you to produce the largest schematics/floorplan/block diagrams ever seen in this hemisphere. There is even a doc. -- Louis PS: If you don't use ChipnSil, you should. #################################################### Date: 12 Mar 85 19:05:22 PST From: Gasbarro.pa Subject: ReadCif for Chipndale To: ChipndaleUsers^.pa Reply-To: Gasbarro I have recently completed a Cif input parser for Chipndale and am looking for alpha users. If you are interested, try bringing over /Ivy/Gasbarro/Top/ReadCif19.df to ///Commands. There is an sample technology file included in the df called StanfordCmosCif.cm which you can use as a prototype. The layer names used in your Cif file will probably differ. Running this command file will register the command "ReadCif" with the commander. To read in a Cif file type ReadCif to the CommandTool. ReadCif will ask you for Cif units per lambda in the Chipndale terminal window and report any errors there. ReadCif attempts to preserve cell names and hierarchy. It does not detect overlapping rectangles, such as poly over dif, and turn them into Chipndale primatives, nor does it preserve signal names. Report any problems to me. -- Jim #################################################### Date: 8 Mar 85 19:53:04 PST From: shand.pa Subject: New Spinifex Version. To: ChipNDaleDiscussion^.pa Cc: shand Reply-to: shand.pa New Spinifex version. This new version fixes a number of bugs and treats floating n-wells differently, and allows logo to be ignored for DRC. Faster It should be much faster on large designs as a result of fixing a bug which caused it to improperly prune some region searches when processing cell interaction. As a result of this bug fix Spinifex was able to process Rick Barth's 277988 transistor CrossRAM in 50 minutes on 4MW dorado. Previously this design caused Spinifex to exceed MDS limits after several hours of processing. Extraction bug fixed A serious bug which sometimes caused connections between arrayed subcells to be ignored has been fixed. More Liberal requirements on n-well connections. The Correct in isolation requirement has been relaxed somewhat in the case of n-well contacts. Previously every well containing PDiff in every cell had to be connected to some nWellContact. Now the rule is as follows: The topmost cell of the particular spinifex invocation must conform to the old requirement For each cell any well in a direct subcell of that cell which is not connected, must be connected to some well in the parent cell. The assumption is that eventually in some higher cell the well connection will be made, if some intermediate cell do something with the unconnected well Spinifex will complain. In the example I have run this new rule dramatically reduce the number of reports of Floating n-well. In only one case was a simple fix required (by introducing some well into an intermediate cell). Ignoring LOGOs Soon Spinifex users will be able to override normal spinifex processing of some cells and provide a substitute user defined extraction to be used instead, in the meantime Spinifex users can use this facility to ignore parts of their design which cause spurious error reports (such as logos). If a ChipNDale cell has a ROPE property called $SpinifexCircuitDescription attached to it that cell and all its children will be ignored. For compatibility with future versions the ROPE attached to this property should be "()" (that is open parenthesis followed by close parenthesis). Whilst for now the will cause the offending cell to act as if it is not there at all, in the final version checks will be made to ensure that that cell does not interact with other parts of the design. Mark and Giordano -------------------------------------- Date: 11 Mar 85 03:36:46 PST From: shand.pa Subject: More Spinifex Features. To: ChipNDaleDiscussion^.pa Cc: shand Reply-to: shand.pa Treat this as an addendum to my message of last Friday evening. Further Features in latest version of Spinifex. Summary: changes to the way n-well errors are reported, elimination of some spurious nodes from extracted output, location of nodes provided in extracted output and command to highlight a node based of (x y) location (from extracted output). n-Well Error Reporting. In my last message I described the new n-Well connection rules that Spinifex implements. Now I have also changed the reporting of such errors. Previously Spinifex tried to placed error material over the entire well when reporting such errors, now it just chooses some point on the well and places a small marker there. In addition, for the case of a well connected to more than one other node, each of these nodes are flagged in a similar manner to the well. Clean Extracted Output Previously Spinifex would sometimes introduce nodes into the interface of a cell's extracted output which were near to rather than actually connected to material in other cells. Such nodes have now been eliminated from cell interfaces. Node Location Information in Extracted Output Spinifex now includes location information for nodes in Extracted Output. For thyme these are comments similar to the existing ALIAS comments, for rosemary they are NodeLocHint attributes in node descriptions. New node highlighting command It is now possible to highlight a node by specifying its (x y) co-ordinates numerically. This new command is accessed through the Program-Menu (same as is used for Spinifex itself). The format expected is two space separated numbers so that it is easy to copy node coordinates directly from Spinifex output files when using this command. -------------------------------------- Giordano & Mark #################################################### Date: 8 Mar 85 16:18:54 PST From: Jacobi.pa Subject: How to remove errors from ChipNDale designs To: ChipNDaleDiscussion^.pa Cc: Jacobi Reply-to: Jacobi.pa How to remove errors from ChipNDale designs With next bringover you get a spinifex version which handles errors differently. Spinifex will not recognize errors of old Spinifex versions as beeing made by itself and will not remove them. Solution 1) interactive, for each cell with errors Make the error layer beeing the default layer: middle mouse button down while ESC down and the cursor is pointing to an error rectangle in current cell Select all of current default layer: left (or right) mouse button down while ESC and SHIFT are down Delete the selection..... Solution 2) use the commandtool or an interpreter: _ &d _ CDViewer.FindDesign["name of design", FALSE] _ CDErrors.RemoveAllMessages[&d, NIL, NIL] _ CDOps.DoTheDelayedRedraws[&d] Christian #################################################### Date: 4 Mar 85 10:47:45 PST From: Jacobi.pa Subject: Labels for ChipNDale To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa New module to generate Labels for ChipNDale DF file: /Indigo/ChipNDale/5.2/top/Label19.df Documentation: ChipNDaleTools19.tioga This module differs substantially from the 0.18 version. Christian #################################################### Date: 1 Mar 85 09:55:22 PST From: Jacobi.pa Subject: New ChipNDale module CDErrors To: ChipNDaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa New module CDErrors allows inclusion and removing of error messages into ChipNDale objects of any type. #################################################### Date: 19 Feb 85 16:56:06 PST From: Jacobi.pa Subject: New ChipNDale commands To: ChipNDaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi Reply-to: Jacobi.pa New ChipNDale commands to find error messages Select and show the next error in this cell: next-{left or right or CTRL} or use the special commands pop up menu space-s [This (old) module is now built in] Push into a cell by name: use the cell pop up menu space-c Christian #################################################### Date: 18 Jan 85 17:50:51 PST From: Jacobi.pa Subject: ChipNDale Colors (and plots) To: ChipNDaleUsers^.pa, ChipNDaleDiscussion^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale Colors on the Screen Now both NMos and CMos have 8 bit per pixel colors. The user profile entry ChipNDale.ColorStartBits: 4 or ChipNDale.ColorStartBits: 8 tells ChipNDale which bit-per-pixel mode to start; only this mode will be set up according to the other user profile options. ChipNDale Color Plots The plot package is improved such that plots can be made on the Versatec color plotter Inkjet printer (MrCoffee) (Thankyou, SDD folks) Puffin (Lilac) Use the new df-file /indigo/chipndale/5.2/top/ColorPDPlot19.df commandiles for stipple initialization VersatecNMos.cm VersatecCMos.cm LilacCMos.cm ... The Inkjet printer can use the same stipples as the Versatec color plotter does, there is no separate commandfile needed. John Dillon can instruct you on how to use MrCoffee. Be patient with the device, it is not real fast. Lilac does not yet has reasonable stipples! Sorry, I had no time to make them already now. The stipples for the Versatec plotter do not look good on Lilac. But while the versatec is down, you might still be happy to have at least some silly replacement. Command H-middle is the new Hardcopy command. Draw a rectangle and select the device in the menu. Check on terminal if reasonable stipples have been loaded. enjoi, Christian #################################################### Date: 18 Jan 85 18:32:43 PST From: Beretta.pa Subject: Chipnsil To: ChipndaleUsers^.pa Reply-to: Beretta.pa Cedar Sil models can be converted to Chipndale designs and edited with Chipnsil. The program CDSilConversionImpl registers the command CDReadSil with the CommandTool. This command converts a *.sil file into a *.dale file. Sil macros are automatically converted to cells and imported, when referenced. The Sil colors are mapped into Chipndale levels. Chipnsil's user interface is very close to that of Chipndale. Usage - Bring over /Indigo/Chipndale/5.2/Top/Chipnsil19 - @Chipnsil - @CDSil - CDReadSil The following entries in the user profile are recommended: Chipndale.chipnsil.Font0: "Helvetica10" Chipndale.chipnsil.Font1: "Helvetica10I" Chipndale.chipnsil.Font2: "Helvetica10B" Chipndale.chipnsil.Font3: "Helvetica7" Chipndale.chipnsil.Font4: "Helvetica7I" Chipndale.chipnsil.Font5: "Helvetica7B" Chipndale.chipnsil.Font6: "Template64" Chipndale.chipnsil.Font7: "Gates32" Chipndale.chipnsil.Library5: "///Chipnsil/SilLib5.dale" Chipndale.chipnsil.Library6: "///Chipnsil/SilLib6.dale" Chipndale.chipnsil.Library7: "///Chipnsil/SilLib7.dale" Chipndale.chipnsil.Library8: "///Chipnsil/SilLib8.dale" Chipndale.chipnsil.Library9: "///Chipnsil/SilLib9.dale" Sil.Font0: Helvetica10 Sil.Font1: Helvetica7 Sil.Font2: Template64 Sil.Font3: Gates32 Sil.Font5: ///sil/Sil.lb5 Sil.Font6: ///sil/Sil.lb6 Sil.Font7: ///sil/Sil.lb7 Sil.Font8: ///sil/Sil.lb8 Sil.Font9: ///sil/Voicelb9.sil Known errors and restrictions - The production of PD files is very slow - The Sil `background' attribute is ignored - Colors are not displayed in color (therefore only the layer `neutral' should be used for the moment) - Like Alto Sil, Chipnsil uses Strike fonts, while Cedar Sil uses Spline fonts. Font information is always converted correctly, but text may be displayed using an alternate font. - Strings of macros as they occour in the synoptic tables are not aligned correctly. Converting Sil files is a one-way operation. There are no plans for a program to convert Chipnsil files into Sil files. Have fun Giordano #################################################### Date: 17 Jan 85 15:42:03 PST From: Jacobi.pa Subject: ChipNDale 0.19 TIP Table To: ChipndaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa A new tip table for ChipNDale 0.19 The new tiptable is a little bit less orthogonal than the old was, however the frequent commands are simpler and you will far less invoke the wrong commands by using a neighbour key. The explanation do not mention the mouse actions, which should be obvious to users of the old tip table. The new tiptable is a mixture of the old tiptable, Louis tip table and some brand new ideas from Praedip and me. The new tip table is used for default immediately. The old tiptable is still works but will NOT be maintained. Check your user profile if you dont get the new tiptable. Whats different The frequent commands move: use CTRL instead of Q copy: use SHIFT instead of TAB-Q stretch: use TAB instead of CTRL push: use C instead of V (All cell commands use C) pop: use SHIFT C instead of V middle mouse button Deselect: use ESC instead of SHIFT Area select: no key necessary Commands which do not depend upon a mouse position can also be issued with CTRL instead of a mouse button. Some more tidbits; (which you don't need to learn now) connecty move: use TAB-CTRL instead of TAB-SHIFT; warning: Using the CTRL as speed up for some commands caused the following trouble: TAB-CTRL ASWZ: is that step connecty move or a set up for step stretch? The conflict is resolved reasonable (find out yourself), but it is now non orthogonal. Expand cell: can only be done with a pop up menu Split wire: use \ instead of B Touching area select: swat key (guess how is Touching area DE select ?) Undelete: ESC-D insted D middle Show all: TAB-Space Show selected: CTRL-Space Show a rectangle on OTHER viewer: Space Shift left instead of space right Select all: Space right. Draw the other viewers: V-middle There are some more changes which you will find natural and use without explanation! Do you find out which ? Summary In Summary, if you keep the following meanings for keys in hour head, you will be able to remember most of the commands: ESC: NOT TAB: Stretch CTRL: Move, Execute CTRL-TAB: Stretchy move SHIFT: COPY, Chose the other thing (P+ N-, other Viewer) Space: Viewer, Menu WASZ: Directions ERT: Transforms D: Delete QWE: Transistor, Pullup (nmos) Mouse left: deselct everything else, select pointed Mouse right: keep selection, add pointed Mouse middle: draw #################################################### Date: 3 Jan 85 17:36:37 PST From: Jacobi.pa Subject: ChipNDale 0.19 released To: ChipNDaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi, ChipndaleImplementors^.pa Reply-to: Jacobi.pa ChipNDale 0.19 released ChipNDale 0.19 contains only modest improvements in definitions to keep track of older implementation changes; It had to be done now, because I want the public and my private ChipNDale version to get into synch again. Tiptable mechanism change Layered tiptables allow division of tiptables in personalized layers, technology specific and the general default tiptable. Special tools can provide a tiptable fragment to be included using the user profile. The user profile option is now identical to Tiogas tip table user profile: Chipndale.CMos.TIP: Default or Chipndale.CMos.TIP: listOfUserTipTables Default or Chipndale.CMos.TIP: listOfUserTipTables or Chipndale.CMos.TIP: /indigo/chipndale/5.2//cmos19/chipndalecmos.tip /indigo/chipndale/5.2//cd19//chipndale.tip Note that 1) they key has a new name; this prevents from usage of old tiptables without really intending it. (But: old tip-tables still work) 2) you must specify full path names. (Because the user profile is querried with different working directories at different times...; This is NOT a ChipNDale problem) Idea to layer tiptables from Pradeep: As I got no feedback at all which features caused people to use different tiptables we make it possible to have layered tiptables. At some time I will brouse at peoples personalized tiptables additions. I then will no more get the glorious feedback that an other Tiptable is used, but will see exactly which feature is disabled and what is added. Please: Do not simply replace the standard tiptable if having your extras in a layered tiptable also works. Changes in the ChipNDale base CD new mechanism to keep track of nesting not need for CONS on nested objects any more makes drawing faster DrawRecord has no more a pushLevel field (I think nobody used it); the new mechanism draws conditional objects also correct if you are pushed in. Cells key field removed new field in the objectprocs for the benefit of CDX CDApplications I-O appendices cleaned: I -> interest; O -> outer; IX inside; clients please use only I and O, NOT IX. BoundingRect with I or O HighPosI, HighPosO removed CDConditions changed to take use of CDEnvironment. CDDirectory key features removed (now must use properties) EnumerateChildren relaxed CDIO: keep is set to 2 CDEnvironment: new interface CDMenus: Menus can be removed, they don't appear double CDOps PROC LayerName (the old inline coding was used only 2 times in chipndale!, but 5 times in Spinifex) CDOrient: All orientations get a constant MapPosition removed new procedure MapPoint (is DIFFERENT from MapPosition) MapRect, ComposeOrient are now faster CDProperties ownerKey field removed property records gets property list for additional procedures... CDRepetition: exports Index procedure CDRopeViewer New module lifted and improved from Parquet CDTipEtc New layered tiptables (No definition module change) TokenIO EncodingError is now SIGNAL instead ERROR; this allows me to do dirty tricks from the debugger if somebodys design is screwed up and needs to be saved. New features which will be put into the ChipNDales base with Cedar 5.3 CDFeedBack new module; courtesy of Mike Spreitzer; needs special command to be loaded CDOrientExtras new module; needs special command to be loaded Changes on ChipNDale related programs CornerStitching marginal clean up to be easer to read; Spinifex marginal clean up to be easer to read. net naming improvements by Mike Spreitzer Parquet use of CDMenus instead of TilerMenu use of CDRopeViewer instead of RopeViewer Need volunteer: to unify my and Parquet's alignment-marks; my alignment-marks are not that much different, but only a clean up anyway. Need volunteer: to lift the expression reading stuff, this might be useful stuff for other applications. Temporary changes in release strategy Spinifex Parquet are not guaranteed to not change public definition modules while the lifetime of Chipndale 0.19 Christian #################################################### Date: 27 Nov 84 12:07:41 PST From: jacobi.pa Subject: Updates on Chipndale 0.18 To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi Reply-to: Jacobi.pa Updates on Chipndale 0.18 New commands - New name and properties menu: this replaces most of the old commands handling names (of the design, an object, a signalname...) and properties. It also contains commands for the comment feature. Comment feature: objects, instances and designs may have comments. Do not exagerate comments on objects and instances; they could eat up your virtual memory and time for IO. =--{Middle} Change (redefine) the vector of a repetition. The rect-program menu (P-SHIFT-middle) has an entry to draw an interestrect. On selection, a cell now outlines its interestrect, not it's real border. (An interestrect is used to define how the object should abut, [once in future, the tiler should understand interestrects]) Real changes no public definition module has changed The repositioning of changed objects is completetely reprogrammed. The new modules used for this should still be considered private until the next release. (The following procedures and procedure variables of CDDirectory should no more be used: RepositionAnObject, ReplaceDirectChilds, adjustItself, repositionElements, computeBounds, replaceDirectChilds; but these procedures are quite private to chipndale and not yet used by any client program stored on [indigo]* ) New module CDRopeViewer Christian #################################################### Date: 18 Dec 84 13:08:00 PST From: Spreitzer.pa Subject: New Spinifex18 To: ChipNDaleUsers^.pa Reply-To: The Name Server I've made a few changes to Spinfex, mostly concerning the naming convention. Since the Spinifex documentation doesn't even touch on the issue, there's no change in the document. I'll describe the changes here. I'd appreciate comments, especially on whether the two switches described below should be fixed at what particular value. Naming The interesting change deals with the way nets inherit names from their connections. A net is an electrical node that results from the analysis of a cell definition (considering the definitions of its components, but none of its instances). For example, if cell type A contains three rectangles (r1, r2, and r3) that do not touch each other, and an instance (named b) of cell type B, and nothing else, and if cell type B contains nothing but one rectangle rb, and in A b.rb touches r1 and r2 but not r3, we get the following output: cell type B contains one net, corresponding to rb, and cell type A contains two nets, one corresponding to r1 and r2, and the other corresponding to r3. Nets may be contrasted to another concept, which we'll call signals here. A signal is like an electrical node on the silicon; it is all of what is eventually connected. A net is the part of a signal that is localized to a cell definition. Both kinds of Spinifex output (Thyme and Structural) name nets, not signals. Spinifex recognizes that nets may have multiple names. The Thyme style output allows only one name; Spinifex chooses one to use, and puts in a comment giving the others. If the designer gives names directly to a net (with the $SignalName property on an object comprising the net), those are all the names the net will have. If the designer gives no names directly to a net, it inherits names from its connections. Each net is, in general, connected to nets in subcells. An otherwise unnamed net will try to inherit the names of the subcell nets it is connected to. If a name collision occurs (i.e., two different nets (in the same parent, of course) are both trying to have a certain name), they try instead using the subcell net name qualified with the subcell instance name. The qualified name is instanceName.subnetName. If there is still a name collision, the names are disambiguated by appending -1, -2, &etc. to the colliding nets. For purposes of naming (and too many other things as well), transistors are not considered subcells; they do not contribute anything to the naming issue. The rules in this paragraph are what's different from the old Spinifex; it didn't try qualifying the names. If a designer gives no names directly to a net, and it is not connected to anything, it will get a simply generated name (e.g., n42). For an example of qualified name inheritence, suppose cell type A contains a net, and an instance (named bOfA) of cell type B, and that cell type B contains a net named nb, and that the net in A is connected to the net nb of bOfA. Spinifex will try the following names in order for the net in A: nb, bOfA.nb, bOfA.nb-I (for some I). Other changes in naming: A repetition continues to be treated as a cell with N subcells. They used to get named C1, C2, ... CN. They are now named 0, 1, ... N-1. Generated names use the general name collision avoidance algorithm. All otherwise unnamed nets try the name n, all otherwise unnamed transistors try the name Q, and all otherwise unnamed subcells try the name C. When there are name collisions, they are removed by appending numbers to the colliding names. The new name inheritence rule may allow a net to inherit a lot of names. There is a switch you can throw to cut down on the number of names. Observe that names can have different "quality". Dots, and generated components, decrease the quality of a name. By setting SpinifexOutput.shortestNamesOnly to TRUE, only the names of the highest available quality are used. Geometric information Spinifex will now output some summary geometric information in the Structural style: bounding boxes and instantiation transformations. See Geometry.Tioga in [Indigo]Compare0.2>Compare.DF for details. This can be disabled by setting SpinifexOutput.outputGeometricInfo to FALSE. Enjoy, Mike #################################################### Date: 6 Nov 84 10:17:36 PST From: jacobi.pa Subject: Chipndale release 0.18 To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi, ChipndaleImplementors^.pa Reply-to: jacobi.pa Chipndale 0.18 released Chipndale 0.18 contains lots of internal changes made in long time. However, only minor adaptions of client programs are necessary. Chipndale is now several pages of code shorter. Since really everything has been updated, version 0.17 will be deleted soon. DF file for designers /indigo/chipndale/5.2/top/cddesign.df On bringover, the public option on cddesign18, cddesign now is important; with all you now get everything, which might be interesting for programers, but not for designers. /indigo/chipndale/5.2/top/spinifex18.df ... DF file for programmers /indigo/chipndale/5.2/top/cd18.df /indigo/chipndale/5.2/top/cmos18.df ... DF file for documentation /indigo/chipndale/5.2/top/CDDoc.df Release strategy change Chipndale has grown too much, and it is no more possible for us to maintain everything. Every author of some Chipndale tool is now asked too maintain his tool himself. The fact that some file is stored on /indigo/chipndale/ does NOT mean it is maintained automatically. Users of certain hacks are supposed to verify themselves whether the hack will be supported or not. The following stuff is inside the chipndale-implementors support umbrella: /indigo/chipndale/5.2/top/cddesignc.df cdc.df, cmosc.df, nmosc.df CornerStitchingc.df, spinifexc.df (soon) For all the other stuff, no maintenance agreements exist yet. Authors will get pre-release messages few days in advance of the release. New Hacks CMos Color hack A nice color hack for cmos has been written by Gerome and Louis; bringover -P /indigo/chipndale/5.2/top/cmoscolors18.df -- cmos now is supposed to be loaded already run CMosColors no further support yet Press plot hack New press plot package (use on RocknRoll or Stinger). Plots all layers in black. (Also plots texts of chipnsil) bringover -P /indigo/chipndale/5.2/top/PressPlot18.df -- chipndale is supposed to be loaded already CDPressPlot -- will load the program; use to make a plot no further support yet Designer visible changes Stretchy step move commands: step move+SHIFT. Changed user profile options for selection of colors (maps and patterns). New user profile options to put viewers on the color display. Not loaded commands do no more appear in the menus. Control panel: changing values with CTRL or SHIFT down shows a menu. Control panel: button to create/split a design viewer. stops drawing of viewer (commands are exchanged) abort command, (programmers (cif, plot,... :! please check for aborts) Scaling and moving the view works concurrently with other commands! executes programs which need a rectangular input area. There is no way back from version 0.18 to 0.17. The chipmonk compatible tiptable is no more available (code is removed). User profile suggestions (for chipmonk compatible colors, ...) Chipndale.FirstViewerOnColor: TRUE Chipndale.ColorStartLeft: TRUE Chipndale.ColorStartBits: 4 Chipndale.ChipmonkColorMapNum: 2 Chipndale.ChipmonkColorPatternNum: 3 Definitions changes CD: DeviceDrawRef: worldClip gets comment as interrestrect, device might be different gets new procedure to draw background if pushed background level match is removed; the exotic stretchy move feature moved to an exotic module.. hasChildren renamed to inDirectory; CDBasics: new module; will replace CDInline, new proc: PushedIn CDColors: new module, makes color definitions non private CDCommandOps: new proc to redraw an application, to handle resources (cif, mask, plot) CDDefaults: new module CDDirectory: CDDirectoryExtras, CDExtras2 merged in; proc's another, replacedirectchild... CDEvents: $Abort: new event CDExtras: DecomposeRect, AppendExt removed CDInline: Will be discarded in next version CDInterestRects: new module, supports a rectangle which constitutes a designer specified border CDIO: CDIOExtras merged in (working directories, file name handling) CDMarkObjects: new module, not yet compatible with the tiler CDMarks: marks must be used only on objects which are in the directory CDMenus: new menu module, to allow dynamic inclusions in menus CDObjectProcs: type included CDOps: DelayedRedraw gets comment about efficiency CDOrient: new representation of orientation; give up 45 degrees. CDStretchyExtras: new module, to allow object implementors handling of stretchy move CDTechnology: removed, replaced by CDDefaults, CDTipEtc CDTipEtc: new module CDX: new module, supports an origin which does no more move Implementation changes ChipmonkPatterns: new module ChipmonkColorMap: new module CDVPrivate: color definition stuff removed, to module CDColors All the chipmonk compatible color handling is removed from basic Chipndale and can be loaded as new, separate module. Use of interest rect for initial interactive placement of objects. (Use of inner rect for placement of objects in files.) Christian #################################################### Date: 20 Sep 84 16:12:03 PDT From: jacobi.pa Subject: Chipndale update on version 0.17 To: ChipndaleUsers^.pa Cc: jacobi Reply-to: jacobi.pa Chipndale update on version 0.17 No public interface changed; Improved private inteface to register colors; (New colors are coming soon; ask Gerome or Louis). (Colors outside of pushed cell can now be different) Copy of object - definitions; Partial import; (To support the tiler) Provision of immutable object relative coordinates; interest rects. (To support the router). Actually there are quite more changes; a new release could be advantageous soon, but I would not have time to upgrade the clients before vacation. Since soon I will go back home for some weeks, there will be no support; Some users should switch immediately to the new update, so that bug claims can be handled before I leave. In case of unexpected problems: I will not delete the pre-update version of chipndale until I'm back. Old, pre-update df files /indigo/chipndale/5.2/top/cd17.df!53 13-Sep-84 12:03:14 PDT /indigo/chipndale/5.2/top/nmos17.df!15 11-Sep-84 12:02:42 PDT /indigo/chipndale/5.2/top/cmos17.df!42 11-Sep-84 12:02:11 PDT Christian #################################################### Date: 6 Sep 84 13:02:36 PDT From: jacobi.pa Subject: Chipndale's internal tiptable format has changed To: ChipndaleUsers^.pa Cc: ChipndaleDiscussion^.pa Reply-to: jacobi.pa Chipndale's internal tiptable format has changed ----------------------------------------------- If you use the default tiptable: No visible change. If you use private tiptables: At cost of speed, chipndale checks now the cursor coordinates to be legal. Until now Chipndale used to rely that coordinates were initialized and always inside of the viewer; because of this, bugy tiptables frequently caused chipndale to wedge. Nobody blamed the tiptable.... You can now register your own favorite cursors (However, only by using the private interface CDVPrivate [private interfaces can change without new release or message]). The tiptable mechanism for setting or querrying cursors is changed. Old tiptables will no more work. Look at the default tiptables for an example. Christian #################################################### Date: 22 Aug 84 18:49:39 PDT From: Jacobi.pa Subject: Chipndale 0.17 improvements Chipndale 0.17 improvements No changes in existing interfaces Imports: it is possible to include an import lateron. (use directory menu) New interface module CDImports allows client access of imports. Conditional objects: It is now possible to allow or dis-allow propagation of environment information trough cells. Default is changed to no propagation. Use conditional objects only after a chat with me, it is still somewhat like committing error 33. () for propagation menu) Tip table changes butting contact is <3-middle> buried contact is <1-2-middle> metal-metal2 contact is <6-middle> #################################################### -- CDEvents-Registration17.txt -- Ch. Jacobi September 16, 1983 2:11 pm -- last edited by Christian Jacobi August 23, 1984 12:57:18 pm PDT EventProc: TYPE = PROC [event: REF, design: CD.Design, x: REF] RETURNS [dont: BOOL_FALSE]; If not specified else: event, design are initialized, x is NIL $CreateNewDesign $RenameDesign $RegisterTechnology (design=NIL, x=Technology) $AfterCellReplacement (x=Object [cell] ) $BeforeCellReplacement (x=Object [cell] ) $AfterPush $AfterPop $WriteTechnologyPrivate [listens to dont, allows writing technology private information; may be used only with permission of technology, because of order on file!!!] $ReadTechnologyPrivate [listens to dont, allows reading back technology private information; may be used only with permission of technology, because of order on file!!!] $AfterChange (x=Object) [is not called if one of $AfterCellReplacement or $AfterPop is called; must be handled fast] $AfterAdjustItSelf (x=Object) #################################################### Chipndale Version 0.17 Definition Modules CD FetchObjectProcs return result no more readonly new mechanism for partially drawing objects old procedure drawMe renamed to be quickDrawMe procedure drawMe implements the new mechanism new boolean (with mechanism) to keep track of changes CDInline new Comments about: normalization, inclusive or exclusive border CDIO WriteDesign: new "quiet" parameter (used by background saver) new procedures ReadProperties, WriteProperties so clients can implement property lists on their own objects, even if they are implemented with properties CDApplications new procedure names to mirror taking either the inner or the outside rects more orthogonal CDCommandOps new module with handy stuff to implement commands CDSequencer new mechanism to check and set an abort flag new mechanism to allow specification of queueing method CMos now uses 5 lambda nwell. If you did the conversion with cd16 as messaged twice, you will get no trouble reading the files with cd17. If not ... it's not my business anymore, but then you better wait with using cd17 until after. Implementations new module CDEmergencyHandling some new commands for the sake of the tip table fans; mainly more orthogonal there is a background process saving designs, sometimes it even works. User Interface If wedged, a design can still be saved by From keyboard: using "SHIFT-SHIFT-SWAT" From a worldswap or remote debugger: call "_ %CDEmergencyHandling.SaveAll[]" but if it interfeares with the background saving process, you clobber both files irreversibly since SHIFT-SHIFT-SWAT saves the design without respecting locks. Color plot: bringover of CDDesign automatically bring's over the plot df file. New or changed commands Stretch selected is changed to use also a selected object as model. View al of top pushlevel. View al selected. Pop from cell flushes automatically if chipndale thinks the cell is not changed. New pop commands to avoid pop up menu. New create cell command without name input. Reselect the pointed object. Conventions I've been asked about name syntax; here it is: Designers should use (but Chipndale does NOT enforce) Mesa identifiers; case matters. (On write back to chipmonk case information is lost.) Other ROPE's may be used internally by Chipndale. If you use mesa identifiers you'l be not surprised; whenever chipndale changes or creates names automatically, these names do NOT have the syntax of Mesa identifiers; so no conflicts can occur. Using non Mesa identifiers usually puts some semantic meaning to a name (e.g: object has been created automatically and therefore may also be deleted automatically...) However, designers can create arbitrary names without clobbering chipndale. #################################################### -- /indigo/chipndale/documentation/cd16.tioga -- Ch. Jacobi June 7, 1984 4:48:40 pm PDT Chipndale Version 0.16 Release Runs on Cedar 5.2 DF files /indigo/chipndale/5.2/top/ cddoc.df DOCUMENTATION cddesign.df FOR DESIGNERS cd16.df current technology independent release, used by clients and implementors nmos16.df current nmos release, used by clients and implementors cmos16.df ... chipnsil16.df vplot16.df colorvplot16.df cornerstitching16.df New TIP Table (now for cmos only) exists, is not yet default All commands (except input of names, text) can be typed without removing the right hand from the mouse. Easy to remember commands: Discard the meaning of the letter, but associate function with row and column position of key. PROBLEM: The reason I made the new tiptable was: I would like to write the documentation only once, for the final tiptable. Therefore: Since this tiptable is a try and not yet final at all, I will NOT write documentation for it now. I will not delete the old tiptable, unless the new one gets at least some documentation. However, the df file cddesign might bringover only one tiptable. Interfaces CDMarks improved comments CDDialogue replaced by CDViewer CDViewer New procedures RemoveArrow, ShowArrow to handle the Arrow New procedure FindDesign CDConditions renaming of parameters to make more sense for designers, at cost of clients CDExtras New procedures MergeIn, MergeInObjects serves copying objects from one design to another. procedures Cellize, PopToTopLevel used internally CDApplications New procedures SplitPointed CDCommands New procedures MovePointed, CopyPointed CDCells New procedures RemoveApplication and IncludeApplication CDOps New procedure ResetDesign CDDirectory Runtime-test included: an object is in the directory of at most one design CDProperties Properties have exclusive flag; exclusive properties can not be modified by a designer directly, but only by client programs Documentation Improved but very incomplete. File: Chipndale16.tioga, but for old tiptable Implementation IO Modules split: new module CDIOCommands; Include now uses CDExtras.MergeIn All command modules get CD prefix Bug corrected (copy of nwell, buried contacts with nwell,...) #################################################### -- ColorVersatecDoc.tioga -- Last Edited by: Kimr, May 11, 1984 3:17:16 pm PDT -- Last Edited by: Jacobi, May 17, 1984 4:51:40 pm PDT CREATING THE PLOT Bringover the file [indigo]top>colorvplot15.df with the DF tool. (15 is the current chipndale version, keep this number up to date, independantly of this documentation). Independently whether ChipNDale is already running or not, execute the command %VersatecCMOS or %VersatecNMOS to set up the appropriate software and colors. Now you need to get your design on the screen. Execute the commands %CDRead or %CDReadCMCMOS or %CDReadCMNMOS to read in your ".chip" or ".dale" file into ChipNDale. Plot any portion of the design you wish by selecting an area using the left mouse button with 'Y' held down. Terminal will request the number of vertical strips you want the plot divided into; each strip will be made into a pd file named "plot(i).pd" where i is 0..(#strips -1). A '.' will be printed for every band completed; the phrase "finished plot(s)" indicates that all strips have been done. SENDING TO THE VERSATEC Be sure that the versatec is in "Soliciting Client" mode. If it says "Got a Client" and the LED display indicates disk activity, someone else is probably sending a file and you'll have to wait. If it is not busy and does not say "Soliciting Client," punch the white boot button on the front of the machine and wait for the correct prompt to appear. You have your pd files; you want hard copy. Make sure the versatec is in "Soliciting Client" mode; give the command %peach belle and the file will be transferred over the net to the color versatec (aka belle). An pie-shaped icon will appear indicating the portion of the file that has been transferred. You must wait until the file has completely finished printing (not just finished moving over the net) before sending the next print request. Completed plots are cut off each night and left for pick-up on a table in the Purple Lab. Users are discouraged from cutting off their own plots. (It is quite difficult to install the paper properly; such that the next user gets a good plot again) COLOR SELECTION You can easily change the colors assigned to levels by editing the command files VersatecCMOS.cm and VersatecCMOS.cm. #################################################### --/indigo/chipndale/documentation/cd15.tioga --Ch. Jacobi May 11, 1984 2:21:36 pm PDT Chipndale Version 0.15 Release previous release was cdPost14 Color plot see /indigo/chipndale/documentation/ColorVersatecDoc.tioga Interfaces CD more exact comments DrawRecords get new field CDProperties some new procedures CDCallSpecific New procedure CallForThis New procedure Register; replaces import of CDObjectProcs for most clients. (saves pages in technology dependent part) Commands renames the selected object interrupts the drawing process; it leaves the screen in unfinished state; works for Black and white display only; WHY??? chipndale uses the same code for both display types!!! Temporary solution for colordisplay: use a button "CD-stop"; This button works only if there is no command ahead. drawing of design if in a pushed cell: viewer may optionally ommit drawing the outside cell objects; option by using the viewer popup menu simplification treshold of viwers can be modified by using the viewer popup menu show properties of selected object change property of selected object Implementation 2 bugs corrected (CDCellsImpl, CDPropertiesImpl) 2 bugs avoided (for popup menu) IO.Flush of viewer streams gets some help with Process.Pause Use of tiptable and InputFocus.CaptureButtons replaced by use of Terminal.GetKeys #################################################### ChipNSil, a new chipndale technology Sil <-> ChipNSil ChipNSil does not want to compete in general with Sil; ChipNSil wants: - demonstrate chipndale's wide range of technology independence - be a base for experimenting in integrating schematic capturing to chipndale - be a documentation facilty for chipndale design's ChipNSil has a chipndale (chipmonk) like userinterinterface, not a Sil like. ChipNSil has no colors; it is thought to run together with other chipndale technologies and leaves the definition of a color map to the other technology. Commands @chipnsil.cm starts the program cdnewsil to create a new design create or modify a macro DF file /indigo/chipndale/top/chipnsil14.df Restrictions Characters can not yet be plotted. Fonts ChipNSil supports 8 fonts; which are initialized with the user profile. The user profile designates the font used on creation of the text; once a text is created, its font can NOT be changed with the user profile. Example user profile: Chipndale.chipnsil.Font0: "TimesRoman14.strike" Chipndale.chipnsil.AlternateFont0: "/indigo/AltoFonts/TimesRoman14.strike" Chipndale.chipnsil.ScaleFont0: 32 Chipndale.chipnsil.Font1: "Gates32.strike" Chipndale.chipnsil.AlternateFont1: "/indigo/AltoFonts/Gates32.strike" Chipndale.chipnsil.ScaleFont1: 64 Macros There is a new chipndale object type, calld macro. Macro's are a subclass of cells, but with user definable bounding box. Macros are created, or their bounding box changed, with the command. Pushing and popping with "replace" option from macros does not modify the bounding box; Popping and creating a new cell creates a cell, not a macro. Popping out of a macro can move its application; Sorry, but pushing into macros is thought to be a non standard feature, used only to create macro libraries. #################################################### -- /indigo/chipndale/documentation/cdPost14.tioga --Ch. Jacobi April 30, 1984 11:55:47 am PDT Chipndale Version Post 0.14 Updates Commands and visible Features to set simplification treshold value of selected cell select design copy selected object from selected design: actually it does NOT copy, but checks for the name and creates a reference Control panel: mouse clicking values if none: increment/decrement value CTRL: double/half value SHIFT: set default value CTRL-SHIFT: input value sets double layer metal Area de-selection Area add selection step moves: <=> <\> stepsize adjustable by control panel New Technology ChiPencil; separate message already out 23 Apr 84 12:07:32 PST documentation: [indigo]documentation>chipnsil14.tioga command to handle macros NMos Transistors: different implants for 4 different treshold values Implementation All tiptables are created using same source with the EditTool (read in chipmonk files version 8 [already messaged]) read/write chipmonk files with repetitions/busses burried contacts revised Technology may set reasonable default values for grid, initial scales,... Tiptable can be changed at runtime; (affects new viewers only) Christian #################################################### --/indigo/chipndale/documentation/cd14.tioga --Ch. Jacobi April 3, 1984 4:25:57 pm PST Chipndale Version 0.14 Updates previous release was cdPost13, not cd13, because it did not change interfaces Intefaces CD ObjectProcs is no more REF; uses now either REF ObjectProcs or REF READONLY ObjectProcs; new predeclared Levels: highLightShade, highLightError DrawRecords get rid of the ShadeRect procedure; use now DrawRect with highLightShade-level CDEvents.RegisterEventProc has its parameters changed, to have the parameters in the same other as all other registration procedures CDOps new IncludeApplicationList procedure CDApplications get rid of procedure RemoveApp; use now CDOps.RemoveApplication CDIO ReadDesign, WriteDesign exported new procedures VersionKey, DesignInReadOperation CDDirectory new procedures: Rename, Key, Name, InstallDirectoryProcs new fields in DirectoryProcs-type: name, key, setName, setKey DirectoryProcs changed to a private type CDProperties properties on objects are considered bad Commands It is possible to set up the color display from commandfiles (necessary for people who do not yet want to set up their user profile options) Implementation New format for files; old format files can be read in and converted, (for limited amount of time). Cell simplication treshhold value saved on files some cleanup work, saving pages #################################################### -- cdPost13.tioga Implementation Objectprocs for $Narrow, $Widen, $Shorten are removed Objectproc for $Lengthen gets parameter of type (REF) CD.DesignPosition meaning direction. pop from cell faster; (less trashing because introduction of last recently used cache) Commands and otherwise visible Stretch command White flicker on move screen removed Export and import facilities Import is very different from include: Included objects are part of the design when written on files; Imported objects are referenced only, also in files; changes of their implementation are reflected to their importer next time they are read. Global menu calls other menues hierarchical - command IO menu directory menu New Definition Modules CDLRUCache #################################################### --Ch. Jacobi March 6, 1984 12:23:04 pm PST Chipndale Version 0.13 Updates Major changes including runs on Cedar 5.1 new DrawRecords to allow access to properties of applications new scaling for faster redraw new mark mechanism directory separated from cells improved registration mechanism Release strategy df files /indigo/chipndale/top/cddoc.df (documentation) /indigo/chipndale/top5.1/cddesign.df (designers features) Definition modules CD DrawProcedure gets ApplicationPtr instead of ObPtr, usefull for parametrization New procedure DrawComment in DrawRecord new error "Error" all registration procedures now error on double registration (this removes the necessity for tests in most cases and requires catches in few cases; more important, lazy peoples registration will work the way I want it) Design gets new private field marks are subrange CDValue, CDProperties, CDValue, CDEvents, CDObjectProcs use new registration mechanism CDDirectory new module handling the (cell-) directory of a design CDCells directory operations removed from module CDMarks More efficient algorithm for marking: Instead of always clearing all marks before using them, just get a new (design-) unique mark value and use it. Overflow of mark values cause a clear of all marks. CDOps commands removed to new module, completely redesigned new procedure DelayedRedraw CDCommands new module with commands from old CDOps CDRepetitions get new procedure CreateRepetitionCell CDBusses get new procedure CreateBusCell refuses to create busses on bad levels CreateRepetitionCells module removed CreateBusCells module removed CDTechnology possibility to use chipmonks pattern coding Implementation all this additional features make repainting the screen about 20% faster, in addition, the area to be redrawn per command did shrink some small amount a) by improved transformation from design to viewer space b) by new delayed redraw procedure allowing more areas to be combined Commands the global commands popup-menu got new command to clean up the directory Remark - In spite of this beeing a quite major release, applications like VersatecPlotting did need only a recompilation. - Released somewhat fast to have a version on Cedar 5.1 #################################################### --Ch. Jacobi February 17, 1984 3:30 pm --Last edited Ch. Jacobi February 23, 1984 5:08 pm Chipndale Version 0.12 Updates General Idea Stretchy (technology dependent part only in cmos) Back output to chipmonk's .chip file format (cmos only) CMos Chipndale designs can be writen in .chip format for Chipmonk, however, what remains is only the subrange of common features between Chipndale and Chipmonk. This feature is a hack and used only while the design rule checking and analysis programs cannot input proper Chipndale data. Chipmonk distinguishes between rectangles and wires; this difference is not known to Chipndale; (On the other side, Chipndale use different data structures to distinguish rectangles on some levels). Chipndale tries to remember the source of Chipmonk rectangles (or wires) by using properties, however it is not clear to me, if all cases are written back correctly. Busses: Chipndale does not support them on all levels, and does not at all write them back. Texts: Chipndale may exchange fonts when texts are read from Chipmonk; they are not written back. Chipndale terminology caused some problems: SignalNames are NOT Texts ! SignalNames are properties put to some objects, maybe used by some analysis programs. Texts are a data structure of Chipndale, they have a font and a size, and can be put ont masks (if supported by the technology). Repetitions: Chipmonk repetitions are read in as cells! Proper Chipndale repetitions are not understand by Chipmonk and can not be written back on .chip files. Temporary proposed usage of the writeback feature: Try to write back your design immediately after you have read it the first time with chipndale; test if the way back works, and only then proceed using chipndale. Definition modules CDProperties properties without copyproc or writeproc are copied or written to dale files if their keys are atoms and their values are either atoms or ropes. This feature serves the handling of unknown chipmonk properties; it should not be used for basic features of Chipndale. CD objects get a describe proc objects get a match proc (used for stretchy) drawrecords get a hint field about the scale CDOps MoveSelected gets stretchy parameter AreaSelect gets include toched parameter Select gets verbose parameter CDExtras new procedure ToLambda CDRects new procedure CreateSaverect new parameters for UseAsCreateRect CDSequencer new procedure ExecuteCommand Commands [] tells how many objects are available and how many are selected Query position and distance: Select new mode: toggle bit if new objects should be selected for stretchy move stretchy move toggle bit in control panel for <=>, <\>, , VersatecPlot [replace by] ViewerMenu: DesignMenu: ResetScale: SelectAll: #################################################### --/indigo/chipndale/documentation/cd11.tioga --Ch. Jacobi February 1, 1984 10:33 am Chipndale Version 0.11 Updates Definition modules CD New concept of exporting a Graphics.Context in the DrawRecord's replaces procedure field DrawSome and DrawText CDTechnology Separate ColorBricks for any bit per pixel number (1,4,8) CDViewer ViewersOf ' s design parameter is of type REF ANY, to additionally allow using a technology CDTexts Font representation is redesigned Text are in some level (Text are not signalname's) New procedures to install and query for fonts TokenIO Error message of type Rope.ROPE instead of REF ANY Implementation CDTextsImpl uses new Context feature to implement drawing texts font information may be put on .dale files VImplDraw all procedure handling texts are removed Several small bugs replaced by a smaller number of new bugs Commands All executive commands start with CD... readnmos is renamed to [CDReadCMNMos] --where CM stands for ChipMonk readcmos is renamed to [CDReadCMCMos] New command to read in patterns from chipmonk pattern files [CDPattern] (cmos only) New command to read in colormaps from chipmonk colormap files [CDColorMap] Enhanced command [CDColor] Plotting now must be explicitely enabled (again) by including "Chipndale.RunPrograms: VPlot.bcd" into the userprofile or by running VPlot from the user executive. The select command gives more feedback CMos four kinds of diffusion in control panel contacts and transistors get diffusion from current level selection NMos Text commands are temporary disabled, until we know which fonts will be supported in nmos. (This protects design files against using wrong fonts). User profile see /indigo/chipndale/documentation/Chipndale11.profile options for popup menu options for initialization of colordisplay options for selection of chipmonk pattern files options for selection of chipmonk colormap files options to start further programs Documentation to see what is available, look on /indigo/chipndale/top/cddoc.df Release strategy df files /indigo/chipndale/top/cddoc.df (documentation) /indigo/chipndale/top/cddesign.df (designers features) are version independent and bring over the actual version. df files /indigo/chipndale/top/... cd11, nmos11, cmos11, cornerstitching11, vplot11,... analysis10, maskgen10,... contain a version number in their name, but are used only by programmers. #################################################### CDEvents-Registration10.txt -- CDEvents-Registration10.txt -- Ch. Jacobi September 16, 1983 2:11 pm -- last edited by Christian Jacobi October 17, 1983 4:45 pm EventProc: TYPE = PROC [event: REF, design: CD.Design, x: REF] RETURNS [dont: BOOL_FALSE]; If not specified else: event, design are initialized, x is NIL $CreateNewDesign $RenameDesign $RegisterTechnology (design=NIL, x=Technology) $AfterCellReplacement (x=Object [cell] ) $BeforeCellReplacement (x=Object [cell] ) $AfterPush $AfterPop $WriteTechnologyPrivate [listens to dont, allows writing technology private information; may be used only with permission of technology, because of order on file!!!] $ReadTechnologyPrivate [listens to dont, allows reading back technology private information; may be used only with permission of technology, because of order on file!!!] #################################################### plot10.tioga [Indigo]Documentation>plot10.tioga Versatec plotting with Chipndale Subject: chipndale, cmos, versatecplots To: chipndaleusers^ Cc: Jacobi Chipndale is hacked such, that cmos-designs (in addition to nmos) can be ploted on the versatec plotter, whenever still somewhat painfull. To create a plot: -Get Cedar 5. -Get Chipndale from the df file [indigo]top>cdDesign.df bringing over everything. -Read your design, by typing readcmos (or readnmos), to the commander, which starts chipndale and reads a Chipmonk ...chip file. (You must not err which technology your design is.) -Do the plot: Hold down and draw a rectangle with the Mark button. Chipndale answers with a menu were to put the plot. (discarding the entries in the menu stops plotting). Chipndale needs a fair amount of time to do the plot. Chipndale CMOS does NOT implement busses. Have fun Christian #################################################### cd10.tioga Version 10 has no real changes of definition modules, but everything is recompiled with Cedar version 5.0 The command "run cdnmos" is replaced by the command "@cdnmos" Module Terminal is renamed to TerminalIO to avoid conflict with the new Cedar module Terminal Chipndale version 9's DF files are changed such that they do not bringover any Cedar files of any (wrong) Cedar version. New commands "<" and ">" for grow and shrink Plots are no more inverted. It is possible to include filenames on the commandline. It is possible to read in the directory of an other design. File format change; files are now slightly smaller than chipmonk files. #################################################### cd9.tioga CD ObjectProcsRec, RegisterObjectType: objectType changed type to ATOM (for representation on files) CDSequencer CommandRec gets new field sPos; pos and sPos now replace r which is removed. (this allows to get rid of unnormalized rect's) please do not yet use the orientation, I want to experiment first CDInline: New procedure ToRect (used to replace r by pos, sPos in CDSequencer) CDDraw world is renamed to design (consistency) CDValue searchUntil is renamed to propagation order of parameter reversed (consistenc with CDProperties....) (dangerous since of same type, but I checked all DF files of all users for CDValue...) CDProperties RegisterProperty gets optional registrationKey parameter (to allow multiple registration) CDPrivate new procedure Debug CDTechnology new procedures SetCurrentLevel, SetLevelWidth; widthAtomTable made private (widthAtomTable is no more needed public: since cd8, levels can have properties) CDCells EachEntryAction gets a default return value TokenIO, CDIO: New modules read/write included, uses TokenIO On read write of a design, an event allows the Technology to add private information to the file In NMos: TIPTable may be specified by UserProfile (See Chipndale.profile for default values) You are NOT supposed to make your own tiptable now, the commands are still considered implementation level and change without documentation The tip process knows a "WiringMode" set, reset and querried by tip process, has no further influences #################################################### Date: 31 May 84 10:06:54 PDT From: Jacobi.pa Subject: access right on /indigo/chipndale/ To: Chipndale.pa Cc: Jacobi As you get this message, you have write-access rights on the /indigo/chipndale/ directory. These are the rules which make it possible to share this crowded directory: /indigo/chipndale/ is a release directory, not a working directory. To develop some program you use your own personal directory. Once the program works, you may copy it to chipndale. This allows client programmers, to coexist with programmers changing chipndale. Furthermore, it allows designers using chipndale to coexist with programmers changing chipndale and programmers making client's. -Every file "FooFile" lives in a subdirectory like /indigo/chipndale/5.2/FooDirectoryX/FooFile.mesa where "5.2" means the Cedar release number and "X" means the chipndale release. -Every DF file lives in a top subdirectory like /indigo/chipndale/5.2/top/FooX.df where "X" means the chipndale release. -Every file is mentionned in a df file. -All df files are verified, without errors and without warnings. -Every DF file to be used by programmers of clients has the chipndale version number in its name, if it depend on a chipndale version. -The DF file to be used by designers does not has a chipndale version number; it refers to the currently newest released chipndale version's df files. -DF file's have owners; whoever changes a DF file owned by somebody else must send a message to the owner. Whenever disk real estate gets short on Chipndale, I have to perform some actions, probably in this order: 1. Delete any file not in a subdirectory. 2. Delete any file not in a df file. 3. Delete any .bcd file with a release number of a release which is no more in use. 4. Delete any second version of any file 5. Delete any file with a release number of a release which is no more in use. 6. Declare some release as beeing no more in use. At this point, I might consider asking users or client programmers if they agree. goto 3. 7. Ask for more disk real estate. Christian #################################################### cd8.tioga CDInline: MidPoint renamed to Center ExtendRect renamed to Extend CD: lambda gets a new value Technology gets a list of levels it uses; LevelFields replaced by LevelTechnology and LevelKey CDProperties: Properties can hang on levels and on Atoms registration rules relaxed CDValue: propagation default changed to no propagation CDSequencer: locking is now per design, queue is no more exported QueueCommand now needs a design CDPrivate: New private module with errors, zones and level-information CDTechnology: TeachLevel replaced by TeachColorBrick, (TeachSimpleColor will be replaced in later version) CifName must be handled by properties; must use $CDxCIFName CDOrient: new procedure OrientateContext CDExtras: new procedure PushedCellName CDPanel: CreatePanel returns now a viewer HookIntOntoDValue is renamed to DefineIntEntry, now using a more consistent naming scheme CDDebug: module has variable: xdesign: CD.Design is the last design created. #################################################### CD7.txt PosInrect for cdinline CDDialogue removes CreateChipndaleViewer MidPos: PROC [r: CD.Rect] RETURNS [CD.Position] = INLINE {RETURN[(r.x1+r.x2)/2, (r.y1+r.y2)/2]}; drawrecords get list of saved rects (and are no more allowed to copy) drawrecords get list of applications? and design [for parameters] #################################################### ˆChipNDaleMessagesDoc.tioga Copyright c 1983, 1986 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, 1983 Last edited by Christian Jacobi, December 30, 1986 10:10:47 am PST technologyKey one of: CMosB, cmos, nmos, chipnsil; defaults to FALSE [GFIs ! ] [Its the key, NOT the name] Version 0.18 will be deleted. Version 0.19 will not be deleted before the next release or a message (If you have a new enough ChipNDale version...) (If you have the necessary bcd files for it...) if the design is found (&d#NIL) Sil Options: Chipndale.ChipmonkColorMaps: "default.CDColorMaps" better: use full path name Chipndale.ChipmonkColorPatterns: "default.CDColorPatterns" better: use full path name Chipndale.ChipmonkColorPatternNum: 2 good value for nmos Chipndale.SavePeriod: 0 to specify interval for automatic saving designs, in seconds; -1 to avoid saving --///cd17/cd17.tioga --chipnsil14.tioga --Christian Jacobi April 24, 1984 3:57:50 pm PST Chipndale.chipnsil.TIPTable: "chipnsil.tip" -- this is default -- Fonts do not have defaults --/indigo/chipndale/documentation/cd13.tioga --/indigo/chipndale/documentation/cd12.tioga ÊD…˜™Jšœ Ïmœ7™BJšœ"™"JšœC™C—J˜Jšœ4˜4JšÐbsœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜šÏbœ˜Jšœ[˜[—J˜šŸœ˜ J˜:J˜V—J˜JšœZ˜ZJ˜JšœƒŸœ ˜‘J˜J˜J˜ J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ+˜2Jšžœ˜Jšžœ#˜%Jšžœ˜˜IindentšŸœ˜KšŸœ˜ KšŸ œ˜$Kšœý˜ý˜_KšÏoC˜C—K˜\KšÏs.˜.—J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ)˜0Jšžœ˜Jšž œ ˜J˜J˜J˜'J˜J˜žJ˜JšœÍ˜ÍJ˜J˜J˜J˜!J˜(J˜7J˜#J˜J˜J˜IJ˜+JšœD˜DJ˜4J˜MJ˜"Jšœ4˜4J˜JJšœ6˜6J˜J˜)J˜1J˜;J˜8J˜;J˜.J˜MJ˜BJ˜FJ˜KJ˜5J˜J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜&Jšžœ˜Jšžœ˜ Jšž œ ˜J˜JšŸ˜J˜J˜ J˜²J˜JšœA¡˜EJ˜:Jšœ}¡˜J˜?J˜JšœX˜XJ˜JšœŸœ=˜^J˜J˜ J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜&Jšžœ˜Jšžœ˜ Jšž œ ˜J˜šŸ˜J˜ìJ˜áJ˜—J˜šŸ˜J˜Y—J˜JšœŸœA˜bJ˜J˜ J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšœ&˜&Jšœ(˜(Jšœ ˜ Jšœ˜˜JšÐos˜—J˜šÐbl˜J˜JšœÏn œ0˜QJ˜Jšœ–¡[˜ñJ˜Jšœê˜êJ˜J˜^—J˜šŸ ˜ JšœŠ˜ŠJ˜—šŸ ˜ Jšœ^¤œv˜âJšœU˜UJšœ»˜»J˜—š¤ ˜ J˜J˜)˜J˜)J˜0—JšœU˜UJšœZ˜ZJ˜—š¤ ˜ J˜ÇJ˜—J˜Jš£˜code˜˜ L˜HL˜BL˜=LšœE˜EL˜.L˜"J˜—J˜HJ˜FJ˜—šŸ˜J˜˜J˜9J˜:J˜8Jšœ-˜-Jšœ*˜*Jšœ˜JšœO˜OJšœ'˜'JšœC˜CJšœ*˜*Jšœ"˜"J˜—˜˜J˜A—˜ JšœŸœ˜J˜-J˜M—šœ˜šœ&˜&Jš¡>œ˜?——J˜%J˜—˜J˜J˜—˜J˜—˜J˜—˜+J˜5Jš¡i˜iJš¡/˜/J˜—˜J˜FJ˜—J˜—šŸ˜J˜˜J˜J˜J˜=˜J˜[J˜;Jšœ˜J˜J˜%—˜J˜J˜:—˜Jšœ+Ÿœ ˜MJ˜J˜&—J˜—˜J˜J˜—˜J˜%Jšœ)˜)Jšœ˜J˜—˜J˜Jšœ,˜,Jšœ&˜&J˜:Jšœ´˜´šœ.˜.JšŸœÚ˜â—Jšœ¾˜¾J˜—šœ˜J˜SJ˜—šœ ˜ J˜QJ˜—˜ Jšœ"˜"Jšœ?˜?J˜—˜J˜)J˜—˜ J˜>J˜PJ˜J˜—˜ J˜/J˜(J˜0J˜—˜ Jšœ&Ïi œ"˜QJ˜—šœ˜JšœF˜FJ˜—˜J˜Lšœ*˜*šœ˜LšœG˜GLšœK˜K—J˜—˜J˜ J˜—˜Jšœ˜J˜—˜J˜CJšœÃ˜ÃJ˜—˜J˜ J˜—˜ Jšœ:˜:J˜—˜J˜J˜—˜J˜VJ˜TJ˜=J˜—šœ ˜ J˜J˜J˜J˜J˜/J˜—šœ˜˜J˜2J˜Jšœ¥œ˜4—J˜—J˜—šŸ˜J˜˜zJ˜—˜ J˜˜>Jšœî˜îJšœh˜hJšœ]˜]J˜J˜J˜J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜J˜$J˜J˜cJ˜J˜ƒJ˜J˜îJ˜J˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜J˜J˜7J˜šŸœ˜J˜J˜?˜*J˜=J˜=—J˜J˜J˜J˜@J˜;Jšœ˜J˜J˜IJ˜JJ˜HJ˜J˜˜J˜"J˜H——˜J˜*J˜—J˜ J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜!Jšžœ&˜(Jšžœ˜ Jšžœ˜˜Jšœ%˜%J˜Jšœ+˜+Jšœ,˜,J˜2˜*J˜J˜$J˜'J˜#J˜#—J˜J˜/J˜J˜ J˜—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜"Jšžœ&˜(Jšžœ˜ Jšž œ ˜˜KšŸœ(˜+KšŸœÏtœ˜4J˜Jš§œ˜(J˜˜ J˜QJ˜J˜8J˜#J˜fJ˜F—J˜˜J˜,J˜J˜A—J˜—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜Jšœ0˜0J˜šŸ˜J˜J˜#J˜J˜1J˜šœz˜zJšœ  œ¦˜&JšœN™NJ™—J˜šœ-¦œ˜4J˜^—J˜˜±J˜J˜J˜Jšœ˜—J˜˜ö˜J˜;J˜&J˜&——J˜J˜«J˜J˜«—J˜šŸ >˜RJ˜šœ ˜ J˜>J˜—šœ˜J˜<—J˜šœ˜J˜=—J˜˜JšœU˜U—J˜šœ ˜ Jšœ ¦œH˜T—J˜—J˜ J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜Kšœ ˜ K˜šŸœ)˜,K˜3—šŸœ"˜%K˜—šŸœ5˜8K˜mK˜—šŸœ0˜3K˜e—šŸœ(˜+K˜ K˜-K˜D˜6K˜?—K˜1K˜E—K˜K˜˜K˜6K˜(K˜]K˜0K˜—K˜J˜K˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜šœ?˜?Jšœ Ÿœ˜"—J˜˜"Jšœ Ÿœ˜Jšœ˜—J˜J˜8J˜˜J˜ —Jšœ4˜4Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ#˜%Jšžœ ˜˜KšŸœ#˜&KšŸœ§œ˜9KšŸ œ ˜K˜UKšŸ˜K˜„K˜hK˜p—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ)˜0JšžœK˜MJšžœ˜ Jšž œ ˜J˜K˜Kšœ'˜'K˜&K˜KšŸ>˜>K˜Kšœ°˜°Kšœf˜fKšœp˜pKšœi˜i˜\K˜Kšœ˜Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ Kšœ ˜ K˜Kšœ ˜ Kšœ˜Kšœ˜K˜Kšœ˜Kšœ˜Kšœ˜Kšœ ˜ Kšœ ˜ K˜Kšœ˜Kšœ ˜ Kšœ˜Kšœ˜Kšœ ˜ Kšœ˜Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ˜K˜K˜—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ&˜(Jšžœ˜ Jšž œ ˜J˜šŸ#˜#J˜Jšœ•˜•J˜˜ J˜—˜ Jšœ2˜2J˜f—šœ˜Jšœ˜——J˜šŸ˜J˜J˜9J˜J˜RJ˜J˜‰J˜˜J˜PJšœ`¡M˜­—J˜J˜RJ˜J˜MJ˜J˜ J˜—šŸ˜J˜J˜;J˜J˜„J˜—š¥ ˜ J˜ÔJ˜'J˜—J˜J˜ J˜˜J˜—Jšœ4˜4˜J˜(—J˜Jš£˜J˜J˜˜ J˜@J˜#J˜RJ˜5J˜—J˜-J˜Jšœù˜ùJ˜Jšœ¶Ÿœ“˜ÐJ˜JšœŒ˜ŒJ˜J˜µJ˜JšŸ˜J˜˜(J˜,—J˜šœ˜Jšœ&˜&JšœO˜OJ˜Jšœ˜Jšœ2˜2J˜$J˜$JšœP˜PJ˜.J˜(J˜4J˜—˜J˜!J˜¹J˜—˜JšœC˜CJšœ0˜0—J˜˜ L˜L˜!L˜J˜—˜ J˜3Jšœ˜Jšœ˜Jšœ˜Jšœ1˜1J˜—šœ˜J˜-—J˜˜ 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˜—˜ L˜/L˜‚L˜TL˜€L˜4L˜aJ˜—˜J˜žJ˜—˜J˜EJ˜—˜ L˜&L˜&Lšœ3˜3L˜t—J˜šœ ˜ J˜,—J˜šœ˜J˜ˆ—J˜šœ˜Jšœb˜bJšœ<˜<—J˜šœ˜J˜"J˜—J˜šœ˜JšœÌ˜ÌJšœ2˜2J˜Jšœ3˜3—J˜J˜JšŸ˜J˜˜J˜YJ˜"J˜\—J˜˜'J˜—J˜˜/J˜uJ˜—˜8J˜—J˜J˜eJ˜J˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ#˜%Jšžœ ˜˜KšŸœ#˜&KšŸœ§œ ˜7KšŸ œ ˜K˜’Kš œ¬œ%Ïeœ¨œ ¨œ˜“Kšœºœ˜¼K˜)K˜—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ#˜%Jšžœ ˜˜KšŸœ%˜(KšŸœ§œ˜;KšŸ œ ˜KšœE¦œ ˜WKšœ‘˜‘Kšœ-˜-—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜JšŸ ˜ J˜Jšœ,˜,J˜˜ J˜—˜ J˜—J˜J˜*J˜xJ˜J˜;J˜J˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜#Jšžœ&˜(Jšžœ˜ Jšž œ ˜J˜JšŸœ=˜BJ˜J˜OJ˜J˜‡J˜˜J˜%J˜/J˜$J˜˜4J˜J˜—J˜h—J˜JšœÙ˜ÙJ˜Jšœ˜J˜˜;JšœŽ˜Ž—J˜J˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ"˜)Jšžœ&˜(Jšžœ˜ Jšž œ ˜J˜JšŸ ˜ J˜JšŸ ˜ J˜˜ LšœŠ˜Š˜;L˜——šœ ˜ LšœÂ˜ÂL˜—L˜šœ˜L˜ML˜—L˜šœ˜L˜¥—L˜šŸ ˜ L˜L˜A—L˜šŸ˜L˜—L˜3—L˜L˜L˜ J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜#Jšžœ˜Jšžœ#˜%Jšžœ ˜˜KšŸœ(˜+KšŸ œ ˜Kšœ  œ)  œ  œJ˜­Kšœ œ/Ïgœ3©œƒ˜óKšœËœ˜ä—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜"Jšžœ&˜(Jšžœ ˜˜KšŸœ$§œ˜+J˜J˜PJ˜Jšœþ˜þJ˜šœ•˜•šœ˜Jšœ#˜#—šœ˜JšœW˜W——J˜˜J˜ ——Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜&Jšžœ˜Jšžœ˜ Jšž œ ˜J˜J˜!J˜J˜´J˜J˜EJ˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ ˜"Jšžœ ˜˜KšŸœ%˜(KšŸ œ ˜Kšœw  œ@˜ÁKšœº˜º—Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜&Jšžœ˜Jšžœ˜ Jšž œ ˜J˜JšŸ˜J˜šœ ˜ J˜9J˜X—J˜˜˜HJ˜J˜J˜—Jšœ/˜/J˜·J˜E—J˜J˜`J˜J˜ËJ˜J˜J˜J˜ J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ?˜AJšžœ˜ Jšž œ ˜J˜Jš£˜J˜JšŸ˜J˜J˜!J˜"J˜HJ˜XJ˜bJ˜Jšœ!Ÿœ^˜…J˜’˜J˜K—Jšœ|˜|J˜JšŸ˜J˜šœ˜Jšœ‰˜‰Jšœ`˜`JšœA˜AJšœ$˜$šœ˜Jšœ˜Jšœ&˜&—J˜R—˜J˜T—˜J˜9—˜J˜!—˜ J˜9—˜J˜J˜—˜ J˜!J˜€J˜—˜JšœJ˜JJ˜.—˜ J˜\—˜J˜ƒ—˜J˜Jšœ7˜7—šœ˜Jšœ„˜„—˜ J˜—˜J˜IJ˜KJ˜—˜ ˜5J˜§—J˜¢J˜–J˜`—šœ˜Jšœ(˜(—˜J˜CJ˜+—˜J˜—˜J˜ˆJ˜M—šœ ˜ J˜—˜J˜SJ˜FJ˜5—˜ J˜/J˜*J˜J˜Õ—J˜JšŸ˜J˜˜J˜]—˜J˜J˜2J˜J˜c—˜J˜–—˜J˜>—˜J˜q—J˜J˜JšŸ8˜8˜šœ,˜,J˜9—J˜Jšœ%˜%Jšœ"˜"Jšœ%˜%Jšœ#˜#Jšœ#˜#Jšœ%˜%Jšœ*˜*Jšœ-˜-Jšœ&˜&Jšœ%˜%Jšœ$˜$Jšœ%˜%Jšœ'˜'Jšœ-˜-Jšœ)˜)J˜Jšœ#˜#Jšœ+˜+Jšœ)˜)Jšœ&˜&J˜—J˜cJ˜J˜¦J˜J˜ÑJ˜J˜ˆ˜J˜ —J˜J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ'˜.Jšžœ?˜AJšžœ˜ Jšž œ ˜J˜J˜Jšœº˜ºJ˜Jšœ€˜€J˜Jšœ·˜·J˜JšœÙ˜ÙJ˜šœ#˜#˜J˜&—šœ}˜}Jšœ-˜-——J˜Jšœ“˜“J˜J˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜JšŸ˜J˜˜#J˜-—J˜˜ J˜J˜?J˜RJ˜'—˜J˜?—˜J˜—J˜J˜J˜ Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜#Jšžœ˜Jšž œ ˜J˜Ibody˜‘M˜t˜QIitem˜&NšœW˜WNšœ:˜:Nšœ9©œ˜ANšœ@˜@Nšœr˜rNšœ+˜+Nšœl˜lNšœ5˜5Nšœ&˜&Nšœ/˜/—M˜“Mš¨˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜J˜@J˜˜-J˜7—J˜J˜ Jšœ4˜4Jšžœ˜Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ˜J˜J˜9J˜J˜ J˜J˜ôJ˜J˜’J˜Jšœ4˜4Jšžœ˜!Jšžœ ˜Jšžœ ˜Jšžœ˜Jšžœ˜ Jšž œ˜J˜JšŸ œ ˜J˜J˜5J˜J˜J˜ J˜J˜ÏJ˜J˜CJ˜J˜J˜J˜Jšœ4˜4Jšžœ˜Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšž œ ˜J˜Jšœ Ÿ#˜,Jšœ9˜9JšœF˜FJ˜Jšœv˜vJ˜JšÏaÐbi˜J˜Jšœ4˜4Jšžœ˜Jšžœ ˜Jšžœ˜&Jšžœ˜Jšžœ˜ Jšž œ ˜J˜šŸ˜J˜4J˜J˜˜>—J˜šœ ˜ Jšœ'˜'Jšœ#˜#J˜;J˜—J˜šœ ˜ Jšœ˜Jšœ¦œ ¦œ ˜,Jšœ4˜4—J˜šœ ˜ Jš œ ¦œ¦œ ¦œ¦œ˜.—J˜˜Jšœ(˜(—J˜˜ Jš œ¦œ¦œ ¦œ¦œ˜6—J˜šœ˜Jšœ&˜&—J˜šœ˜J˜M—J˜˜ Jš œ¦œ¦œ¦œ¦œ˜7—J˜˜ J˜y—J˜˜Jš œ¦œ ¦œ ¦œ ¦œ˜BJ˜—šœ ˜ J˜ŒJ˜—˜ J˜.J˜—˜ J˜1J˜9J˜—˜J˜]J˜—˜ Jšœ˜Jšœ ˜ Jšœ˜J˜—˜J˜Jšœ˜Jšœ˜J˜—˜J˜µJ˜J˜—J˜šœ˜J˜"J˜—J˜˜J˜3—J˜˜J˜7—J˜šŸ˜J˜J˜3J˜"˜J˜J˜J˜J˜——J˜šŸ˜˜‚J˜U—J˜˜ J˜•J˜ÿ—J˜˜-Jšœ˜Jšœ˜—J˜˜J˜(J˜"J˜$J˜$J˜(J˜(J˜'J˜-J˜1J˜+Jšœ(˜(J˜)J˜'J˜)Jšœ*˜*J˜#Jšœ'˜'Jšœ(˜(—J˜J˜JšœX˜X—J˜J˜ Jšœ4˜4J˜Jšœ˜Jšœ˜Jšžœ˜Jšžœ˜Jšžœ ˜ J˜J˜J˜ùJšœ4˜4J˜Jšœ˜Jšœ˜Jšžœ˜Jšžœ˜J˜J˜˜HJ˜/—˜“Jšœ¤˜ —J˜J˜*J˜Jšœ4˜4J˜J˜ÐJ˜Jšœ4˜4J˜Jšžœ˜Jšžœ ˜Jšžœ˜Jšžœ˜Jšžœ˜ Jšžœ ˜J˜head˜Iblock˜w˜Pšœÿ˜ÿ—˜P˜g—˜0•StartOfExpansion[]šœ¨œÃ˜ÛIquote˜ZQ˜´—PšœU¨œc˜Ç—˜Pš œ¿¡œ˜¡œ3¨œ ¨œÍ˜—P˜—˜&Jšžœ˜Jšžœ ˜Jšžœ˜ Jšžœ˜Jšžœ˜ Jšžœ ˜J˜Inote˜?šœ/˜/PšŸœê˜ñ˜P˜Í—šœ˜P˜ì—šœ-˜-Pšœ€¨œ!¨ œ!˜Ò—šœ˜P˜Ó———J˜&Jš¨˜J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ4˜4Jšœ˜Jšœ ˜ J˜J˜JšŸ+˜+J˜J˜PJ˜nJ˜˜3J™/˜0J˜h—˜$J˜>—J˜J˜J˜—˜2J™/Jšœ3˜3Jš¥™Jšœ!¦œ˜*Jšœ˜—J˜J˜ J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšžœ˜Jšžœ˜Jšžœ˜ J˜J˜Jšœ+˜+J˜Jšœ-˜-Jšœ%˜%J˜J˜8J˜ J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ&˜&Jšœ˜Jšœ ˜ Jšœ˜J˜J˜Jšœg˜gJ˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ˜Jšœ/˜/Jšœ ˜ J˜J˜JšŸ-œ˜.šœ.Ÿ˜JJšœ(Ÿ˜/J˜#—J˜Jšœ4Ÿ˜;J˜J˜ J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ%˜%Jšœ/˜/Jšœ ˜ J˜J˜šŸ˜J˜˜KJšœ˜Jšœ˜—šœ}˜}J˜——šŸ˜J˜˜?J˜J˜0J˜—J˜˜J˜*J˜—˜&J˜J˜J˜ J˜J˜áJ˜Jšœ ŸœxŸœx˜—J˜˜JšœŸœ˜–——J˜˜J˜—J˜Jšœ4˜4Jšœ˜Jšœ˜Jšžœ ˜Jšžœ˜J˜J˜M˜PMšœ ¨œ¨ œ ¨ œö˜ÊOšœ˜N˜1N˜ N˜N˜J˜J˜:˜Iidentšœ'˜'Sšœ(˜(Sšœ(˜(Sšœ&˜&Sšœ'˜'Sšœ'˜'Sšœ&˜&Sšœ#˜#Sšœ7˜7Sšœ7˜7Sšœ7˜7Sšœ7˜7Sšœ7˜7S˜S™ S˜S˜S˜S˜Sšœ˜Sšœ˜Sšœ˜Sšœ˜Sšœ˜—O˜N˜)N˜+N˜fN˜²N˜TS˜M˜wM˜Pš¨˜S˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ!˜!Jšœ˜Jšœ ˜ J˜J˜J˜šŸ"˜"J˜J˜’J˜J˜«J˜—šŸ˜J˜˜J˜J˜ J˜ J˜3J˜1J˜"J˜J˜j—J˜˜6˜:J˜ì—J˜0J˜J˜GJ˜J˜J˜J˜IJ˜J˜ —J˜J˜mJ˜—šŸ˜˜xJ˜J˜ ˜J˜—J˜8J˜J˜J˜J˜ J˜J˜3J˜(J˜——J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ ˜ Jšœ/˜/Jšœ%˜%J˜J˜šŸ˜J˜JšœÝ˜Ý—šŸ˜J˜J˜ÑJ˜˜LJšœ˜Jšœ3˜3Jšœ+˜+Jšœr˜r—J˜˜ J˜„J˜§—J˜J˜óJ˜—šŸ˜J˜˜˜&Jšœ,˜,J˜—J˜‘J˜J˜3—˜˜>J˜(—J˜Jšœ˜—˜ J˜%—˜ J˜.J˜—˜J˜—˜J˜ —˜ J˜.—˜J˜d—˜ J˜J˜J˜6J˜%—˜ J˜J˜@—˜J˜—˜ J˜+—˜J˜3—˜J˜——J˜—šŸ œ:˜GJ˜˜ J˜J—˜J˜.—J˜—šŸ%œ˜&J˜˜J˜&—˜J˜&J˜)—˜J˜#J˜)J˜†J˜h—J˜—šŸ%œ˜&J˜J˜˜J˜a—J˜—J˜ J˜Jšœ4˜4Jšœ˜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šœ4˜4Nšžœ˜Nšžœ˜Nšžœ˜Nšžœ˜Nšžœ ˜(N˜M˜Î˜M˜ïM˜ªM˜™M˜òM˜…M˜Í˜M˜ŠM˜³Mšœð˜ð——˜Mšœ ˜ —M˜M˜M˜J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ˜Jšœ/˜/Jšœ%˜%J˜J˜šŸ˜Jšœƒ˜ƒJ˜šœ˜˜%Jšœ¥œ7¥œZ˜¬—J˜'J˜—šœ˜J˜!J˜#J˜—šœ˜J˜"—J˜—šŸ˜J˜ô˜JJšœ"œ˜&Jšœœ œ œ˜Jšœœ œ ˜)—J˜ˆJ˜—šŸ ˜ šŸ˜˜AJ˜Jšœ6˜6J˜,Jšœ˜—J˜J˜J˜—šŸ˜J˜Q˜J˜Jšœ5˜5J˜-Jšœ ˜ J˜>—J˜J˜J˜——šŸ˜J˜-JšœI˜IJšœ=˜=J˜3J˜DJ˜6Jšœ;˜;Jšœ¡œ8˜PJšœBŸ˜CJ˜GJ˜/J˜HJ˜—šŸ>˜>Jšœ"˜"Jšœ˜šœ˜šœ2™2Jšœ™——šœ ˜ šœ:™:Jšœ™——šœ$˜$šœ%™%J™—šœ™J™P——J˜—šŸ˜˜˜QJ˜/—J˜J˜NJšœ#˜#—J˜?J˜:JšœV˜VJ˜J˜ZJ˜J˜*J˜+J˜_J˜DJ˜J˜uJ˜yJ˜—J˜ J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ)˜)Jšœ˜Jšœ ˜ J˜J˜JšŸ ˜ J˜J˜J˜˜`J˜4—J˜DJ˜]J˜’J˜J˜šJ˜˜Jšœ!Ÿœ˜@Jšœ#Ÿœ˜>Jšœ#Ÿœ˜>—J˜J˜J˜ J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ:˜:Jšœ˜Jšœ˜J˜J˜Jšœ0˜0J˜/J˜˜ J˜J˜J˜—J˜˜J˜Jšœ—˜—J˜J˜¨J˜Jšœ•˜•—J˜J˜ J˜J˜Jšœ4˜4Jšœ˜Jšœ˜Jšœ$˜$J˜J˜JšŸ˜J˜J˜!J˜JšœK˜KJšœ?˜?J˜J˜ŸJ˜šœ˜Jšœ˜Jšœ˜Jšœ"˜"—J˜J˜J˜J˜Jšœ4˜4JšœŸœÖ˜õJ˜Jšœ4˜4J™J™J˜JšŸ˜J˜JšŸ˜J˜˜Jšœ/˜/šœ+˜+J˜.J˜-—Jšœ6˜6—J˜˜Jšœ@˜@—J˜˜Jšœ=˜=Jšœ™˜™J˜—˜J˜JJ˜J˜—˜ J˜1—J˜˜ J˜,J˜7—J˜˜J˜J˜NJ˜VJ˜)—J˜J˜JšŸ˜J˜J˜J˜LJ˜GJ˜JšŸ˜J˜˜)J˜)JšœM˜M—J˜ŸJ˜J˜NJ˜JšŸ˜J˜J˜CJ˜J˜J˜PJ˜&J˜+J˜J˜JšŸ ˜ J˜0J˜HJ˜KJ˜,J˜J˜GJ˜CJ˜GJ˜FJ˜AJ˜@J˜J˜Jšœ4˜4J˜J˜-Jšœ+˜+J˜J˜Jš£˜J˜Jšœ˜J˜J˜JšŸ˜J˜J˜+˜J˜J˜J˜RJ˜@J˜J˜ J˜ J˜J˜—˜J˜—šŸ<˜˜>J˜@J˜%J˜J˜JšŸ˜J˜?J˜J˜JšŸ˜J˜=J˜5J˜1J˜J˜IJ˜>J˜J˜ J˜Jšœ4˜4J˜J˜,Jšœ+˜+J˜Jš£˜˜J˜N—J˜J˜JšŸ ˜ J˜šœ˜J˜XJšœ6˜6JšœZ˜Z—J˜Jšœ„˜„J˜˜Jšœ%˜%J˜—šœ˜Jšœ?˜?—J˜˜Jšœ ˜ Jšœ0˜0J˜—˜ Jšœ8˜8Jšœ=˜=Jšœ(˜(—J˜šœ ˜ J˜)—J˜JšŸ˜J˜J˜ŒJ˜J˜JšŸ˜J˜J˜cJ˜J˜0J˜J˜J˜Jšœ4˜4J˜JšœŸ˜J˜JšŸ˜J˜J˜5J˜ZJ˜J˜VJ˜J˜JšŸ˜J˜J˜J˜J˜$J˜˜J˜õ—J˜J˜:J˜J˜J˜J˜JšŸ˜J˜J˜ J˜Jšœ4˜4J™J™,Jšœ,˜,J˜Jš£˜J˜šŸ˜J˜J˜=J˜J˜J˜J˜—J˜šŸ˜˜J˜0JšœŸœ!˜9——J˜šŸ˜˜J˜OJ˜'J˜˜J˜J˜CJ˜/J˜J˜J˜J˜—J˜Jšœ4˜4J˜J˜,J˜(J˜Jš£˜J˜šŸ˜˜J˜?J˜/—˜ J˜:—˜JšœI˜IJ˜—˜J˜!J˜2J˜-—˜Jšœ3˜3——J˜šŸ˜˜ J˜3J˜*—˜ J˜(—J˜;—J˜šŸ˜J˜'Jšœ&¥˜DJšœ%˜%J˜SJ˜JJ˜šœ4˜4JšœA˜AJšœ,˜,—J˜&J˜—šŸ˜J˜(J˜C—J˜šŸ˜J˜GJ˜L—J˜šŸ ˜ J˜8J˜J˜*J˜/J˜0Jšœ"˜"—J˜šŸ ˜ J˜@—J˜šŸ˜˜J˜/J˜6—J˜:˜$J˜4J˜—J˜JJ˜—Jšœ4˜4J˜JšŸœÙ˜ôJ˜Jšœ4˜4J˜JšŸ ˜ Jšœ-˜-J˜Jšœ ˜ J˜Jšœ'˜'Jšœ˜Jšœ ˜ J˜J˜AJ˜HJ˜˜J˜˜J˜"—J˜˜J˜J˜—J˜GJ˜;˜ J˜J˜V—J˜˜ JšœY˜Y—J˜˜ J˜—J˜šœ ˜ JšœJ˜JJšœP˜P—J˜˜Jšœ+˜+—J˜˜J˜!J˜IJ˜—J˜J˜J˜˜1Jšœ*˜*J˜UJ˜5J˜MJ˜—J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšžœ$˜+Jšžœ˜Jšžœ˜ J˜J˜ZJ˜JšŸK˜KJ˜J˜‹J˜J˜˜2Jšœ0˜0JšœP˜P—˜/Jšœ!˜!Jšœ&˜&—J˜'J˜@J˜†J˜—J˜kJ˜J˜˜jJ˜)J˜$J˜SJ˜(J˜NJ˜J˜!—J˜J˜J˜ J˜Jšœ4˜4J˜JšŸ ˜ J˜˜ J˜J˜J˜—˜J˜J˜*J˜5—J˜˜8J˜J˜—J˜7J˜˜BJ˜J˜—J˜FJ˜˜6J˜4J˜;J˜—J˜(J˜J˜&J˜˜)J˜AJ˜J˜—˜1J˜—J˜Jšœ4˜4J˜JšŸ˜J˜µJ˜Jšœ4˜4J˜—…—Jì“ù