magic/doc/html/instance.html

141 lines
5.7 KiB
HTML
Raw Permalink Normal View History

<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>instance</H2>
<HR>
Operations on cell instances (uses).
<HR>
<H3>Usage:</H3>
<BLOCKQUOTE>
<B>instance</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 instances of cell use <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 use <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 instance if the cell exists, or false
(0) if the instance 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
instance.
<DT> [<B>list</B>] <B>allcells</B>
<DD> List all of the cell instances in the database. Note that
expansion is not automatic, so cells that are not expanded
are not searched.
<DT> <B>orientation</B> [<I>name</I>] [<B>-def</B>]
<DD> Returns the orientation of the instance. By default, returns
the orientation in the naming convention used by the
"<B>getcell</B>" command. If the option "<B>-def</B>" is
specified, then the orientation is given in the naming
convention used by the DEF format for component placement.
if <I>name</I> is given, then return the orientation of the
named instance. Otherwise, the orientation of all selected
instances is returned as an unordered list.
<DT> [<B>list</B>] <B>abutment</B>
<DD> Returns the coordinates of the instance's abutment box
(the bounding box formed by the coordinates saved in the
FIXED_BBOX property in the cell), translated into the
coordinate system of the parent cell (which must be the
edit cell). This should be used, for example, when
replacing an instance of a standard cell with another
standard cell, to move the cursor box to the abutment box
position so that the new cell has the same alignment as
the old cell (see also <B>orientation</B>, above).
<DT> <B>lock</B>|<B>unlock</B> [<I>name</I>]
<DD> Locking an instance prevents it from being moved, rotated,
flipped, deleted, or copied. This is useful, for example,
when part of a layout is declared "final" and changes to
that area are prohibited. The cell instance's lock status
can be saved to and read from the layout file, so the lock
will remain in effect until the instance is unlocked.
Cells that are locked have the character "<B>*</B>" prepended
to the instance name in the display. With no <I>name</I>
given to the command, the lock will be applied to all
selected cell instances.
</DL>
</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>Summary:</H3>
<BLOCKQUOTE>
The <B>instance</B> command performs various operations on
cell uses, or instances. For the first four options listed
above, <B>instance</B> lists cells by their relationship to
cell use <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. <P>
</BLOCKQUOTE>
<H3>Implementation Notes:</H3>
<BLOCKQUOTE>
<B>instance</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 many of the same options, but
references are to cell instances rather that cell definitions
(q.v.). A number of options to <B>cellname</B> are meaningless
for instances. <P>
<I>Warning:</I> Because instance names are arbitrary, looking up
an instance name is computationally intensive compared to looking
up a cell name. When used inside a loop, such as to search the
cell name hierarchy, use command <B>cellname</B> on cell definitions
instead of command <B>instance</B> on cell instance names whenever
possible. <P>
The command option <B>instance 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 instance that is currently
selected.
</BLOCKQUOTE>
<H3>Bugs:</H3>
<BLOCKQUOTE>
Technically, <B>instance rename</B> should be implemented as a
replacement for the command <B>identify</B>.
</BLOCKQUOTE>
<H3>See Also:</H3>
<BLOCKQUOTE>
<A HREF=cellname.html><B>cellname</B></A> <BR>
<A HREF=load.html><B>load</B></A> <BR>
<A HREF=getcell.html><B>getcell</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> January 15, 2021 at 12:47pm <P>
</BODY>
</HTML>