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

Working with cells

Cells are one of the fundamental structures in layout generation. Every layout primitive object (box, polygon etc.) belongs to a cell. TELL does not maintain its own cell structure. It relies entirely on the cells as they are maintained by the editor (Toped). All layout related add/edit/modify TELL functions are executed over the current Toped cell. Cells can be referenced from another cells thus creating a hierarchical tree. Every layout database as a rule has one top cell. The exception are the library databases.

Cells in Toped behave quite similarly to classical Calma structures. Functions described in this chapter allow basic cell manipulation.

There are two ways to make an existing cell the edit target. Opencell is the straightforward way, using which Toped shows on the screen the target cell and the hierarchy below it. The other way is often called edit in place mode. It is used when the user wants to change the contents of a cell referenced directly or indirectly by the opened cell, yet seeing the hierarchy above it. In the former case the target cell is the top cell of the view hierarchy, in the latter, it is referenced somewhere below the top view cell in the hierarchy. See editpush for further info.

top

newcell

Create a new empty cell and add it to the database. In case the cell with this name already exists, the operation will be ignored and a warning will be issued in the log window.

[Tip]void newcell (cell_name)
string cell_name
The name of the cell to be created.

Example 1. newcell

newcell("top_cell");

top

opencell

Open an existing cell for editing. All consecutive add/edit operations will be executed over the active cell. A cell will be active until another cell is not targeted for editing or the current cell is not closed. When opencell is called Toped shows the selected cell with all the cell hierarchy below it.

[Tip]void opencell (cell_name)
string cell_name
The name of the cell to be opened.

Example 2. opencell

opencell("top_cell");

top

editpush

Edit in place is used when a cell has to be targeted for editing, but current view has to be preserved. The function can be used only if there is already a cell opened with opencell. The new target cell is selected using the point provided as an input argument. On successful execution, Toped redraws the screen, highlighting the new target cell.

[Tip]void editpush(edit_here)
point edit_here
The algorithm that picks up the new target searches in the underlying cell hierarchy for a shape that overlaps the edit_here point. First cell that matches this criteria becomes the new edit target.

Example 3. editpush

editpush(getpoint());

top

editpop

Edit the parent cell in the current cell hierarchy. editpop is used if editpush had been executed before. It opens the cell immediately above the current in the hierarchy. If the new cell is the top cell of the current hierarchy, Toped automatically goes to opencell mode. If not, edit in place mode is preserved.

[Note]Note

editpop and editpush are not necessarily recurrent operations. editpop executes always a single step up the hierarchy, while editpush might go several levels down.

[Tip]void editpop()
-

Example 4. editpop

editpop();

top

edittop

Edit the top cell in the current cell hierarchy. This function is used in order to return to the top cell that had been opened using opencell. Toped switches off edit in place mode.

[Tip]void edittop()
-

Example 5. edittop

edittop();

top

editprev

Edit previous cell - Toped maintains internally a history of the accessed cells. The user can quickly switch back to the cell, targeted before the current using this function. editprev works for cells accessed in any mode.

[Tip]void editprev()
-

Example 6. editprev

editprev();

top

group

Group selected objects in a cell This is one of the alternatives to newcell. Using group function a new cell will be created and all selected objects will be moved from the current cell to the new cell. After the execution, the view of the current cell will remain effectively the same. Its structure however will be altered. Partially selected objects are not affected, i.e. they still belong to the current cell after the operation. Toped will update the on line cell hierarchy window at the end of the operation.

[Tip]void group (cell_name)
string cell_name
The name of the cell to be created.

Example 7. group

group("new_cell");

top

ungroup

Ungroup selected cell references This is effectively a reverse operation of group. It will ungroup all selected cell references and move their contents to the current cell. After the execution the view of the current cell will remain effectively the same. The new shapes in the current cell created in result of the operation will be selected. Toped will update the on line cell hierarchy window at the end of the operation.

[Note]Note

The operation is ungrouping cell references. Cell definitions remain untouched even if the cell is not longer referenced in any other structure. Ungroupped cell references are removed.

[Tip]void ungroup ()
-

Example 8. ungroup

ungroup();

top

changeref

Change the cell structure of existing reference or array of references. This operation replaces the cell structures of all selected references with an new one. If there are no references selected operation will be ignored. Recursive references are not allowed.

[Tip]void changeref (cell_name)
string cell_name
The name of the new cell reference. Cell with this name must exist

Example 9. changeref

changeref("newCMP");

top

renamecell

Rename existing cell structure Changes the name of the existing cell. The target cell can be referenced and if so all the references will be updated accordingly.

[Tip]void renamecell (old_name, new_name)
string old_name
The name of the existing cell.
string new_name
The new name of the cell. Cell with this name should not exist.

Example 10. renamecell

renamecell("old_cell", "top_cell");

top

removecell

Delete existing cell structure The cell should not be referenced anywhere in the database, otherwise the operation will not be executed and a warning will be issued in the log window.

[Tip]void removecell (cell_name)
string cell_name
The name of the cell to be deleted.

Example 11. removecell

removecell("hollow_cell");

top