ChipNDaleMessages1984.tioga
Copyright © 1984 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi
Last edited by Christian Jacobi, February 18, 1987 4:50:41 pm PST
1984
####################################################
Date: 20 Dec 84 10:04:05 PST
From: Jacobi.pa
Subject: Chipndale pre-Release 0.19
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi, ChipndaleImplementors^.pa
Reply-to: Jacobi.pa
Chipndale pre-Release 0.19 exists.
DO NOT yet convert design work to 0.19. (0.19 is not yet tested enough).
DO convert programming efforts to to 0.19. Most publicly available
software is already converted but not tested. The unfinished release
message can be found on [indigo]<chipndale>5.2>cd19>cd19.tioga
until the release is made.
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
<N>-<Space> 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.
=-<SHIFT>-{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]<chipndale>* )
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 <Spreitzer.pa>
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]<Rosemary>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/cddesign©.df
cd©.df, cmos©.df, nmos©.df
CornerStitching©.df, spinifex©.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 <P-SHIFT-middle> 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.
<ESC-LF> stops drawing of viewer (commands are exchanged)
<ESC-DEL> abort command, (programmers (cif, plot,... :! please check for aborts)
Scaling and moving the view works concurrently with other commands!
<P-SHIFT-middle> 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.ChipmonkColorMaps: "default.CDColorMaps"
better: use full path name
Chipndale.ChipmonkColorMapNum: 2
Chipndale.ChipmonkColorPatterns: "default.CDColorPatterns"
better: use full path name
Chipndale.ChipmonkColorPatternNum: 3
Chipndale.ChipmonkColorPatternNum: 2
good value for nmos
Chipndale.SavePeriod: 0
to specify interval for automatic saving designs, in seconds; -1 to avoid saving
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: 7 Sep 84 14:32:36 PDT
From: shand.pa
Subject: CMos rules
To: ChipNDaleUsers^.pa
Cc: shand
Reply-to: shand.pa
Whar follows is an informal description of the design rules for CMos implemented by the current version of Spinifex. To the best of my knowledge it is correct however be forewarned that the truth is in the code not in this message. Note: each cell in the hierarchy must satisfy these rules in isolation.
The rules:
Any material appearing on the cut, cut2, ovg & bur is flagged as an error if it appears in isolation (i.e. outside of a ChipNDale object like a Poly-metal contact).
Metal-2
4l Spacing between unconnected Metal-2
4l Width for any Metal-2
No rules are enforced regarding to the placement of Metal to Metal-2 contacts
Metal
3l Spacing between unconnected Metal
3l Width for any Metal
Polysilicon
2l Spacing between unconnected Polysilicon
2l Width for any Polysilicon
1l Spacing between Polysilicon and unconnected Diffusion of any flavour (including well contacts)
Polysilicon may abut Connected Diffusion of any flavour, but may not overlap it.
1ýl Spacing between Transistor Gate and Buried contact window.
Diffusion of any flavour (ndif, pdif, n-wCnt & p-wCnt)
3l Spacing between unconnected Diffusions
2l Width for any region of n-type or p-type Diffusion
n-type Diffusion
May not overlap p-type Diffusion (regardless of connectivity)
5l Spacing to well boundary
Well contact Diffusions
May appear in both the well and the substrate and may overlap the corresponding wiring diffusion (i.e. n-wCnt <=> ndif, p-wCnt <=> pdif)
n-Well
No minimum separation or width is enforced for wells
Wells must be connected to one and only one node through material on the n-wCnt layer touching the well (In fact a minimum overlap should be enforced but it is not)
The design rule regard isolated regions of n-wCnt as separate nodes, this may generate spurious errors for guard rings which are broken by polysilicon wires which cross the well boundary
####################################################
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: 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: 31 Jul 84 07:02:04 PDT
From: shand.pa
Subject: Spinifex pre-a release
To: ChipNDaleUsers^.pa
Cc: shand
Reply-to: shand.pa
Spinifex - the ChipNDale DRC/Extraction Package.
DF file: /indigo/chipndale/5.2/top/Spinifex17.df
Documentation: SpinifexDoc.tioga (in DF file)
Maintainer: Shand
In view of Christian's message regarding the availability of Extraction/DRC in ChipNDale, I decided I ought to put the code somewhere where people can start to play with it. Actually it is largely complete and should perform useful Extraction/DRC of both CMos and NMos layouts.
To prepare to use Spinifex, bringover the DF file and type either
CMosSpinifex
or
NMosSpinifex
to the CommandTool (depending on your design's technology. Note: do not type Run ... , the above file are .load files).
Now to actually do a Extraction/DRC select (in the ChipNDale sense) a cell you are interested in and invoke the `program' menu (probably with the space-p command), one of the menu entries is DRC & Extract, this is the one one want. Time passes ... , something like the following appears in the ChipNDale `Terminal' viewer:

(Re)Select pointed (cell SumOfProd)
Comencing analysis of hierarchy rooted at "SumOfProd"
Hierarchy locked
Analyzing cell: "NORgate" . .... .... .... .... .... ...... 4/4 devices (212obj; 1665w)
Analyzing cell: "SumOfProd" . .... .... .... .... .... ...... 12/0 devices (130obj; 1101w)
Elapsed time = 1s
Commencing output of "SumOfProd.thy" file
Warning: no wiring spec file, reason:
 Couldn't find a file named "[]<>Users>Shand>Spex>chip.wspec".
— done.
Elapsed time = 2s
Analysis of hierarchy complete
By selecting a cell you were actually asking for Extraction/DRC of the branch of the cell hierarchy rooted at the cell you selected (in the example above SumOfProd contained 3 instances of a subcell called NORgate, and NORgate contained no subcells). The 4/4 means cell NORgate contained a total of 4 transistors in it and its subcells, all 4 of which appeared in NORgate itself, SumOfProd contained 12 transistors total, none of which did not come from subcells. The `Warning: no wiring spec file ...' message should be ignored, it will go away shortly.
Currently the only circuit description format supported is Thyme (this will change as soon as I can make sense of Mike Spreitzer's requirements for comparison to Rosemary). The Thyme file looks something like this:
NORgate: circuit[ Vdd, Gnd, B, A, NOR ] = {
n1: node; ?:Stray[n1| apD𡤈, ppD𡤄];
n2: node;
Q1: CTran[B,n1,NOR];
Q2: CTran[A,Vdd,n1];
Q3: ETran[B,NOR,Gnd];
Q4: ETran[A,NOR,Gnd];
};
SumOfProd: circuit[] = {
Gnd: node; ?:Stray[Gnd| anD�, pnD�, aM�, pM�];
Vdd: node; ?:Stray[Vdd| apD�, ppD�, aM�, pM�];
-- ALIAS[ $B-1$, $NOR-1$] --
$B-1$: node; ?:Stray[$B-1$| aM�, pM�, anD�, pnD�, apD�, ppD�, aP�, pP�];
-- ALIAS[ $A-1$, $NOR-2$] --
$A-1$: node; ?:Stray[$A-1$| apD�, ppD�, anD�, pnD�, aM�, pM�, aP�, pP�];
$B-2$: node; ?:Stray[$B-2$| aP�, pP�];
$A-2$: node; ?:Stray[$A-2$| aP�, pP�];
-- ALIAS[ C, $B-3$] --
C: node; ?:Stray[C| aP�, pP�];
-- ALIAS[ D, $A-3$] --
D: node; ?:Stray[D| aP�, pP�];
-- ALIAS[ $(A+B)*(C+D)$, $NOR-3$] --
$(A+B)*(C+D)$: node; ?:Stray[$(A+B)*(C+D)$| aM�, pM�, anD�, pnD�, apD�, ppD�, aP�, pP�];
C1: NORgate[Vdd, Gnd, $B-2$, $A-2$, $A-1$];
C2: NORgate[Vdd, Gnd, $B-1$, $A-1$, $(A+B)*(C+D)$];
C3: NORgate[Vdd, Gnd, C, D, $B-1$];
};
and yes its a tioga node structured file!
Well as I've been writing this brief introduction I've been trying to think what are the glaring deficiencies in the current version of Spinifex which make it a pre-a release. I'm sure to leave something out, and when you come and berate me I'll just say "Oh yeah, that's right, hmm I forgot to mention that".
1) The design rules are incomplete, this is particularly true of rules with regard to wells (though Spinifex does insist that wells are connected to by one and only one node).
2) There is no support for `wiring spec' files as yet (the Warning message is to bother me into doing something about this).
3) The .thy files produced require some hand editing, I hope to reduce or eliminate this soon.
4) I don't know what to do about Aliases for signal names, currently I choose one and insert a comment in the .thy file indicating the choices I had available to me.
5) I think strays are fairly accurate but there could be bugs in this computation (if there are it is only a few percent error).
6) Spinifex could be both faster and less greedy for VM. (I have some ideas on how to achieve the first of these goals).
7) Extraction and DRC are always done together, this is so much of a bug, as it is fundamental to the approach I have taken however it could be argued that it should be possible to supress the output of .thy files and the like.
I almost forgot to show off one of the key features of Spinifex. Here is the example above, with a DRC error introduced in SumOfProd:

