NectarineDoc.tioga
Giordano Bruno Beretta, April 11, 1986 7:57:41 pm PST
gbb October 23, 1986 2:07:02 pm PDT
Nectarine
CEDAR 6.1 — FOR INTERNAL XEROX USE ONLY
Nectarine
Fuzzless and sweeter than peaches
Giordano Beretta
© Copyright 1986 Xerox Corporation. All rights reserved.
Abstract: The ultimate layout and schematics documentation and printing system. Creates Interpress masters and does with them anything you might dream of: stuffs into Tioga documents, prints on Interpress servers and Peach servers, in black and white or in colour, expanding on the printer server or on a special expansion server. Once three buttons are bugged to answer three orthogonal questions (what, where, how often), all the magic happens with the single press of a button. The Interpress masters can be further manipulated with Gargoyle.
Created by: Giordano Bruno Beretta
Maintained by: Giordano Bruno Beretta <Beretta.pa>
Keywords: ChipNDale, ChipNSil, Documentation, Illustration, Imaging, Interpress, Layout Printing, No Fuzz, PD Files, Peach Expansion, Peach Printing, Printing, Schematics Printing, Sweet Dreams, Tioga Illustration
XEROX Xerox Corporation
Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, California 94304
For Internal Xerox Use Only
1. Brief Manual
The easiest way to print a ChipNDale 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 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 Stinger, enter in the Command Tool viewer
InterpressToPD <your file name> raven384
To send the drawing to Stinger, use the TSetter program.
If you do not have a Nectarine button in the control panels, type "Nectarine" in the Command Tool viewer. If you are working only on schematics, Nectarine will run faster, if you type "NectarineSchematics" instead. If you are working on a hybrid technology, type "NectarineHybrid". You can get Nectarine from the directory in which this document is.
2. Advanced Usage
Nectarine registers some commands with the Command Tool in which it is executed.
NCount. Counts the corner stitching tiles currently allocated. If the input is large (in terms of l units) Nectarine processes it in bands. The size of the bands is estimated from the input dimension in order to use maximal buffer sizes. On the other hand, Nectarine must be able to process the worst case input (very dense layout) without crashing. Therefore the band size estimation is very conservative. The user with sparse inputs can affect this estimation by increasing a variable called risk using the interpreter. It is suggested, however, to make use of the special load files NectarineSchematics.Load, NectarineHybrid.Load, and NectarineBoadr.Load since they are tuned from time to time.
NRedo. Redoes the last Nectarine Print command on the same Interpress master but with the newly specified goal. The goal must be one of those specified in the <where> field of the Nectarine line in the ChipNDale control panel. Default: the same as the last time around. Like the remainder of Nectarine, this is a very user friendly command, meaning that it has a little tolerance in the printer specification, but not enough to let you do things you do not expect. If the goal cannot be figured out, the documentation is printed. All user output is printed in the Command Tool viewer, because this is where you attention is focused when you issue a redo.
Redoing the action of copying from a ChipNDale viewer into a Tioga viewer presents a slight difficulty. The standard method is to copy into the current selection. However, to issue the redo command, the selection is in the Command Tool, which is not where you intend to copy. The adopted solution is to create a new iconic blinking unnamed Tioga viewer and to stuff into it the image. You can select it from there and copy it into the intended Tioga document in the usual way and dispose of the viewer.
For Peach printers, redo creates a new printer dependent file, so be very careful with file name conflicts due to racing conditions (redo is an advanced command)! Use Chat to submit again a PD file to the same printer for which it was created.
You may complain that although the implementation is reentrant, Nectarine cannot be called twice. I wanted to avoid two print commands on the same design, because this would force me to implement a file name manager and to place on the user the burden of descrying it. What I really wanted to do was to prevent multiple calls on the same design, but to allow parallel calls on different designs. Unfortunately, currently there are no provisions for this in ChipNDale: resources are global to ChipNDale and there are none local to designs (at least as long as you imperatively need a lightweight abort capability). Surely I could implement a hack, but there are no hacks in Nectarine.
3. Client Interface
Example of usage:
Nectarine.Print [Nectarine.DoInterpress [fooDesign, CDCommandOps.BoundingBox [fooDesign], FALSE, FALSE, NIL].masterName, $NColor400, 1, NIL]
4. Useful Hints
How long does it take? On the chip PermuyJun86Part3 — whose size is 3.390 10.217 mm and which contains 1'156'260 rectangles — it takes 2 hours, 12 minutes, and 2 seconds to produce the Interpress master. If the job is long, Nectarine after a while prints an estimated termination date and time. This estimation is repeated when half of the job is done. If you want an intermediate progress report, look at the number displayed just after the very first dot; this is the total number — 1 of groups of three dots that will be displayed.
The raster-scan conversion of the Interpress master takes a long time (49 minutes and 58 seconds for the above chip). The reason is, that for sake of generality the Imager cannot do any assumptions on the input. Hence, it will clip the entire Interpress master on every window consistiting of a band of 64 scan lines, and this for every band. Also it must assume arbitrary overlaps. In the future it might be possible to include hints into the Interpress master. Therefore, Nectarine eliminates all overlaps in rectangles (they are trivial anyway) and sorts the rectangles into bands. These bands are sorted by decreasing slow coordinate. Inside each band the rectangles are sorted lexicographically by slow and fast coordinate. Care has been taken to make the Interpress master as short as possible,
During the creation of an Interpress master and its subsequent raster-scan conversion, a fair amount of disk I/O occurs (which can be aggravated by paging when your machine is running some other big guy). It is annoying when you encounter a fatal disk error. The following is what you can do depending on the phase in which it happens.
— Writing the Interpress master: you lose; restart from the beginning.
— Doing the raster-scan conversion: you can execute it again in the event viewer. Pop up in the stack until you get to NectarineImpl. It will be sitting at the call of PrintFileConvert.InterpressToPD. Simply copy the statement into the event viewer. You can also call manually InterpressToPD from a command tool (see InterpressToolsDoc for the details) and then send it to the server with Chat.
— Sending the file: Look up the name of the PD file in the terminal viewer and send it manually to the printer server.
You'll gonna need lotsa space gal. Before attempting to ship to the color Versatec a whole chip, you should do a little back of the envelope calculations. Both the Interpress master and the PD file are flat. The 1'156'260 rectangles of the above chip will yield an Interpress master of 35'125'206 bytes. Since there are 500 bytes in a page, the free disk figure you see in the Watch viewer will decrease by 70'250. The size of a PD file for the Versatec (which is 64'057'308 bytes for the above chip) can be estimated by the size of the bitmap: (40"200)2"(4"2) bits, which is 128'000 pages (in reality the PD file does not contain a bitmap, but runs, which in the case of dense plots can be very short , so that the PD file is long). Use the program PigsInSpace to find space on your disk.
Why does the transmission to the printer server take such a long time? An idea of how to asses the size of the PD file has been given above. The transmission rate is 256 KBits per second (which makes 1954" = 32', 34" for the above chip). On the Peach printer each packet is taken and the runs are expanded to a piece of bitmap which is written to disk. The total amount of time spent into expansion on for the above chip is a little more than a day. The actual printing is fast, because the bitmap just has to be shuffled from the disk to the printer.
In summary the approximate total time for a design with 1'156'260 rectangles is 2 hours for the Interpress master, 50 minutes for the PD file, 30 minutes for the transmission, and a little more than 24 hours for the expansion. The expansion will be much faster when the Dicentras will be replaced by Dragons. This will also eliminate the PD file creation and save disk space. In the meantime there is a hack which allows you to obtain a time factor of about 8 in the expansion (if I am not used also as a Summoner server). As the printer where to print select PeachExpand, and power on the machine in office 2110 (Bennington). PeachExpand will send the image to the printer specified in the ExpandedPeach user profile entry for printing. Please delete the file from my disk after you have printed it. The size of the expanded PD file will be 322'520 bytes per cm, with a maximum size of 11"4.705883"800"1024 bytes = 42'405'650 bytes. The above chip was expanded into a file of 6'357'760 bytes, i.e., a tenth the original size, which prints in 8 minutes. (This is a temporary hack.)
Landscape or portrait format? Nectarine tries to scale to use the full paper width; paper waste is controlled by limiting the length of Versatec plots to 279.4"4.705883 mm H 1.315 m. If the above chip is printed in portrait format, the sizes of the PD files increase to 75'930'208 bytes unexpanded and 9'182'936 bytes expanded (the size of the Interpress master depends only upon the number of rectangles).
If you attempt to process an extraordinarily dense chip, it might happen that when you walk back to your machine, the screen is completely white with the exception of the cursor, which will not react to the mouse. The machine will even not let swat itself. Some resource in the microcoded allocator has come to short. The error has not yet been identified. Temporary fix: enter ← NectarineImpl.risk ← 0 and retry.
5. User Profile Options
This section defines and documents the entries in the user profile. Each entry is presented as though it were a Mesa declaration, although of course it is not. Comments following the entry explain the effect of that entry.
In all cases, if the corresponding entry does not appear in your personalized user profile (or the default user profile), the value of the corresponding parameter is the indicated default. If you want to specify some value other than this default, or want to include the corresponding entry along with its default in your profile just so that you can see at a glance what settings are in effect, simply include it in your own profile. Changing or adding an entry is "noticed" as soon as it is used by Nectarine.
Nectarine.Versatec:
ROPE ← "Sleepy"
Black & white Versatec printer.
Nectarine.ColorVersatec:
ROPE ← "Sleepy"
Colour Versatec printer.
Nectarine.Bw400:
ROPE ← "MtFuji"
Black & white thermal transfer printer.
Nectarine.Color400:
ROPE ← "MtFuji"
Colour thermal transfer printer.
Nectarine.Raven300:
ROPE ← "Quoth"
Black & white Interpress printer.
Nectarine.PeachExpand:
ROPE ← "Kearsarge"
Expand the PD file on the PeachExpand server and send it to ColorVersatec.
Note that there is no entry for Platemaker, since you will get files containing the separations on your disk, which you will have to copy to Indigo. To actually obtain activate printing you have to submit a print request by mail.