ChipNDaleMessages1986.tioga
Copyright © 1986 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi
Last edited by Christian Jacobi, February 18, 1987 4:50:28 pm PST
1986
####################################################
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 <Preas.pa>
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]<DATools6.1> 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]<Beretta.pa>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]<Dragon>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 <space-m>. 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
<CTRL-middle> 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]<DATools6.1>Top>CDSatellites23.df
Documentation: [DATools]<DATools6.1>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)
<space-k>, <k-middle> for drc's
<space-q>, <q-middle> for selections
<space-g>, <g-middle> for root of menus
<space-j>, <j-middle> for operators
<r-middle> 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]<DATools6.1>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
technologyKey one of: CMosB, cmos, nmos, chipnsil; defaults to FALSE [GFIs ! ]
[Its the key, NOT the name]
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]<DATools6.1>Top>TerminalIO2.df
Keeps a log file TerminalIO.log; idea from Bertrand
DF: [DATools]<DATools6.1>Top>Core.df
New module CoreDirectory
DF: [DATools]<DATools6.1>Top>CDConvertTechnologies23.df
New package with redesigned (technology independent) procedure for the
conversion of ChipNDale technologies.
Currently only CMosA to CMosB
DF: [DATools]<DATools6.1>Top>CDHierarchyMarks23.df
Experimental Hack, NOT RELEASED.
Allows to interactively designate full path names; use program menu.
DF: [DATools]<DATools6.1>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 <Preas.pa>
Reply-to: Beretta.pa
DF: [DATools]<DATools6.1>Top>Gismo.df
Documentation: [DATools]<DATools6.1>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
<space-B>: Text & Property menu (previously: <space-N>)
<space-N>: Name & Property menu (previously: other entry in Text & Property menu)
<space-Y>: Display menu (previously <space-B>). 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: <lf>-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]<DATools6.0>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 <Preas.pa>
Reply-to: Beretta.pa
DF: [DATools]<DATools6.0>Top>SoS22.df
Documentation: [DATools]<DATools6.0>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 5 (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 30 .
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 <Preas.pa>
Reply-to: Beretta.pa
DF: [DATools]<DATools6.0>Top>Gismo22.df
Documentation: [DATools]<DATools6.0>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
<CTRL-F> 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: <esc-space>
<space-n>: 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 <space-p>.
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 <Preas.pa>
Reply-to: Beretta.pa
DF: [DATools]<DATools6.0>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 e 10-Jan-86 19:02:09 PST.
####################################################