Analysis of hierarchy complete
.
.
.
(Re)Select pointed (cell SumOfProd)
Push into cell SumOfProd
metal for default
Add wire
pop
Pop from cell SumOfProd
flush: undo modifications
new cell: Create a new cell
replace: Replace the original cell
replace
Add selection (cell SumOfProd)
Comencing analysis of hierarchy rooted at "SumOfProd"
Hierarchy locked
Analyzing cell: "NORgate" — skipped, already analyzed; 4/4 devices (212obj; 1665w)
Analyzing cell: "SumOfProd" . .... .... .... .... .... ...||||... 12/0 devices 4 Design Rule Errors (120obj; 973w)
Elapsed time = 1s
Commencing output of "SumOfProd.thy" file
Warning: no wiring spec file, reason:
 Couldn't find a file named "[]<>Users>Shand>Spex>chip.wspec".
— done.
Elapsed time = 3s
Analysis of hierarchy complete
Notice that NORgate did not change between the two Extraction/DRCs, so it was not re-processed. Also note the reporting of design rule violations. Each `|' is a primitive rule violation, generally several primitive rule violations are generated for each logical violation (perhaps I should have put this on my `deficiencies', however it unlikely that things will improve in this regard, and if one uses ShowErrors — /indigo/chipndale/5.2/top/ShowErrors.df — it is in any case quite bearable).
  Mark Shand
