magic/doc/html/lef.html

214 lines
10 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>lef</H2>
<HR>
LEF-format input and output
<HR>
<H3>Usage:</H3>
<BLOCKQUOTE>
<B>lef</B> <I>option</I> <BR><BR>
<BLOCKQUOTE>
where <I>option</I> may be one of the following:
<DL>
<DT> <B>read</B> [<I>filename</I>]
<DD> Read a LEF file named <I>filename</I>[<B>.lef</B>]
<DT> <B>read</B> [<I>filename</I>] <B>-import</B>
<DD> Read a LEF file. Import standard cells from <TT>.mag</TT>
files
<DT> <B>read</B> [<I>filename</I>] <B>-annotate</B>
<DD> Read a LEF file. Use any macros defined in the LEF file
to annotate existing layouts, and ignore all other macros.
<DT> <B>write</B> [<I>cell</I>] [<B>-tech</B>]
[<B>-hide</B> [<I>distance</I>]] [<B>-toplayer</B>]
[<B>-pinonly</B> [<I>distance</I>]] [<B>-nomaster</B>]
<DD> Write LEF for the current or indicated cell.<BR>
Option <B>-tech</B> writes the technology information (layer
mapping and rules) to the same file as the cell macro. <BR>
Option <B>-hide</B> generates an abstract view that has all
interior detail removed, leaving only pins and obstruction
layers covering the entire cell with cut-out areas for the
pins. Option <B>-hide</B> may take an additional value
argument <I>distance</I> which will hide the central part
of a cell starting a distance <I>distance</I> from the edge.
The <I>distance</I> value is in units of lambda by default,
but like other distance measurements changes with respect
to the <B>snap</B> command setting, and can take a suffix
such as "<B>um</B>" to specify a physical distance relative
to the current CIF/GDS output scale. <BR>
Option <B>-toplayer</B> outputs pin geometry only for the
topmost layer belonging to the pin; all connected layers
underneath will be output as obstructions. <BR>
Option <B>-pinonly</B> will mark only areas that are port
labels as pins, while marking the rest of each related net
as an obstruction. Value <I>distance</I>, if given, will
extend any pin beyond the marked port label along the length
of the same net, to the specified distance into the interior
of the cell. <BR>
Option <B>-nomaster</B> will prevent the generation of
output geometry on layers defined as MASTERSLICE.
<DT> <B>writeall</B> [<B>-tech</B>] [<B>-hide</B> [<I>distance</I>]]
[<B>-notop</B>] [<B>-toplayer</B>] [<B>-nomaster</B>]
<DD> Write all cells including the top-level cell. This might
be appropriate if the top-level cell is a compendium of
standard cells. <BR>
With option <B>-notop</B>: Write all subcells of the top-level cell,
but not the top-level cell itself. This is appropriate for
generating a LEF library from a layout, for which the layout
itself would be written to a DEF file. <BR>
Options <B>-hide</B>, <B>-tech</B>, and <B>-toplayer</B> are
the same as for the <B>lef write</B> command.
<DT> <B>nocheck</B> [<I>netname</I> ...]|[<B>none</B>]|[<B>*</B>]
<DD> Do not check for antenna diffusion and gate area on the nets with
the names given as option <I>netname</I>.
Any number of net names may be given as arguments. Typically,
power and ground nets should not need these checks. If the nets
are attached to port labels that have been flagged with the use
"<B>power</B>" or "<B>ground</B>", then these nets will be
skipped automatically. If not, then this command option provides
an alternative way to avoid running the checks, which can cause
a huge performance hit when generating a LEF view of a large
layout. The single argument "<B>*</B>" will cause all net checks
to be skipped, and no antenna information will appear in the
LEF file output. The single argument "<B>none</B>" removes the
list of net names for which antenna checks should be skipped.
<DT> <B>datestamp</B> [<I>value</I>|<B>default</B>]
<DD> Force all cell definitions generated from LEF macros to have
the datestamp (timestamp) of <I>value</I>. This can be used to
ensure that the timestamps of abstract views match the timestamps
of the equivalent full views, so that switching between abstract
and full views does not cause timestamp mismatch handling. The
string <B>default</B> cancels any fixed timestamps.
<DT> <B>help</B>
<DD> Print help information
</DL>
</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>Summary:</H3>
<BLOCKQUOTE>
The <B>lef</B> command writes LEF-format files, which are files
containing technology information and information about the content
of standard cells. It is used in conjunction with the <B>def</B>
command to read databases of routed digital standard-cell layouts.
The <TT>.lef</TT> file shares some information with the technology
file in <B>magic</B>. At a minimum, to read <TT>.lef</TT> files
from third-party sources, the technology file should have a
<B>lef</B> section that maps magic layers to layer names that are
found in the <TT>.lef</TT> and <TT>.def</TT> files. Without
this information, <B>magic</B> will attempt to make an educated
guess about the routing layers, which normally will be named
in an obvious manner such as "metal1", "metal2", etc. The
technology file section may be necessary to handle more complicated
input such as obstruction layers. Most other aspects of a
technology will be contained within the <TT>.lef</TT> file.
When writing <TT>.lef</TT> files, <B>magic</B> will use internal
layer names for the routing layers if no other information is
present in the <B>lef</B> section of the technology file. <P>
Because the <B>lef</B> format allows standard cells to be minimally
defined (for purposes of protecting intellectual property), often
the <TT>.lef</TT> file contains no actual layout information for
the standard cells. <B>magic</B> provides a command option
"<B>-import</B>". When specified, for each macro cell in the
input <TT>.lef</TT> file, <B>magic</B> will look for a <TT>.mag</TT>
file of the same name. If found, it will be loaded and used in
preference to the definition in the <TT>lef</TT> file. <P>
Magic uses the <B>port</B> mechanism for labels to determine
what are the standard cells in a design. All cells containing
<B>port</B> labels will be considered standard cells when writing
a <TT>.lef</TT> file. Ports retain various bits of information
used by the LEF/DEF definition, including the port use and
direction. See the <B>port</B> documentation for more information.<P>
Macro cell properties common to the LEF/DEF definition but that
have no corresponding database interpretation in <B>magic</B>
are retained using the cell <B>property</B> method in <B>magic</B>.
There are specific property names associated with the LEF format.
These are as follows:
<DL>
<DT> <B>LEFclass</B>
<DD> Corresponds to the value of <B>CLASS</B> for a macro
cell in the LEF format.
<DT> <B>LEFsymmetry</B>
<DD> Corresponds to the value of <B>SYMMETRY</B> for a macro
cell in the LEF format.
<DT> <B>LEFsite</B>
<DD> Corresponds to the value of <B>SITE</B> for a macro
cell in the LEF format.
<DT> <B>LEFproperties</B>
<DD> Corresponds to the value of <B>PROPERTY</B> for a macro
cell in the LEF format. LEF properties should be specified
in a single cell property, in key:value pairs and space-separated.
Like all properties containing spaces, the entire property string
should be enclosed in quotes. When writing output, each of the
space-separated entries will be output on its own PROPERTY line
in the LEF file.
</DL>
Normally, when importing a LEF/DEF layout into <B>magic</B>, one
will first execute a <B>lef read</B> command followed by a
<B>def read</B> command. Likewise, when writing a layout, one
will first execute a <B>lef writeall -notop</B> command followed
by a <B>def write</B> command. <P>
If a LEF file of macro definitions is read when the same cells
as named in the macros already exist in the magic database, then
the LEF file macros will be used to annotate the existing layout.
This includes setting pin properties (see above), extending the
area of labels to cover an entire port, and setting a bounding
box on the cell corresponding to the LEF origin and size. <P>
Note that <B>lef write -hide</B> will generate only the minimum
amount of obstruction bounding any non-pin geometry inside a
layout. To enforce a larger obstruction area, the property
"<B>OBS_BBOX</B>" can be created in the cell, a string with
four values for the lower left and upper right corners of the
bounding box, in magic internal database units.
</BLOCKQUOTE>
<H3>Implementation Notes:</H3>
<BLOCKQUOTE>
<B>lef</B> is implemented as a built-in command in <B>magic</B>.
Only the critical portion of the LEF syntax has been implemented.
In particular, simulation-specific properties of the technology
and of macro cells are not implemented.
</BLOCKQUOTE>
<H3>See Also:</H3>
<BLOCKQUOTE>
<A HREF=def.html><B>def</B></A> <BR>
<A HREF=port.html><B>port</B></A> <BR>
<A HREF=property.html><B>property</B></A> <BR>
<A HREF=snap.html><B>snap</B></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> June 28, 2021 at 12:28pm <P>
</BODY>
</HTML>