magic/doc/html/cellname.html

177 lines
7.8 KiB
HTML

<HTML>
<HEAD>
<STYLE type="text/css">
H1 {color: black }
H2 {color: maroon }
H3 {color: #007090 }
A.head:link {color: #0060a0 }
A.head:visited {color: #3040c0 }
A.head:active {color: white }
A.head:hover {color: yellow }
A.red:link {color: red }
A.red:visited {color: maroon }
A.red:active {color: yellow }
</STYLE>
</HEAD>
<TITLE>Magic-8.3 Command Reference</TITLE>
<BODY BACKGROUND=graphics/blpaper.gif>
<H1> <IMG SRC=graphics/magic_title8_3.png ALT="Magic VLSI Layout Tool Version 8.3">
<IMG SRC=graphics/magic_OGL_sm.gif ALIGN="top" ALT="*"> </H1>
<H2>cellname</H2>
<HR>
Operations on cell definitions.
<HR>
<H3>Usage:</H3>
<BLOCKQUOTE>
<B>cellname</B> <I>option</I> <BR><BR>
<BLOCKQUOTE>
where <I>option</I> is one of the following:
<DL>
<DT> [<B>list</B>] <B>children</B> [<I>name</I>]
<DD> List all of the children definitions of cell <I>name</I>,
or the children of the currently selected cell instance.
<DT> [<B>list</B>] <B>childinst</B> [<I>name</I>]
<DD> List all of the children instances of cell <I>name</I>,
or the children of the currently selected cell instance.
<DT> [<B>list</B>] <B>parent</B> [<I>name</I>]
<DD> List the parent cell definition of cell <I>name</I>,
or the parent of the currently selected cell instance.
<DT> [<B>list</B>] <B>exists</B>|<B>self</B> [<I>name</I>]
<DD> Returns the name of the cell if the cell exists, or false
(0) if the cell does not exist (is not loaded into the
database; the cell may still exist on disk). If <I>name</I>
is not present, returns the name of the currently selected
cell.
<DT> [<B>list</B>] <B>allcells</B>
<DD> List all of the cells in the database. Note that expansion
is not automatic, so cells that are not expanded are not
searched.
<DT> [<B>list</B>] <B>topcells</B>
<DD> List the name of the top-level cell or cells. Note that
the cells are searched in the whole database, so multiple
cells may be returned, regardless of what cell is the
topmost cell in the layout window. For that, use
<B>cellname window</B> (see below).
<DT> [<B>list</B>] <B>window</B>
<DD> List the name of the topmost cell in the window. If only
one window exists, it is implicit. If more than one
window exists, the command operates on the window from
which the command was called if the "<TT>:</TT>" macro
was used to invoke the command. Otherwise, the window
can be specified as the command (q.v. <I>tk_path_name</I>).
<DT> <B>create</B> <I>name</I>
<DD> Create a new cell definition with name <I>name</I>. This
is most often used with scripts, where it is not necessary
or desirable to load the cell into the window. Note that
this command does not search the layout search path for a
cell named <I>name</I>.mag, so it can be used to replace
a cell which exists on disk but is not currently loaded.
<DT> <B>rename</B> <I>name newname</I>
<DD> Change the name of the cell definition <I>name</I> to
<I>newname</I>.
<DT> <B>delete</B> <I>name</I>
<DD> Delete the cell definition with name <I>name</I>. If cell
<I>name</I> is a descendent of another cell, the command
will be prohibited. If the cell <I>name</I> is currently
the topmost cell in the window, the window will be loaded
with default cell "(UNNAMED)".
<DT> <B>dereference</B> <I>name</I>
<DD> Perform a flush of the cell (per the "<B>flush</B>" command),
first removing any file path associated with the cell, so
that the cell will be reloaded from the first valid location
found using the search paths.
<DT> <B>flags</B>
<DD> Reports flag settings for the cell. Flags which are reported
are "available", "modified", and "readonly". Flag "available"
is true if the cell has been loaded into the database. Flag
"modified" is true if layout changes have been made to the
cell. Flag "readonly" is true if the cell has been locked to
prevent edits.
<DT> <B>timestamp</B> <I>name</I> [<I>value</I>]
<DD> Reports or sets the cell timestamp value. Note that timestamps
should be handled automatically, so setting the timestamp is
discouraged outside of limited functions like creating cell
libraries. The timestamp is in the usual integer format and
can be printed as a human-readable date using the Tcl <B>clock</B>
command, e.g., "<TT>clock format [cellname timestamp]</TT>".
<DT> <B>filepath</B> <I>name</I> [<B>default</B>|<I>pathname</I>]
<DD> With no option, this command returns the path to the file
for the cell <I>name</I>, or the keyword "<B>default</B>"
if the cell is not associated with a specific file path.
With option "<B>default</B>", if the cell is associated
with a specific file path, that association is removed.
With option "<I>pathname</I>", the cell is associated with
the given file path. Note that this is meant to be used
to resolve issues with database libraries being moved
from one location or another. More typically, the
"<B>save</B>" command should be used to create a copy
of the (possibly modified) cell in a new location. Changing
the filepath will not perform any disk reads or writes.
<DT> <B>writeable</B> <I>name</I> [<B>true</B>|<B>false</B>]
<DD> Option <B>writeable false</B> makes the current cell
read-only and therefore prevents any edits from being
written to disk. If magic is compiled with file-locking,
then any advisory lock on the file is released.
Option <B>writeable true</B> makes the current cell read-write.
If magic is compiled with file-locking, then magic attempts
to grab an advisory lock on the file. If a lock is already
held on the file, then the command cannot be executed, and the
cell remains read-only. Option <B>writeable</B> with no other
arguments returns the state of the cell (roughly equivalent to
<B>cellname flags readonly</B>).
</DL>
</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>Summary:</H3>
<BLOCKQUOTE>
The <B>cellname</B> command performs various operations on
cell definitions. For the first four options listed above,
<B>cellname</B> lists cells by their relationship to cell
<I>name</I>, or to the current selection if no <I>name</I>
is given. The optional argument <B>list</B> returns the
result as a list. In particular, in the Tcl version of
magic, this list is a Tcl result that may be operated on
by Tcl procedures.
</BLOCKQUOTE>
<H3>Implementation Notes:</H3>
<BLOCKQUOTE>
<B>cellname</B> is implemented as a built-in function in <B>magic</B>
The Tcl version of magic returns Tcl results when the "<B>list</B>"
option is present. <B>instance</B> is essentially an alias for the
<B>cellname</B> command, and takes the same options, but references
are to cell instances rather that cell definitions (q.v.). <P>
The command option <B>cellname list exists</B> is nonsensical from
the standpoint of the end-user (if the cell is selected, of course
it exists). However, it is a very useful function for Tcl scripts
to determine the name of the cell that is currently selected. <P>
The <B>cellname</B> command replaces a number of commands that
briefly appeared in version 7.1, such as <B>parent</B>,
<B>child</B>, and <B>top</B>. These commands are now options
of the <B>cellname</B> and <B>instance</B> commands.
</BLOCKQUOTE>
<H3>See Also:</H3>
<BLOCKQUOTE>
<A HREF=instance.html><B>instance</B></A> <BR>
<A HREF=load.html><B>load</B></A> <BR>
<A HREF=path.html><B>path</B></A> <BR>
<A HREF=flush.html><B>flush</B></A> <BR>
<A HREF=tk_path_name.html><I>tk_path_name</I></A> <BR>
</BLOCKQUOTE>
<P><IMG SRC=graphics/line1.gif><P>
<TABLE BORDER=0>
<TR>
<TD> <A HREF=commands.html>Return to command index</A>
</TR>
</TABLE>
<P><I>Last updated:</I> February 3, 2021 at 3:52pm <P>
</BODY>
</HTML>