####################################################
Date: 30 Jul 84 19:29:37 PDT
From: jacobi.pa
Subject: Tip table for Chipndale
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi
Reply-to: jacobi.pa
There it is, the new tip table for cmos
I think you'll love it.
Incorporated lots of Rick's, Pradeep's, Susan's and Louis's ideas, and code.
Given up operations on pointed objects.
More powerful selection.
More powerful stretches.
Lot's of Menu's.
All frequently used commands need only the left edge of the keyboard; mnemonic
commands are given up for speed win, except on menu's.
Complete, orthogonal, easy to remember. Very rare exceptions.
Modification actions happen only on mouse keys going up (left and right button).
Draw commands happen only on mouse keys down or going down (middle button).
Some documentation is on the tiptable itself.
Where
It is simply the default.
Restrictions
Do not create contacts with other than default size. I think contacts with other sizes
need to be reimplemented differently, and you might get conversion problems later.
So about angle transistors and alter. However, some conversion help (but not painless)
is guaranteed.
Future
The tiptable is not yet completely frozen, it might further evolve.
I do not yet know if I want to eliminate the commands not used by the new tiptable,
(as soon as the new tiptable is tested enough), or if I will keep them for the
sake of all the other tiptables. (Which I will not delete right now anyway).
It is, and will stay legal for everybody to make his own tiptable; however the range
of possible commands may be limited in future. Any additional code supporting
private or experimental tiptables must be done by creating new command modules, not
by changing standard chipndale modules; we might integrate them later.
Feedback
Please, before the documentation is complete; thereafter the tiptable might be fixed.
Directly to me, NOT INDIRECTLY; optional exception: students through their hosts.
Problems
The work on the tiptable has been extremely frustrating, partly because of indirect
feedback, partly because of no feedback, partly because of great ideas which had to be
thrown away since they did not extend in an orthogonal or complete way.
Some ideas have been realized in an hour by few lines of additional code. Others ideas
need additions in interfaces, these I will never implement before the next release. Some
further ideas need remodeling of fundamental chipndale structures; these ideas have to
be quite good, if I should stop my own work and implement them.
Some people had good ideas and a check list afterward. Please try not to do that; I prefer
to be my own master. I have really enough to do by implementing only some of the ideas.
Further, I have some other ideas what to do, which have nothing in common with writing
tip tables.
Some code has been written by users; having an open, easy extendable system starts
paying back. Now, I have to get used to it.
I hope the new tip table proves to be worth all the frustrations to create it.
Christian Jacobi
####################################################
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: 30 Jul 84 18:58:43 PDT
From: jacobi.pa
Subject: Success - message
To: ChipndaleUsers^.pa, ThymeUsers^.pa
Cc: jacobi, Ritchie, McCreight
Reply-to: jacobi.pa
This is a success story, a milestone in our tool developpment:
I'v made a picture of my screen, showing 4 viewers
- a chipndale cmos cell (manually made)
- the result of the extraction of the cell
- a thyme simulation of the cell
- a chipnsil logic diagram of the cell (manually made)

