Chipndale16.tioga
Last Edited by: Jacobi, May 31, 1984 12:19:27 pm PDT
CHIPNDALE
CHIPNDALE 0.16 — FOR INTERNAL XEROX USE ONLY
Chipndale
An interactive editor for VLSI designs
Release 0.16
Ch. Jacobi, Kim Rachmeler (July 25, 1984)
A relatively incomplete documentation.
Filed on: [Indigo]<Chipndale>5.2>Documentation>Chipndale17.tioga

© Copyright 1984 Xerox Corporation. All rights reserved.
Abstract: Chipndale, son of Chipmonk, is an interactive graphic layout tool made to run in Cedar. Chipndale makes use of multiple windows, extensive parallel processing, vast amounts of memory, pop-up menus, and other assorted goodies. When complete, Chipndale will have a DRC and circuit extractor, a fast set of IO and checkplot routines, and modular device extensibility. What's more, everything in Chipndale will be completely technology independent, that is, all the features will be equally at home dealing with PC boards or CMOS chips. This document details the current state of development.
XEROXXerox Corporation
Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, California 94304

For Internal Xerox Use Only
0. Introduction
0.1. Background
Originally called Chipmonk II, Chipndale1 is the Cedar successor to Chipmonk, an interactive layout editor written for the Alto world. But although Chipndale looks a good deal like Chipmonk, there are still distinct dissimilarities. Like Chipmonk, combinations of keyboard and mouse commands allow creation and modification of both primitive (contacts, transistors) and constructed (cells) objects. Multiple views of a design are available on both the color and B&W displays. Chipndale can read in old Chipmonk files and some Chipndale designs can be written out in Chipmonk format. Unlike Chipmonk, Chipndale incorporates the concept of "technology independence", the idea that separate technologies (NMOS, CMOS, PC boards, etc.) do not interfere with the basic Chipndale kernel, nor do they interfere with one another. New technologies may be created with their own definitions of commands and structures, allowing Chipndale to expand to accomodate new methods and applications.
Although the functionality available has for the most part been specified, the access route to those capabilities is not well established. The mapping of commands necessary to invoke specific functions is evolving as the user interface becomes more refined. The moral of the story is:
The ice you are skating on is currently under development; it is apt to be thin in places.
This is not the best of all possible worlds. But don't get mad, get even; that is, if you are miffed at obvious shorcomings, send us mail (ChipndaleImplementors^.pa or ChipndaleDiscussion^.pa). We won't know about it unless you tell us.
The rest of this introduction will provide you with step-by-step information to start Chipndale and read in either Chipndale or Chipmonk design files. The rest of the document is intended as a reference manual; use the "Levels" button to scan the document for the general section you are interested in reading. The amount of descriptive detail increases with the number of visible levels.
1 © Walt Disney Productions. The name Chipndale comes from neither the fine furniture in England nor the fine figures in LA but from Chip 'n Dale, the two furry characters created by Walt Disney (two chipmunks -- Chipmonk II, get it?).
0.2 Getting Started
Saying Hello
Go find yourself a Dorado running Cedar 5.2 and login. Use the DF Tool to bringover the file:
/indigo/chipndale/5.2/top/cddesign17.df
It is usually best to create a separate subdirectory for Chipndale; this allows you to remove it easily when you want to upgrade to a new version. This DF file will equip the machine with all the information it needs to run the NMOS, CMOS, and Chipnsil versions of Chipndale. If you cannot find a Dorado, don't know how to login, or generally have trouble with any of the commands, ask a nearby Dorado-user to help you out. Or you can read the basic documentation available on:
[Indigo]<Cedar5.2>Documentation>HowToUseAPublicCedarMachine.tioga
Becoming Acquainted
To get a design up on the screen, start up a session of Chipndale (in the same subdirectory containing its files) with one of the following incantations:
% CDRead <optional name of a chipndale design file> or
% CDReadCMNMOS <optional name of a chipmonk NMOS design file> or
% CDReadCMCMOS <optional name of a chipmonk CMOS design file>
(the latter two stand for:
ChipnDaleReadChipMonkNMOS and ChipnDaleReadChipMonkCMOS)
These commands will call up the Chipndale Terminal monitor (hereafter referred to as "Terminal") and will display the design on the screen. Terminal keeps a log of all the commands issued concerning Chipndale; it is where you will look to find information about what Chipndale is trying to execute and how that execution is progressing.
It is important to know what technology the chip was designed for when you are reading Chipmonk files so that you use the correct form of the read command. (The Chipndale design files know their technology, however the code handling that technology must be loaded before issuing the CDRead command). If no filename was given to the command, Terminal will respond with the request:
Input file >
Type the file name in at the prompt. The file may either be present locally or on one of the file servers; default is either a ".dale" or a ".chip" file depending on the command. For example, you could read in a file either as:
/ivy/monier/aspen
or as:
aspen.chip
if it was already on the local disk. You usually do not need to type in the extension.
If all is going well, the file will be read in and a Chipndale viewer containing the design will be opened on the screen. A control panel will also appear in the lower right of the screen whose buttons are functionally similar to the buttons available at the bottom of the Chipmonk screen.
1. General Definitions and Descriptions
1.1. The Terminal
1.2. The Control Panel
1.3. Technologies
1.4. Designs
1.5. Primitive Objects
1.6. Cells
1.7. The Cell Directory
1.8. Objects and Applications
1.9. Tip Tables
1.10. Additional Tools
DRC
PLA generator
Circuit extractor
Circuit simulator
2. Commands
2.1. Drawing wires, move and copy, transformations
Wires
Middle
Pressing the Middle button and moving the mouse draws a wire, releasing the button confirms the position and length of the wire
<SPACE>
Hitting <SPACE> while drawing a wire flips the orientation of the direction the wire bends
<SHIFT>
Hitting <SHIFT> while drawing a wire confirms a wire segment
Move and Copy
M-Middle
Move selected objects to current cursor position
C-Left
Copy selected objects to current cursor position
Rotation
<CTRL>-R
The <CTRL>-R command rotates the selected object by 90 in a clockwise direction.
In order to rotate the design 90#clockwise, select the entire layout with (Space Bar)-A. Now indicate a rotation with CTRL-R. The design will be rotated keeping the upper left corner fixed. As long as the design is selected, hitting more CTRL-R's will continue the rotation. You can remove the selection by holding down "C" and right-clicking the mouse.
This command sequence is useful in conjuction with the plotter routines.
2.2. Transistors and Contacts
Transistors
T-Middle
Place transistor at current cursor location
Z
Draw angle transistor at current cursor location
Contacts
?
2.3. Changing objects
In General
Using the left button applies the command to the object pointed to; using the <CTRL> key applies the command to all selected objects.
Widen, Narrow
W-Left
Widen pointed object
W-<CTRL>
Widen selected objects
N-Left
Narrow pointed object
N-<CTRL>
Narrow selected objects
Lengthen, Shorten
L-Left
Lengthen pointed object
L-<CTRL>
Lengthen selected objects
S-Left
Shorten pointed object
S-<CTRL>
Shorten selected objects
Stretch
S-Middle
Stretch. Change all selected objects the amount where the mouse is moved; use direction and orientation relative to pointed object
2.4. Viewer commands
Moving Around in the Viewer
"<", ">", <V>, Mark-<SPACE>
There are several methods for moving in the viewer: changing scale and changing position.
Using the commands "<" and ">" allows you to scope in and out of the design quickly. Another way to change scale is to use the viewer pop up menu (<V>-Command).
Once you have the scale you want, it is time to move the viewer over the portion of the design you are interested in. To use the move command, while holding down the space bar, move the cursor with the middle button down. A line will be continuously traced from the starting cursor position to the current one. When you release the mouse button, the viewer will move in proportion to that vector.
If you can see the general area you want to be in the viewer, draw a rectangle around it with the left button while the space bar is down. The selected portion of the design will replace the current area in the viewer.
2.5. Cells
Push-Pop
<CTRL>-P
Pushes into the selected cell
P-Left
Pushes into the cell currently pointed to
<ARROW-CTRL>, <ARROW-SHIFT>, and <ARROW-TAB>
All pop out of the pushed cell.
—What is the difference between these commands?—
Create cell
<CTRL>-C
Draw cell
C-Middle
Macro's for Chipnsil
See this space for future developments.
The cell directory
<CTRL>-Z
Every Chipndale design has a directory, which may be called the cell directory. However, cells are not the only object which have entries in the directory. The rule is: every object which references or contains other objects is in the directory. The designers need not wory about commands which modifiy the directory, chipndale will simply not execute commands which would cause the design to be in an inconsistent state.
<CTRL-Z>:  
list contents of directory.
Directory popup menu:
list directory: list contents of directory
clean up: list unused entries, and ask whether they should be removed from the directory.
remove entry: remove a particular entry from directory, (checked, unly unused entries can be removed)
list imports: list names of imported designs
list importee: list referenced object of a particular imported design
IO: calls IO popup menu
2.6. IO, Imports, and Includes
IO
<CTRL-O>
To write a Chipndale design onto a file use the <CTRL-O> command, or simpler, do it using the IO pop up menu. Default extension is .dale.
Chipmonk IO
—How do I get the IO pop-up menu?-
The IO pop-up menu allows to create backwards compatible chipmonk output. (.chip file). Not all chipndale features can be written onto chipmonk compatible files. This command is restricted to CMOS and NMOS IC designs.
Imports
See this space for future explanations.
Include
See this space for future explanations.
2.7. Repetitions
Description
?
Commands
<R-middle>
Make a repetition of the selected objects
<I-CTRL-SHIFT>
Decrement count on selected objects (repetitions)
<I-CTRL>
Increment count on selected objects (repetitions)
Any repeated object has the possibility to ask what index it has in the repetition.
2.8. Properties, SignalNames
Properties
It is possible to hang arbitrary properties to any application of objects. These properties may or may not affect any program's behaviour, or may only be comments for designers. Programs can protect their properties from designers, so the property mechanism can be used without danger of contention.
<[-CTRL>
Shows all the properties of the selected application
<[-CTRL-SHIFT>
Asks for a property name and allows to replace the value of the property. Properties included interactively cannot make use of all the nice Cedar types, however, a pop-up menu allows you to select the types of the property value in some limited range. Prefered types for properties are Rope.ROPE, ATOM and REF INT. The name of a property is always converted to an ATOM.
Properties using these types are saved while a design is written on a file and read back. However, clientprograms may affect this and force a different behaviour for properties they own. Such properties are usually reserved by the implementor for his/her exclusive use so designers will not be surprised. It may be good to load client programs first, and only thereafter use undocumented properties; they might be disabled by a client program, even if it runs later.
-Need and example here.-
One of the uses of properties is for communication with procedures evaluating conditional objects: these procedure have the possibility to query all their containing applications for arbitrary property values.
Signal Names
$SignalNames are reserved properties. Their value should be a ROPE. The <CTRL-T> and <left-T> command allows defining signal names.
<CTRL-T>:
Signal name for selected application;
<left-T>:
Signal name for pointed application
2.9. Text
Chipnsil Fonts
Text on MOS
2.10. Conditional objects
See this space for future explanations.
3. Output
3.1. Generating CIF files
See this space for future developments
3.2. Plotting on the Color Versatec plotter
Creating The Plot
Y-Left
You cannot plot on both, the black and white and the color plotter at the same time, since the same command is used.
Bringover the file [indigo]<chipndale>5.2>top>colorvplot16.df with the DF tool. (16 is the current chipndale version, keep this number up to date, independantly of this documentation).
- All of Chipndale will be broughtover if not already present.
- You should bringover to the subdirectory from where you run Chipndale.
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 (if it's not there already). Execute one of the following:
% 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.
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 of paper you want the plot plotted on; each strip will be made into a pd file named "plot(i).pd" where i is 0..(#strips -1). The plot will be made as wide as the given number of strips will allow. In each strip, a '.' will be printed for every horizontal band as it is completed. An arrow will travel down the plot indicating portion of the plot under consideration; the phrase "finished plot(s)" indicates that all strips have been done.
Sending To The Versatec
%peach belle <name of pd file>
The Versatec must be in "Soliciting Client" mode before it will print your file. 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 (the one next to the red button, above the LED's) and wait for the correct prompt to appear.
To start sending the PD file, give the command:
%peach belle <name of pd file>
and the file will be transferred over the net to Belle, aka the color Versatec. A pie-shaped icon will appear indicating the portion of the file that has been transferred. The Peach software will wait for Belle to be ready before starting to send the file. If you are waiting for the file to start being transferred, it might be a good idea to check whether Belle is really busy or just needs rebooting. Do NOT reboot if the LED indicates disk activity ( displays some percentage of CPU utilization less than 100 and greater than 0).
Completed plots are cut off each night and left for pick-up on a table in the Purple Lab. Users are strongly discouraged from cutting off their own plots. (It is fairly difficult to install the paper properly such that the next user gets a good registration on his/her plot.)
Color Selection
Description
?
Example
?
You can easily change the colors assigned to levels by editing the command files VersatecCMOS.cm and VersatecCMOS.cm.
3.3. Plotting on the Black and White Versatec plotter
Creating the Plot
You cannot plot on both, the black and white and the color plotter at the same time, since the same command from the tip table is used.
Run the vplot module by "run vplot" in the user exec, or have it run by the "Chipndale.RunPrograms" userprofile option.
Manipulate the design in the viewer so that you can see the entire amount of information you want to print. Hold down Y, and with the left button down, draw a rectangle containing that part of the design that you want to come out on paper. When you release the button, Terminal will ask you to select the number of strips you want the design to be printed on (for all you VLSI wallpaper fans). A new viewer will appear, showing the middle of the horizontal stripe currently under consideration. An arrow pointing to the design will show you how far the transfer has progressed. After the transfer is complete, the connection to the Alto will be closed and the Trident file "plot.bits" will be printed on the Versatec. This routine should not break even on large and complex designs.
3.4. Using the Color Display
On and Off
Chipndale also uses the color screen as a viewer. Type the command:
%cdcolor
-Can I also use the command %colordisplay on?-
to enable the display. You can set up the color screen for chipndale with the user profile. CDPattern reads in a pattern from a pattern file of chipmonk, specify which file by using the userprofile. CDColorMap reads in a chipmonk colormap. Use the command:
%colordisplay off
to get rid of the colordisplay and retrieve the left boundary of your screen.
4. Chipndale and Chipmonk
4.1. Quick introduction for veteran Chipmonk users
Wires
To draw wires just press the middle button and move the mouse.
<SPACE> while the button is still kept down flips the wire
Releasing the middle button draws the entire wire.
<SHIFT> while the button is stil kept down draws a segment of the wire.
Menus
<G> displays a global menu
<V> displays a viewer menu
Selection
<SPACE>-Mark shows the selected Rect on an this viewer
<SPACE>-Select shows the selected Rect on an OTHER viewer
Viewers
<SPACE>-Draw moves this viewer
< grows the design (see more detail on smaller part)
> shrinks the design (see more in less detail)
/ shows positions of other viewers
All the other commands are analogous to Chipmonk or inherently obvious (cross fingers).
4.2. What's really different from Chipmonk
Some few commands...
All the fuss about technology independency. It's more than you would expect.
Large designs, (32 bit numbers)
Easy to use for clients: All usefull commands can also be accessed from calling procedures: Open ended client interfaces.
It's own implementation is based on the client interfaces.
It's list of object types is open ended, including their representation on files.
Multiple viewers per design.
Multiple designs.
Runs on Cedar, gets all the advantages of an integrated environment.
NMOS and CMOS are incompatible, they are implemented as different technologies.
Pop-up menu's.
Terminal viewer for log.
Imports of (References to) other designs
Real repetitions
Conditional objects.
Use of property lists.
Checklots on both color and B&W Versatec plotters.
4.3. What's missing in Chipndale
DRC
Analysis, Extraction,
Some programs which run in Chipmonk
Pla generator, Rom maker, ... its all in progress
CIF generation, EBES mask generation
once worked, but needs to be updated
Feedback from real designers
is really missing
5. Appendix
5.1. User Profile Options and Commands
Control of the pop-up menu
PopUpMenu.FontFamily: "Helvetica"
PopUpMenu.FontSize: 10
PopUpMenu.FontBold: TRUE
PopUpMenu.FontItalic: FALSE
PopUpMenu.LineHeightChange: 0
Chipndale kernel
Chipndale.NewViewerIconic: FALSE
-- controls creation of viewers showing designs
Chipndale.ControlViewerOpenIconic: FALSE
-- controls creation of control panel viewers
Chipndale.CatchLowLevelErrors: TRUE
--set to FALSE to help debugging, usually it is possible to continue
Chipndale.CatchErrorsWhichCauseDeadlock: TRUE
--set carefully FALSE to help debugging, but
--if errors occur, you loose all your work which is not saved onto files
Chipndale.ChipmonkColorMapNum: -1
-- in four bits per pixel mode only
-- <0 => use default colormap
-- 0 => use default colormap, but read in the colormap file
-- >0 => use a colormap from the ChipmonkColorMaps file as in profile
Chipndale.ChipmonkColorMaps: "default.CDColorMaps"
Chipndale.ColorStartLeft: TRUE
Chipndale.ColorBackWhite: FALSE
Chipndale.ColorBackBlack: FALSE
-- random if none, or both, ColorBackBlack and ColorBackWhite are TRUE
Chipndale.ColorStartBits: -1
-- -1 => don't touch
-- 0 => set up to current bits per pixel mode, if reasonable
-- 4 => set up 4 bit per pixel mode
-- 8 => set up 8 bit per pixel mode
Chipndale.CursorOnesWhite: TRUE
-- initial color of cursor on colordisplay
Chipndale.RunPrograms: NIL
-- include a list of bcds which should be runned whenever
-- chipndale is started
Chipndale.ChipmonkColorPatterns: "default.CDColorPatterns"
-- nmos and cmos only
NMos-specific user profile options
Chipndale.NMos.TIPTable: "ChipndaleNMos.TIP"
Chipndale.NMos.ChipmonkColorPatternNum: 0
CMos-specific user profile options
Chipndale.CMos.TIPTable: "ChipndaleCMos.TIP"
Chipndale.CMos.ChipmonkColorPatternNum: 0
-- currently cmos only
-- <0 => use entry from ChipmonkColorPatterns file
--   with positionkey = ABS[ChipmonkColorPatternNum]
--   (to get positionkey -0 use 1)
-- 0 => use default colorpatterns
-- 1 => use chipmonks default colorpatterns
-- >1 => use entry from ChipmonkColorPatterns file
Chipnsil specific user profile options
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
.... 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
5.2. List of Commands
Control panel commands
Control panel commands are executed by clicking mouse buttons on top of the text (not the value)
left: increment value
right: decrement value
CTRL-left: double value
CTRL-right: half value
any-SHIFT: set default value
any-CTRL-SHIFT: input value
middle on to of a layer description: selects this layer as default for drawing wires
The control panel can also be scrolled.
Pop-up menus
Global pop-up menu <G>
IO: calls the IO popup menu
Viewer: calls the viewer popup menu
Directory: calls the directory popup menu
Rename: Renames the design
Select all: Select all applications
Transform: Calls the transform popup menu, works on selected
Statistic: Displays the number of objects, selected objects. If only one object is selected, shows further information about that object
Viewer pop-up menu <V>
Grid: grid spacing (by popup menu)
Ticks: ticks (by popup menu)
Split: Split viewer
Reset: Reset scaling such that the whole design is visible
Quickgrow: Expand viewer scale by # (4 times as much as a "Grow")
Grow: Expand viewer scale by # —By how much?-
Shrink: Compress the viewer scale by # —By how much?-
Quickshrink: Compress the viewer scale by # (4 times as much as a "Shrink")
Drawmode: Monitors drawing of design if in a pushed cell;
viewer may optionally ommit drawing the outside cell objects
Simplification: simplification threshold of viewers can be modified to show more or less details.
Directory pop-up menu —how obtained?-
list directory: list contents of directory
clean up: list unused entries, and ask whether they should be removed from the directory.
remove entry: remove a particular entry from directory, (checked, unly unused entries can be removed)
list imports: list names of imported designs
list importee: list referenced object of a particular imported design
IO: calls IO popup menu
IO pop-up menu  -how obtained?-
Output: Create a .dale file.
Import: Import a design. Objects now may be referenced.
Include: Include a design, all the objects are merged into the design.
list imports: list imported designs
directory: calls the directory popup menu
Chipmonk output: Output chipmonk compatible, version 7 .chip file. Restricted to nmos and cmos.
Arbitrary commands (to viewer with input focus)
A
<A-Space>: select all
<A-left>: Alter pointed object
<A-right>:  Area selection
<TAB-A-right mouse button>:  Area de-selection
<CTRL-A-right mouse button>:  Area add selection
C
<C-middle> draws a cell
<CTRL-C> create a cell using the selected objects
<C-left> copy selected objects
<C-TAB-CTRL> transform (certain) selected to cell (works for repetitions, busses)
D
<D-middle> delete pointed object
<D-left> invoke debug pop-up menu
<D-CTRL> delete selected objects
<D-TAB> ask for an object and remove it from the directory
E
<E-left> expand pointed cell
<CTRL-E> expand selected cells
F
<F-SHIFT> Flush the list of remembered deleted objects
G
<G>: invokes the global pop-up menu
H
<CTRL-H>:  Select this design (as Source for inter-design copy)
<H-middle>: copy selected object from selected design; Actually it does NOT copy, but checks for the name and creates a reference
I
<I-middle> Draw an imported object
<I-SHIFT-left> Decrement count on pointed object (repetitions)
<I-left> Increment count on pointed object (repetitions)
<I-TAB> Import a design
<I-TAB-CTRL> Include a design
<I-CTRL-SHIFT> Decrement count on selected objects (repetitions)
<I-CTRL> Increment count on selected objects (repetitions)
J
<J-left> stretchy move
K
<K>:  Set of simplification treshold value for selected cell.
L
<L-left> lengthen pointed object
<L-middle> Draw a text (optional command)
<L-CTRL> lengthen selected objects
M
<M-CTRL> Mirror pointed object
<M-middle> Move selected objects
N
<TAB-CTRL-N>  renames the selected object
<N-left> narrow pointed object
<N-TAB> rename a design
<N-CTRL> Narrow selected objects
O
<O-CTRL-TAB> Output the design (.dale file)
<O-SPACE> Output the design (.chip file) THIS COMMAND WILL BE REMOVED
P
<CTRL-P> Push into selected cell
<P-left> Push into pointed cell
Q
<Q-left> Querry for coordinates
R
<R-left> Rotate pointed object
<CTRL-R> Rotate selected objects
<TAB-R> Reset scale such that the whole design is displayed in the viewer
<R-middle> Make a repetition of the selected objects
S
<S-left> Shorten pointed object
<S-CTRL> Shorten selected objects
<S-TAB> Display names
<S-middle> Stretch. Change all selected objects the amount where the mouse is moved; use direction and orientation relative to pointed object.
U
<CTRL-U> Undelete
V
<V>: invokes the viewer popup menu
W
<W-left> Widen pointed object
<W-CTRL> Widen selected objects
X
<CTRL-X> Transformation of selected objects (Transformation selected by popup menu)
<left-X> Transformation of pointed object (Transformation selected by popup menu)
Y
<Y-left> Plot. Command known only if plotter package is loaded; either black and white or color depending which plot package is loaded.
Z
<Z-CTRL-SHIFT> Display names of imported objects of an imported design
<Z-SHIFT> Display names of imported designs
<Z-CTRL> Display names of objects in directory (cells, ...)
0
<0-left> Defaulten-?- pointed object
<0-CTRL> Defaulten selected objects
Odd keys
<=>:  move selected to the left
<\>:  move selected to the right
"<": Scale to more detailed view
">":  Scale to more general view
<LF>:  move selected up
<DEL>:  move selected down
<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.
<CTRL-[>  show properties of selected object
<CTRL-SHIFT-[>  change property of selected object
<ARROW>
<ARROW-CTRL> Pop out of pushed cell
<ARROW-SHIFT> Pop out of pushed cell
<ARROW-TAB> Pop out of pushed cell
<SPACE>
<SPACE-Middle> Move viewer
<SPACE-Left> Show rectangle on this viewer (If area too small, show position without scale change)
<SPACE-Right> Show rectangle on other viewer (If area too small, show position without scale change)
<SPACE-Middle-while drawing wire> Flip direction of jog in temporary wire
<CTRL>
<CTRL—while drawing wire> Draw segment
<"-CTRL> make conditional or change condition procedure
<"-CTRL-SHIFT> check all condional procedures and optionally reload them
—Are these different from the ones above?-
<[-CTRL> Show properties of selected application
<[-CTRL-SHIFT> Enter property for selected application
/
</-SHIFT> Display number of selected object; if only one object is selected, display more information
</> display border of visible area shown in other viewers
<Right>
<Right> deselect all, select pointed object
<Right-SHIFT> select pointed object without changing selection of other objects
Commands specific for both, NMos and CMos
<B> middle: Burried contact
<T-CTRL> enter name for selected object
<T-left> enter name for pointed object
<T middle>: Transistor
<Z>  Draw angle transistor
<CTRL-1>: select diffusion as current layer
<1 left>: select diffusion as current layer
<1 middle>: Contact current diffusion to metal
<CTRL-2>: select poly as current layer
<2-left>: select poly as current layer
<2 middle>: Contact poly to metal
<CTRL-3>: select metal as current layer
<3-left>: select metal as current layer
<3 middle>: Button contact
<CTRL-5>: select metal-2 as current layer
<5-left>: select metal-2 as current layer
<5-middle>: draw via
NMos commands
<P-middle> Draw pullup
CMos commands
<B> shift middle: Burried contact with p-diffusion
<P-middle> Draw transistor with p-diffusion
<CTRL-4>: select p-diffusion as current layer
<4 left>: select p-diffusion as current layer
<4 middle>: Contact p-diffusion to metal
ChipnSil commands
<TAB-CTRL-0> command to handle macros. This allows both, creation of macros using the selected cell, or changing the border of a selected macro.
<T-Draw> Draw text in current font
ComandTool commands
CDNewNMos
Create a new empty nmos design
CDNewCMos
Create a new empty cmos design
CDNewSil
Create a new empty chipnsil design
CDRead
Read a chipndale design. (.dale file)
The technology of the design on the file must be loaded.
CDReadCMNMos
Read a chipmonk nmos design (.chip file)
CDReadCMCMos
Read a chipmonk cmos design (.chip file)
CDColor
Shows a color popup menu. Options:
Cedar: resets the colormap to standard cedar values
ReadEntry: calls CDColorMap command
MyColors: Uses chipndale's default colormap; alternates background every second call.
Cursor-X: swaps the representation of the cursor
4 bit left: obvious
4 bit right
8 bit left
8 bit right
CDColorMap
Ask for a colormap number and sets up the colormap. 0 is default chipndale, n>0 is an entry from a colormap file.
CDNMosPattern
Ask for a pattern number, changes nmos to use this number to represent color patterns. 0 means chipndale's default patterns, 1 means chipmonks default patterns, n>1 is the entry on a pattern file.
CDCMosPattern
Same as CDNMosPattern
5.3. Useful Things to Know
If output of a design crashes but you want to save it
Look at the commandfile CDDesign.cm
More documentation
See [indigo]<chipndale>top>CDDoc.df
Distribution-lists on the grapevine
ChipndaleImplementors^.pa The pure creatures reading your complaints, uh, suggestions.
ChipndaleUsers^.pa The user society. You get release messages, status reports and thereon.
ChipndaleDiscussion^.pa Open forum for discussion.
Note: Lists are restricted to Xerox employees, part-time employes and PARC summer students.
5.4. Client interfaces
Interesting modules
CD
CDOps
CDCommands
CDCells
CDDirectory
CDInline
CDApplications
CDValue
CDProperties
Of special interest to designers
CDConditions