ChipNSil25Doc.tioga
Written by: gbb, October 11, 1985 4:37:41 pm PDT
Last edited by: gbb November 25, 1987 1:12:01 pm PST
CHIPNSIL 2.5
DATOOLS 7.0 — FOR INTERNAL XEROX USE ONLY
ChipNSil 2.5
An interactive schematic entry program
Giordano Beretta
© Copyright 1985, 1986, 1987 Xerox Corporation. All rights reserved.
Abstract: ChipNSil is a graphical editor featuring the same user interface as ChipNDale. From an implementation point of view, ChipNSil is just another ChipNDale technology, therefore the designer needs no additional documentation beyond the ChipNDale documentation. However, ChipNSil is also used to create simple illustrations, and the ability to read Alto and Cedar Sil files has attracted users outside the designer community. This document shall help them to get started; it does not duplicate the full ChipNDale documentation.
Created by: Giordano Beretta, Lissy Bland, Christian Jacobi
Keywords: ChipNDale, Documentation, Schematics, Illustration, Illustrator, Sil
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Getting started
Starting ChipNSil
The documentation you are reading may be old. To find the latest version of ChipNSil, enter the following command in a Command Tool viewer [the ® symbol stands for the version number of the current Cedar release. If you do not know it, type Version in a Command Tool viewer]:
list [DATools]<DATools®>Top>ChipNSil*.df
If Cedar complains telling you
-- Couldn't find the server for "[DATools]<DATools®>Top>ChipNSil*.df"
type in the Command Tool viewer the following line (if you are at PARC):
PSAdd DATools -r Cyan Cyan Renegade.Alpine
If you are confused, locate a DA tool implementor or a designer and ask him what the current version is.
Suppose you determined that the latest version has the number 25. To get the files onto your disk type in the Command Tool viewer:
BringOver -p [DATools]<DATools®>Top>ChipNSil25.df
The next thing you need to do, is to load the program into memory. To do that simply type:
CDSil
ChipNSil responds opening a viewer labelled "Terminal". It will be used for messages and prompts.
Fine point: Once you have started to use a particular Command Tool viewer, you should not change to a different Command Tool. This is to be sure that all you need is in the same working directory.
Reading a drawing
Case 1: you have an existing ChipNSil file you want to edit. The command to be entered in the Command Tool viewer to read it is:
CDRead <file name>
Case 2: you want to create a new file: type in the Command Tool viewer:
CDNewSil
Case 3: you want to work on a Sil file. ChipNSil will convert the file to its format and allow you to edit it. However, you will not be able to produce an updated Sil file. The command is:
CDReadSil <file name>
In each of these cases ChipNSil will react in the same way. It opens a viewer for the drawing (either on the color screen or on the left of the black and white screen) and a small control panel viewer in the bottom right corner of the screen. Now you can start editing.
If the above did not happen, look in the Terminal viewer for an explanation.
You might have to do something called "push into a cell". Read section 6 if you are not able to select single elements of the drawing.
2. Basic editing commands
The mouse
The mouse buttons have the following fixed meaning:
Left (red): make a new selection!
Middle (yellow): insert; draw from where I clicked down to where I released the button!
Right (blue): Add to the current selection!
If you do not move the mouse while you select, ChipNSil marks selected the closest object it can find. If you have several objects clustered one above the other, keep the mouse button pressed and hit the space bar until ChipNSil marks selected the object you want.
Of course, if you move the mouse while you select, everything inside the rectangle created by the mouse movement is selected.
Drawing lines and rectangles
Look at the control panel. In the second line you see a list of colors. To select the color in which subsequent input will be drawn, click the middle (yellow) mouse button on the color name. ChipNSil responds writing this color name on the first line ("current layer").
The numbers below the color names are the thicknesses in which subsequently specified lines are drawn. Each color has an own value, and when a color is chosen, its own thickness is used. To increase the thickness of a color, hit the left (red) mouse button on its name. Similarly the right (blue) mouse button makes the lines specified subsequently thinner.
To draw arbitrary rectangles, set the thicknesses of the color to 0.
To change the color of a set of rectangles or strings, select the new color in the control panel. Then select the rectangles or strings you want to change and hit the quote key while selecting (or hit the "CTRL" and the quote key simultaneously without using the mouse).
Writing text
On the control panel there is a line which starts with the word "font". Place the cursor on it and hit any mouse button. A menu pops up. Select a font for the subsequent text input and ChipNSil writes its name right after the word "font".
To actually write some text, hit the "Y" key while you press the middle mouse button. Now look in the Terminal viewer. ChipNSil is prompting you for a string, terminated by a "RETURN".
If you just want to replace an existing text, but keep its attributes (font, color and location), hit the "Y" key while selecting.
Similarly you can just change the font of some text. First select the new font in the control panel. Then hit the "F" key while selecting. If there is a lot of text that should get the same font, just go ahead and select the whole area; ChipNSil is not bothered if the selected area includes lines as well as text. The new font is the one you last selected in the control panel.
Moving things around
That is easy. Just keep the "CTRL" key pressed while moving the mouse with the appropriate selection key down. You must release the mouse button before you release the "CTRL" key.
If instead of "CTRL" you keep the "SHIFT" key pressed, the selection is copied. Again, the mouse button must be released first.
Or instead, you can keep the "TAB" key pressed. This causes the object to be stretched. (Text cannot be stretched). Indeed, stretching can also be negative, meaning shrinking. Since these two operations are triggered with the same command, the cursor has to be inside a rectangle for ChipNSil to figure out whether to stretch or to shrink. The edge closest to the cursor is pushed or pulled in direction of the mouse movement. If you used the right (blue) mouse button to select multiple rectangles, you can use any of them as a representative for the group. Again, the mouse button must be released first.
Deleting
To delete, select the objects and then hit "CTRL""D". If you made a mistake and want your stuff back, just press "ESC""D".
3. Adjusting the view
Zooming
To enlarge what you see (zoom in), hit the comma key. To zoom out hit the period key. (You will note that the comma key has a "<" which illustrates the concept of magnification, and that the zoom-out key has a ">" which illustrates the concept of diminution.
Panning
To move around the drawing without changing the scale, keep the space bar pressed while you move the mouse with the middle button pressed.
Arbitrary scaling
If you want to see a certain area in greater detail, keep the space bar pressed while you move the mouse with the left button pressed.
If you want to see a certain collection of objects so that they fit best in the viewer, select them and press "CTRL" and the space bar at the same time.
The resolution
If things are very small, you cannot see them well. Therefore ChipNSil does not bother to draw them as they really are. If you do not like it, press the comma key and the space bar at the same time. A pop up menu allows you to set a new simplification threshold.
The grid
Similarly you can change the grid (slash and space) and the ticks (period and space).
If you have problems putting things on your grid, try the following more general command. Hitting the "S" key and the space bar at the same time lets a "special" menu pop up. Select the entry called "move to grid".
4. Printing
The easiest way to print a ChipNSil image is to produce an Interpress master, which can be printed on a variety of devices. To this purpose the control panel contains a line of Interpress buttons on the bottom (you may have to scroll it up). The framed button, labelled "Nectarine", causes an Interpress master to be created. The contents and end are controlled by three sets of buttons on the same line. They are labelled "What", "Where", and "Copies". For the first two you can scroll through the options by bugging the button, while the last one can be filled in by editing the value.
Those of the first set ("What") are labelled "Design", "Wysiwyg" and "Selection". If you bug "Design", Nectarine creates an Interpress master containing your full design. If you bug "Wysiwyg", Nectarine will put in the Interpress master only what you see in the viewer (what you see is what you get). Similarly, "Selection" will cause only the selected cells to be included in the Interpress master. Watch for the file name in the terminal viewer (it may be different from what you expect).
The buttons of the second set ("Where") are labelled after the printers currently supported (i.e. the Interpress and the Peach printers) and a Tioga document. Some printers have a fast mode for black and white drawings (e.g., schematics). Complex layout for the color Versatec should be sent to the Peach Expand server, from where they are automatically printed (see section 4 on how to do back-of-the-envelope calculations). See section 5 in the Nectarine documentation for the default names.
Figures in Tioga documents are scaled so that when printed they are fitted to be flush to the margin of the sibling text node. If you want to include a figure consisting of a cell and you want it as large as possible, do the following:
— flip "What" to "Selection"
— select the cell
— select the Tioga node where you want to insert the figure
— bug Nectarine
If you want to include a set of figures, all in the same scale, proceed as follows:
— flip "What" to "Wysiwyg"
— adjust the ChipNDale viewer so that it looks exactly how you want the figure to look
— select the Tioga node where you want to insert the figure
— bug Nectarine
The tools in "InterpressTools" and Gargoyle can be used to further process the master.
To print it on a Hornet like Stinger, use the goal Raven384. To send the drawing to Stinger, use the TSetter program (select the name in the Terminal viewer and bug the Get and Print buttons in the TSetter viewer).
If you do not have a Nectarine button in the control panels, type "NectarineSchematics" in the Command Tool viewer. You can get Nectarine from the directory in which this document is.
5. Saving the drawing
Look at the control panel. At the far right of the first line you find the word "save". Bug it with a mouse button and type a file name in the Terminal viewer.
6. Pasting together Alto Sil drawings
Cells
One of the things that make ChipNSil powerful, is that it allows you to structure your drawing. If you have several instances of a collection of objects, you can group one of these collections into a cell. You then make instances of the cell. This has the advantage, that when you modify one instance of a cell, the modifications are propagated to all other instances.
Another benefit of cells is that you can put a hierarchical structure on your drawing. A cell that is contained in another cell is called a child of the former. A collection of cells with the same father is a collection of siblings.
Operations on cells
To create a cell, select all objects that are to be part of it using the right (blue) mouse button. Now press down at the same time the "X" and "C" keys and the middle (yellow) mouse button. ChipNSil will ask you a name for the cell in the Terminal viewer.
To insert an instance of a cell hold down the "C" key while pressing the middle (yellow) mouse button. Type in the Terminal viewer the name of the cell to be inserted.
Once you have created a cell, you will note that you cannot access the elements in it. All operations (like move or copy) apply to the cell as a whole and not to its contents. The reason is that the contents is one level down in the hierarchy. To access the contents of a cell you have to push into it. This is done by holding down the "C" key while pressing the selection mouse button.
When you are done editing in a cell, you commit the modifications and propagate them to all instances with the pop operation. Popping is achieved by pressing "SHIFT""C".
Importing cells
WARNING: THE USER INTERFACE FOR COPYING FROM ONE VIEWER TO ANOTHER CHANGES ALL THE TIME. TO GET INSTRUCTIONS NEWER THAN THESE LINES (BUT POSSIBLY ALSO OUTDATED), HIT THE help BUTTON AT THE TOP RIGHT OF THE CONTROL PANEL.
When you convert Alto Sil files to ChipNSil, you obtain a design for each Sil file. If you want to paste them together into a single ChipNSil design, you have to move the stuff from one design to another.
ChipNSil has a very powerful mechanism that remembers forever where a cell has been moved from. The designers need such a mechanism because when they change a cell in a library, they want the change to propagate automatically to all designs using it. This mechanism is called import of a design. Unfortunately for you, this means that moving stuff from one design to another is a little bit tricky.
First you have to know that the only stuff you can import are cells. Hence you must group the objects you want to move each time in a cell.
To access a cell in another design, you have to import the design. At any given time there can be only one source design. You specify it by putting the input focus into its viewer, calling the import menu ("X", space bar) and selecting the entry "select design".
To import from the selected design, select the cell to be imported, move the imput focus to the destination design, and press "ZX" and the middle (yellow) mouse button. The first time you do this ChipNSil put up a pop up menu in which it will ask you "default file name" or "other file name"?This is due to the fact that the destination design will have to know from which file an imported cell comes, but the "select design" command cannot determine automatically this file name. Usually you will use the same name for the design and the file in which it is stored, so just say "default file name".
The cell has probably not been inserted at the exact place you desired. For your convenience the newly inserted cell is automatically selected by ChipNSil and you can use the move command to position it correctly.
Example
Suppose you have two Sil drawings stored in files mapD.sil and mapS.sil respectively. To combine them into a single design, perform the following operations. (Semi-colons separate commands.)
Type in the Command Tool viewer
CDSil; CDReadSil mapD.sil; CDReadSil mapS.sil
Press in ChipNSil viewer labelled mapS
"X", space bar
In the menu select the entry "select DESIGN".
Selects the cell you want to import from mapS.
Press in the ChipNSil viewer labelled mapD
"ZX" and middle (yellow) mouse button
The first time you will see a pop up menu that asks you how the file name is. Usually the file name is the same as the design name. Hence select the "default file name" entry.
Use the move command (keep the "CTRL" key pressed while moving the mouse with the left selection key down) to position the cell mapD. If necessary press the comma key to get an enlargement of the view.
Save the design mapD by bugging the "save" word in its control panel.
7. User profile entries for ED standard cell data sheets
Sil.Font0: Helvetica7 Helvetica7
Sil.Font1: Helvetica10 Helvetica10
Sil.Font2: Template64 Template64
Sil.Font3: LSIGates48 LSIGates48
Sil.Font5: [Ivy]<Gunther>Sil>TransistorLib.sil
Sil.Font6: []<>Commands>Sil.lb6
Sil.Font7: []<>Commands>Sil.lb7
Sil.Font8: []<>Commands>Sil.lb8
The font LSIGates48 can be obtained with the following command sequence:
Push []<>Fonts>Xerox>TiogaFonts>
Bringover [Ivy]<Beretta>Top>gbbTiogaFonts.df
Pop
8. More features
In this document you have found the basic commands and operations. ChipNSil has many more features, some of which are very powerful. Once you feel comfortable with ChipNSil, you may want to snoop in the the ChipNDale documentation stored in CDDoc25>ChipNDale.tioga and in CDDoc25>ChipNDaleTools.tioga in the directory [DATools]<DATools®> to learn more about them.
9. Life is hard
Cedar Sil is alive and evolves, as ChipNDale does. However, the conversion from Sil to ChipNSil is more or less frozen due to the fact that the Alto Sil file format (see CDSilConversionImpl.mesa) is a de facto standard since decades. For instance, in Autumn 1986 Cedar Sil was added a command to switch among strike and spline fonts. There is no way this can be recorded in a machine readable form. Hence, if a Sil document was produced with spline fonts and their characteristics were expolited, you lose: life is hard!
Sil has some idiosyncrasies which cannot be translated into ChipNDale as a matter of a SMOP. An example is that Sil simply interprets the file and displays it. If there is a color indication different than neutral, some imaging function SetColor is called. If a macro is instanciated with a color, then all its neutral elements get this color. In ChipNDale life is not so simple, and a new cell would have to be created. Sil has the potential of producing very complex macro structures. Fortunately nobody is crazy enough to use Sil if he needs them; or nobody has found it out yet. If such idiosyncrasies have to be taken care of, then the solution should be complete. Or not implemented. Life is hard!