Search
»»»Home «««
Framework
Screenshots
FAQ
»»»TELL «««
Types
Operators
Functions
Example
»»»Toped «««
Database
Cells
Add
Select
Edit
Properties
Rendering
GUI
Miscellaneous
»»»Ifaces «««
GDSII
OASIS
CIF
DRC

Rendering

The screen rendering of the database is one of the main tasks for the layout editor. Currently Toped has two independent rendering engines

  • basic renderer - this engine uses only the most basic openGL functions and is targeting maximum compatibility with today’s graphic platforms. In might be the only engine available on terminal emulation platforms as well as on older computer configurations or configurations which use generic graphic drivers.
  • VBO renderer - This engine requires openGL 1.4 or higher which implements vertex buffer objects. It is designed for maximum rendering efficiency and quality of the image. Normally it shall outperform the basic renderer by factor of 3. Some of the visualization effects are available only with this engine.

Both engines share the same database traversing algorithm which is the major contributor to the rendering speed. Also both of them use openGL. This means that for designs with relatively moderate size the user shall not experience a sensible difference in the speed of rendering.

The engine for the session is selected dynamically on start-up after some internal diagnostic of the platform. The user can force the selection of the basic renderer using the command line option -ogl_safe. This option is addressing eventual diagnostic troubles on untested graphical platforms. A short message in the log window at start-up will indicate the selected engine

redraw

Redraws the current window - executed automatically after all operations that change the current view.

[Tip]void redraw()
-

top

zoom

Zooms in a window. Defines a new area of the canvas, that will be viewed in the graphical window. Tell supports two sets of input parameters (two overloaded functions). In both cases the editor recalculates the actual view window from the input parameters, taking into account the actual aspect ratio of the graphical window. In other words bottom left and top right corners of the resulting view will be rather different form those stated by the input parameters. The new view might cover bigger (but not smaller) area than the requested. The type and sequence of the corners (bottom left, top right etc) provided via the input parameters are of no importance. Function expects absolute coordinates.

[Tip]void zoom …

void zoom(point corner1,point corner2)

void zoom(box window)

point corner1
first corner of the new view window
point corner2
second corner of the new view window
box window
the new view window

top

zoomall

Show entire active cell A clone of the zoom function provided for convenience. It does not take input parameters, instead Toped internally retrieves the coordinates of the biggest window covered by the current cell. The resulting view window does not take into account the state of the layers (visible or not) and could be bigger than expected.

[Tip]void zoomall()
-

top

zoomvisible

Show the visible part of the active cell A clone of the zoom function provided for convenience. It does not take input parameters, instead Toped internally recalculates the coordinates of the biggest window covered by the cell layers which are currently visible.

[Tip]void zoomvisible()
-
[Note]Note

This function can be much slower than zoomall

top

Image manipulation

Often some details of the layout image or the database structure can be helpful for the layout designer. Things like the overlapping box of a referenced cell or its bounding coordinates as well as highlighting of certain groups of objects can improve the readability of the image.

Some of the features in this category are implemented using different input parameters of setparams function.

hidecellmarks

Toped indicates cell references with a common mark, placed at the {0,0} point of the referenced cell. Using this function, the cell marks visualization can be switched on or off.

[Tip]void hidecellmarks(on_off)
bool on_off
true to hide the cell marks, false show them

Example 1. hidecellmarks

   hidecellmarks(true);

top

hidecellbox

For better hierarchical visibility, Toped can draw a cell overlapping box over the cell references. Using this function, the cell boundary visualization can be switched on or off.

[Tip]void hidecellbox(on_off)
bool on_off
true to hide the cell overlapping box, false to show it

Example 2. hidecellbox

   hidecellbox(true);

top

hidetextmarks

Toped indicates all layout text objects with a common mark, placed at the bounding point of the text. Using this function, the text marks visualization can be switched on or off.

[Tip]void hidetextmarks(on_off)
bool on_off
true to hide the text marks, false show them

Example 3. hidetextmarks

   hidetextmarks(true);