all made completely in Cedar, but only preliminary versions of the programs
were used.
Congratulations to Sweetsun, Mark and Me
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. (<space-\>) 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�LSE];

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)
####################################################
Date: 24 Jul 84 16:26:38 PDT
From: jacobi.pa
Subject: Chipndale release 0.17
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: jacobi, ChipndaleImplementors^.pa
Reply-to: jacobi.pa
Chipndale 0.17 released
New features
CMos now supports 5 lambda nwell surround.
CD17 does not convert the nwell correctly to the new 5 lambda surround if you have
not done the conversion already with cd16. This will not prevent me from deleting
cd16 after some time, without further notice.
Background saving process.
Mechanism for partially drawing objects
Lots of new or extended commands, for the tiptable writer.
Tiptable
Set with your user profile; use full path name.
The Tiptable war is not yet finished and the default tiptable is still the good old one.
However, who ever wants, may use newcmos.tip for cmos.
Subdirectories
They do partially work; figure out yourself what part.
If you have to use subdirectories, bringover chipndale into the same subdirectory
which you use to work with chipndale.
On public machines do not fill public subdirectories like ///Commands with chipndale
garbage.
DF file
/indigo/chipndale/5.2/top/cddesign.df
includes now plot software on the chipndale side of the .pd file
Documentation
/indigo/chipndale/5.2/top/cddoc.df
/indigo/chipndale/documentation/cd17.tioga

have fun
Christian
####################################################
--///cd17/cd17.tioga
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.
####################################################
Date: 8 Jun 84 12:49:50 PDT
From: Jacobi.pa
Subject: Chipndale tiptable for cmos
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi
Reply-to: Jacobi.pa
New EXPERIMENTAL TIP Table for Chipndale's cmos
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.
This is not the final tiptable, but it allows you to give feed back; it is based on Rick's proposal. Please give feedback now. Once the documentation is made, I might hesitate to do any further modifications.
more information on
/ivy/jacobi/tem/cmostip.tioga
Christian
####################################################
-- /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/<name of df file>
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,...)

