ChipNDaleLabelsAndTextsDoc.tioga
Copyright c 1987 by Xerox Corporation. All rights reserved.
Created by: Christian Jacobi, August 12, 1987 11:42:16 am PDT
ChipNDale, Texts and scan conversion
War story
Richards hybrid circuit didn't finish Mebes conversion over night. It stuck while scan converting a text object.
This design had some huge test 1536 (12288 ChipNDale units) high.
The first (wrong) reaction was to tell Richard to use tioga fonts instead of spline fonts. But Richard used already tioga fonts...
Well the scan conversion (Imager) for tioga fonts of height 12288 runs for ever.
The next fix: I used a spline font of approximately the same hight. This unearthed some more problems: Texts in spline fonts can not be made that big (good). The imager now needs only about 1 or 2 minutes to scan convert the text; but it returned about 12000 rectangles [in first band]. These rectangles were then corner stitched, a little bit slower than 2 rectangles a second! Spy showed that North-South split was the culprit; the time was used to fix the left border.
Why not try the obvious: rotate the texts 90 degree before scan converting, and then, rotate the rectangles back. This way scan conversion increased the number of rectangles to 15000, but, corner stiching ran ahead and manched about 100 rectangles a second. A speed improvement of 50. [Get your new version of ChipNDale].

Choices to go on:
Fix Imager scan converting tioga fonts: Probably not worth the effort.
Special casing in ChipNDale scan converting for tioga fonts: Probably not worth the effort, but I have done it anyway.
Educating users: yes yes
How to make large texts, or, what are the options
Scaling: If you design something else than VLSI chips, use scaling. Don't stuck with 1 (equals 8 ChipNdale units) equals 1 micron. All postprocessing software (plots, Mebes mask, CIF generation) is able to scale the design. A handy scale will help you to reasonably gridding interactive work, in addition to just beeing faster.
Learn the difference between texts with tioga fonts, spline fonts, and, labels.
Labels are cells composed out of rectangles which look like text. Properties like font and textual value are lost; they are in the picture only.
Texts are abstract ChipNDale objects, well, looking like texts. They do have properties like fonts, and, the textual value they represent is accessible.
Texts in spline fonts (or sometimes called PressFonts): the font is defined by using splines to define the contours.
Texts in tioga fonts: the font is defined by using a bitmap of the character.
There are these three ways to represent texts: ChipNDale does not do any magic, but, lets the designer select which kind of text he wants. This is intentional! Once an object is created it will stay as created, until the designer explicitely changes it. The designer has the full power to really select the best suited kind of texts.
There is a little bit of creature confort: Nectarine, PDPlot, InterpressPlot allow you to optionally replace texts in tioga fonts with texts in the corresponding spline font. However, all the known problems with inexactness in text size appear. [A special draw mode on screen also substitutes those texts; this lets you see a picture as it appears on hardcopy (Space-M)]
Creation of different text objects
Labels: use the label generator program CDLabel.
Labels use two scales, sometimes even three, but this is actually quite simple:
The third (most easy) scale is, (if used) the point size in the font name of tioga fonts. This is not used as a real scale, but in truth is part of the font selection. (But has the side effect of influencing texts size).
The text is drawn into a bitmap: the first scale number tells you how many pixel the bitmap is high. The second scale number tells you how many ChipNDale units are used to represent one bitmap pixel.
This second scale really tell how large the object is; the first scale tells how jaggy the object will be (and, as side effect also influences size).
Create labels quite jaggy: A VLSI design needs readable labels, but, not works of art. Using jaggy labels reduces the number of rectangles, and, processing time of drc and mask generation.
Labels is the data structure of your choice if you want to have explicite control of the jaggyness, or, if you want absolute control over positioning. Sometimes you want jaggyness simply for processing time reasons. Use labels for the designers name or the copyright symbol on chips.
Tioga fonts: create texts with T-middle or Y-middle. The default fonts in CMos-B are tioga fonts.
The fact that tioga fonts are defined with bitmaps is not deciding in our use of tioga fonts; we really use tioga fonts for the jaggyness, and, because they are better legible on screen [specially in small scales].
Use tioga fonts for typicall Sisyph data and for comments, and generally for schematic diagrams.
Some hardcopy programs can replace tioga fonts with spline fonts at plot time [font substitution].
Be aware that very large tioga fonts are quite slow in scan converting.
Spline fonts: create texts with T-middle or Y-middle, but have a spline font selected in the control panel. To make a spline font appear in the control panel, include it with the user profile or use the <Space-Y> menu.
Spline fonts allow you exact positioning.
As a draw back, spline fonts do not display as well as Tioga fonts in small scales.
Spline fonts are defined device independent, but, ChipNDale tools have mainly two modes of scan converting spline fonts.
1) Scan convert for the particular device used. (E.g. Screen, PDPlot, Interpress plot)
2) Scan convert for an abstract device with pixel size equals ChipNDale units. This is defaulted by ChipNDale when the particular device isn't known; (E.g. Spinifex, Mebes mask, CIF generation)
3) Special cased scan conversion: Explicite knowlede of certain object classes allows to avoid scan conversion of the draw procedure calls. (E.g. Nectarine: for texts, splines, lines, polygons; CIF: for polygons)
I don't think spline fonts are used very often in VLSI designs, but they are more efficient for scan conversion.
A spline font might be the font of your choice when you use ChipNDale as an editor to make documents or slides.
Flip-Texts (versus Rigid Texts). This is a variation of the text object class.
This choice has nothing to do with the selection of spline fonts or Tioga fonts, but is completely orthogonal.
A flip text displays itself such that it stays legible independent of its orientation. This is usefull for schematics, where the orientation of text has no significance but it should be easy to read. Flip texts allow to specify where the text origin should be, in spite of font size problem because of font sustitution. On VLSI designs flip text's should be used only for comments.
A rigid text orients itself rigidly with the orientation of the containing cell. This is usefull whenever real mask geometry of a text is generated.
ChipNDale uses a heuristic [using font and layer] to decide whether a text object should be flip or rigid at interactive creation time. Once the object is created it won't be changed unless explicite commands are applied <Space-Y>. Designers should change text mode to rigid when they change text layer from a comment to a mask layer.