top

hidetextbox

To highlight the non-layout objects, Toped can draw an overlapping box over the texts. Using this function, the visualization of the text overlapping box can be switched on or off.

[Tip]void hidetextbox(on_off)
bool on_off
true to hide the text overlapping box, false to show it

Example 4. hidetextbox

   hidetextbox(true);

top

Image Detail

The rendering engines are filtering the database objects which appear to be too small in the selected zoom window. This filtering can be manipulated by changing the minimum area in pixels which is considered to be visible.

   setparams({"MIN_VISUAL_AREA", "50"});

The value of the parameter shall be between 0 and 255. When set at 0 the filtering is practically switched off.

[Note]Note

Beware that this feature can have a severe impact on the rendering speed. The default value (40) is carefully chosen as a balance between the speed and quality of the image.

top

Cell hierarchy depth visibility

Layout cells can reference other cells thus creating a hierarchy structure. This structure is actually a representation of the layout in the database. Often though the designer is only interested in the layout objects placed on the certain hierarchy level and image simplification can improve the readability. This option tells the renderer to traverse the database down to a certain depth thus leaving the cell references on the lower levels invisible.

   setparams({"CELL_VIEW_DEPTH", "2"  });
   setparams({"CELL_VIEW_DEPTH", "ALL"});

The parameter value shall be between 1 and 8 or the keyword ALL. This feature influences the rendering speed. By default Toped draws the entire hierarchy.

top

Cell hierarchy depth opacity

This is another opportunity to improve the visibility of the cell reference hierarchy. Instead of completely omitting the deeper hierarchy levels the user can force the renderer to increase the color opacity when diving in the deeper hierarchy levels. The final effect of this is that upper levels appear highlighted.

   setparams({"CELL_DEPTH_ALPHA_EBB", "20"});

The parameter value shall be between 0 and 80. With 0 (default) the opacity is not altered. The rendering speed is not influenced by this feature.

top

Text orientation

Texts are not real layout objects yet used widely to improve the layout readability. In a complex design they might appear flipped and rotated at arbitrary angles because of the cell reference hierarchy. This makes them more difficult to read. This feature adjusts the visible text objects to be oriented consistently across the image thus improving their usefulness.

   setparams({"ADJUST_TEXT_ORIENTATION", "true"});

The parameter value shall be true or false (default). The impact of this feature to the rendering speed shall be minimal.

[Note]Note

This feature does not change the placement records of the text objects in the database. It influences only their rendering.

top

Text Font

Toped comes with several text fonts which can be used for visualization of text objects. The user can select any of them using this feature.

   setparams({"SELECT_TEXT_FONT", "Times New Roman 1"});

The parameter value shall be one of the listed below. The rendering speed is not impacted.

  • "Arial Normal 1" - (Default)
  • "Courier Normal 1"
  • "Crystal 1"
  • "Techno 0"
  • "Techno 1"
  • "Times New Roman 1"

top

Rulers

The Rulers are temporary objects designed to improve the visibility and to reduce the layout errors introduced during the manual design. They are not saved neither in the layout database nor in the property files. There are two flavors of the rulers:

  • Standalone rulers - implemented via the TELL functions described below.
  • Build-in feature in some of the interactive TELL functions ( addpoly, addwire). When activated they show the shape size while its drawn. This feature can be switched on/off using the right mouse button context menu while drawing the shape.

addruler

Create new ruler in the graphic canvas.

[Tip]void addruler …

void addruler(points)

void addruler()

point list points
A ruler is created for every pair of consecutive input points.

The second version of the function is interactive. When executed, Toped expects two points. After the first point - Toped draws a temporary ruler between that point and the cursor position.

Example 5. addruler

   addruler({{-84 ,130} , {-61.5,130} , {-61.5,142} , {-49.5,142} , {-49.5,154}});
   addruler();

top

clearrulers

Clear all rulers in the graphic canvas.

[Tip]void clearrulers()
-

Example 6. clearrulers

   clearrulers();

top