Christian
####################################################
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
####################################################
Date: 16 May 84 11:53:27 PDT
From: Jacobi.pa
Subject: Chipndale conditional objects
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi, ChipndaleImplementors^.pa
Reply-to: Jacobi, ChipndaleImplementors^.pa
Chipndale now has conditional objects
(update to release 0.15)
Conditional objects have fields for a filename and a procedure name. Whenever the object should be instantiated, the procedure is evaluated and the object is instantiated only if the procedure call yielded TRUE.
The type of the condition procedure is exported from the module CDConditions, which also exports a procedure Index to determine the index of the object, if it was element of an array.
There is no way to read back conditional objects to chipmonk.
Christian

####################################################
Date: 11 May 84 17:03:08 PDT
From: Jacobi.pa
Subject: Color Versatec Plotting
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa, ChipmonkUsers^.pa
Cc: Jacobi, KimR
Reply-to: Jacobi.pa, KimR.pa
Chipndale now can make color plots of your chipmonk (and chipndale) designs on the Versatec color plotter.

Introduction on
 /indigo/chipndale/documentation/ColorVersatecDoc.tioga
Other chipndale documentation can be found via
 /indigo/chipndale/top/CDDoc.df

ChipmonkUsers:
 If you want to be informed on Chipndale, include yourself to one or both of
 the distribution lists ChipndaleDiscussion^.pa or ChipndaleUsers^.pa.

Christian and Kim
####################################################
-- 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]<chipndale>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 <name of chipndale file>
or
%CDReadCMCMOS <name of chipmonk cmos file>
or
%CDReadCMNMOS <name of chipmonk nmos file>
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 <name of pd file>
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.
####################################################
Date: 11 May 84 15:35:11 PDT
From: Jacobi.pa
Subject: Chipndale Release 0.15
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi, ChipndaleImplementors^.pa
Reply-to: Jacobi
Chipndale Version 0.15 Release
Color plot
see separate message from Kim
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
<TAB-CTRL-N> renames the selected object
<SHIFT-ESC> 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
<CTRL-[> show properties of selected object
<CTRL-SHIFT-[> 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
File's
/indigo/chipndale/top5.1/cddesign.df
/indigo/chipndale/top/cddoc.df
/indigo/chipndale/documentation/cd15.tioga
Christian
####################################################
--/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
<TAB-CTRL-N> renames the selected object
<SHIFT-ESC> 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
<CTRL-[> show properties of selected object
<CTRL-SHIFT-[> 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
####################################################
--chipnsil14.tioga
--Christian Jacobi April 24, 1984 3:57:50 pm PST
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
<TAB-CTRL-0>  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.TIPTable: "chipnsil.tip" -- this is default
-- Fonts do not have defaults
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 <TAB-CTRL-0> 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
<k> to set simplification treshold value of selected cell
select design <CTRL-H>
copy selected object from selected design: <H-middle mouse button>
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
<CTRL-5> sets double layer metal
<TAB-A-right mouse button> Area de-selection
<CTRL-A-right mouse button> Area add selection
step moves: <=> <\> <LF> <DEL> stepsize adjustable by control panel
New Technology
ChiPencil; separate message already out 23 Apr 84 12:07:32 PST
documentation: [indigo]<chipndale>documentation>chipnsil14.tioga
<TAB-CTRL-0> 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
####################################################
Date: 18 Apr 84 10:27:55 PST
From: Jacobi.pa
Subject: Chipndale update
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi
Reply-to: Jacobi.pa
Chipndale 0.14 is updated to accept chipmonks version 8 .chip files as input (produced by XChipmonk).
/indigo/chipndale/top5.1/cddesign.df
Christian
####################################################
Date: 6 Apr 84 15:21:15 PST
From: Jacobi.pa
Subject: Chipndale Release 0.14
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi
Reply-to: ChipndaleDiscussion^.pa, Jacobi.pa
Chipndale Release 0.14
Creating chipndale design files of lasting character is still restricted to alphatesters;
However, more alphatesters are welcome.
To future Alphatesters:
It is possible to write Chipmonk - format files (for nmos and cmos)
DRC and Analysis are still done using Chipmonk
Main changes visible to designers
Global menu: <G> - command
Import of designs
Pop from cell faster
Changed file format (upward compatible)
It is possible to set up the colordisplay from commandfiles
More detailed update messages are on:
/indigo/chipndale/documentation/cdPost13.tioga
/indigo/chipndale/documentation/cd14.tioga
DF files
executable code: /indigo/chipndale/top5.1/cddesign.df
documentation: /indigo/chipndale/top/cddoc.df
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 <G> - command
IO menu
directory menu
New Definition Modules
CDLRUCache
####################################################
Date: 6 Mar 84 12:56:46 PST
From: Jacobi.pa
Subject: Chipndale Release 0.13
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi
Reply-to: ChipndaleDiscussion^.pa, Jacobi.pa
Chipndale Release 0.13
(creating chipndale design files of lasting character is still restricted to alphatesters)
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
however, released somewhat fast to have a version on Cedar 5.1
More detailed update message is on: /indigo/chipndale/documentation/cd13.tioga
Christian
####################################################
--/indigo/chipndale/documentation/cd13.tioga
--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
####################################################
Date: 17 Feb 84 15:51:50 PST
From: Jacobi.pa
Subject: Chipndale Release 0.12
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi
Reply-to: Jacobi.pa, ChipndaleDiscussion^.pa
Chipndale Release 0.12
(creating chipndale design files of lasting character is still restricted to alphatesters)
cmos gets stretchy move
cmos designs can be written in .chip format
More detailed update message is on: /indigo/chipndale/documentation/cd12.tioga
Christian
####################################################
--/indigo/chipndale/documentation/cd12.tioga
--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
<?> [</-Shift>] tells how many objects are available and how many are selected
Query position and distance: <Q-Left>
Select new mode: toggle bit if new objects should be selected
<J-Left> for stretchy move
stretchy move toggle bit in control panel for <=>, <\>, <LF>, <DEL>
VersatecPlot [replace <Tab-V-Left> by] <Y-Left>
ViewerMenu: <V>
DesignMenu: <G>
ResetScale: <R-Tab>
SelectAll: <A-Space>
####################################################
Date: 2 Feb 84 12:50:36 PST
From: Jacobi.pa
Subject: Chipndale Release 0.11
To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa
Cc: Jacobi
Reply-to: Jacobi.pa, ChipndaleDiscussion^.pa
Chipndale Release 0.11
(usage of chipndale design files is still restricted to alphatesters)
Update message is on: /indigo/chipndale/documentation/cd11.tioga
Christian
####################################################
--/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�LSE];

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!!!]
####################################################
Date: 20 Jan 84 11:48:41 PST
From: Jacobi.pa
Subject: Chipndale, or, who wants an arrow in the back?
To: CSL^, IDL^, ChipndaleUsers^
Cc: Jacobi
Reply-to: Jacobi.pa
Chipndale, or, who wants an arrow in the back?
Chipndale is a program to draw pictures in the colors red, blue, green, and using 90 degree angels only. It will be the successor of Chipmonk, running with Cedar.
It's time for me to get some feedback, so, if you like, you may play with it. In addition, I'm searching for about two designers to sign up to try to use Chipndale for their real work for some time. To these few designers, I will provide help in transforming their Chipndale design files into the corresponding file format needed by the next Chipndale release.
Do not expect every feature of Chipmonk. Do not volunteer if your design is on any critical path or already near to the state of generating masks. There is yet no design rule checking or analysis program available to read Chipndale data, and, there is no way back to generate Chipmonk file format once a design is thrown over the fence to Chipndale.
The following DL's exists
  (Thank you Ron for the really fast creation of them)
ChipndaleUsers^.pa    Messages about releases, improvments, error corrections...
ChipndaleImplementors^.pa 
ChipndaleDiscussion^.pa  All the ideas, junk, ... related to Chipndale
DF file: /indigo/chipndale/top/cddesign.df
Documentation: /indigo/chipndale/top/cddoc.df (use /p option)
Christian
####################################################
plot10.tioga
[Indigo]<Chipndale>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]<chipndale>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 <TAB-V> 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. <TAB-CTRL-I>
File format change; files are now slightly smaller than chipmonk files.
####################################################