204 lines
7.0 KiB
TeX
204 lines
7.0 KiB
TeX
|
|
%----------------------------------------------------------------------------
|
||
|
|
% Magic Addendum: Version 6.5 differences
|
||
|
|
%----------------------------------------------------------------------------
|
||
|
|
|
||
|
|
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
|
||
|
|
\documentclass[letterpaper,twoside,12pt]{article}
|
||
|
|
\usepackage{epsfig,times}
|
||
|
|
|
||
|
|
\setlength{\textwidth}{8.5in}
|
||
|
|
\addtolength{\textwidth}{-2.0in}
|
||
|
|
\setlength{\textheight}{11.0in}
|
||
|
|
\addtolength{\textheight}{-2.0in}
|
||
|
|
\setlength{\oddsidemargin}{0in}
|
||
|
|
\setlength{\evensidemargin}{0pt}
|
||
|
|
\setlength{\topmargin}{-0.5in}
|
||
|
|
\setlength{\headheight}{0.2in}
|
||
|
|
\setlength{\headsep}{0.3in}
|
||
|
|
\setlength{\topskip}{0pt}
|
||
|
|
|
||
|
|
\def\hinch{\hspace*{0.5in}}
|
||
|
|
\def\starti{\begin{center}\begin{tabbing}\hinch\=\hinch\=\hinch\=hinch\hinch\=\kill}
|
||
|
|
\def\endi{\end{tabbing}\end{center}}
|
||
|
|
\def\ii{\>\>\>}
|
||
|
|
\def\mytitle{Magic Addendum: Version 6.5 differences}
|
||
|
|
|
||
|
|
%----------------------------------------------------------------------------
|
||
|
|
|
||
|
|
\begin{document}
|
||
|
|
|
||
|
|
\makeatletter
|
||
|
|
\newcommand{\ps@magic}{%
|
||
|
|
\renewcommand{\@oddhead}{\mytitle\hfil\today}%
|
||
|
|
\renewcommand{\@evenhead}{\today\hfil\mytitle}%
|
||
|
|
\renewcommand{\@evenfoot}{\hfil\textrm{--{\thepage}--}\hfil}%
|
||
|
|
\renewcommand{\@oddfoot}{\@evenfoot}}
|
||
|
|
\newcommand{\ps@mplain}{%
|
||
|
|
\renewcommand{\@oddhead}{}%
|
||
|
|
\renewcommand{\@evenhead}{}%
|
||
|
|
\renewcommand{\@evenfoot}{\hfil\textrm{--{\thepage}--}\hfil}%
|
||
|
|
\renewcommand{\@oddfoot}{\@evenfoot}}
|
||
|
|
\makeatother
|
||
|
|
\pagestyle{magic}
|
||
|
|
\thispagestyle{mplain}
|
||
|
|
|
||
|
|
\begin{center}
|
||
|
|
{\bfseries \Large \mytitle} \\
|
||
|
|
\vspace*{0.5in}
|
||
|
|
{\itshape Stefanos Sidiropoulos} \\
|
||
|
|
\vspace*{0.5in}
|
||
|
|
Center for Integrated Systems \\
|
||
|
|
Stanford University \\
|
||
|
|
Stanford, CA 94305 \\
|
||
|
|
\vspace*{0.25in}
|
||
|
|
This tutorial corresponds to Magic version 7. \\
|
||
|
|
\end{center}
|
||
|
|
\vspace*{0.5in}
|
||
|
|
|
||
|
|
{\noindent\bfseries\large Affected Documents:}
|
||
|
|
\starti
|
||
|
|
\> Magic Tutorial \#6: Design-Rule Checking \\
|
||
|
|
\> Magic Tutorial \#9: Format Conversion for CIF and Calma \\
|
||
|
|
\> Magic Tutorial \#W-1: Design-Rule Extensions \\
|
||
|
|
\> Magic Maintainer's Manual \#2: The Technology File \\
|
||
|
|
\> Magic man pages: ext2sim(1), ext2spice(1), extflat(3), ext(5).
|
||
|
|
\endi
|
||
|
|
|
||
|
|
\vspace*{0.25in}
|
||
|
|
\section{Introduction}
|
||
|
|
|
||
|
|
Magic 6.5 has some significant modifications that make some of the
|
||
|
|
original version 6 documents obsolete. The purpose of this addendum
|
||
|
|
is to highlight these differences so that users can take advantage
|
||
|
|
of the new features.
|
||
|
|
|
||
|
|
\section{Extractor Extensions}
|
||
|
|
|
||
|
|
The 6.5 extractor uses double precision floating point numbers
|
||
|
|
to represent capacitances. Therefore all the capacitances
|
||
|
|
in (aF/sq-lambda) associated with
|
||
|
|
the {\itshape areacap, perimc, sidewall, sideoverlap} keywords
|
||
|
|
in the extract section of the technology file can be {\itshape floating point
|
||
|
|
numbers}.
|
||
|
|
|
||
|
|
Additionally the extension of the capacitance to floating point numbers
|
||
|
|
affects the manual pages of ext2sim(1), ext2spice(1), extflat(3), ext(5)
|
||
|
|
which can be found in your local system under CAD{\_}HOME/man
|
||
|
|
|
||
|
|
The 6.5 extractor shields the perimeter capacitance from layer to layer.
|
||
|
|
To facilitate this two new commands {\itshape planeorder, noplaneordering}
|
||
|
|
have been introduced and the {\itshape sideoverlap} command has been modified.
|
||
|
|
The syntax for the new commands is:
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries planeorder} {\itshape plane num }
|
||
|
|
\endi
|
||
|
|
|
||
|
|
Where {\itshape plane} is one of the defined planes and {\itshape num} is a positive
|
||
|
|
integer indicating the ordering of this plane from lower to higher. So for
|
||
|
|
example the metal1 plane has order 3 while metal2 has order 4.
|
||
|
|
|
||
|
|
In case you dont want to specify the order of the planes the extractor
|
||
|
|
will complain and assume a default one. If you want to suppress the
|
||
|
|
warning you just have to issue the keyword:
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries noplaneordering }
|
||
|
|
\endi
|
||
|
|
|
||
|
|
|
||
|
|
The {\itshape sideoverlap} keyword syntax has been altered to:
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries sideoverlap} {\itshape intypes outtypes ovtypes cap shieldtypes}
|
||
|
|
\endi
|
||
|
|
|
||
|
|
where {\itshape intypes}, {\itshape outtypes}, and {\itshape ovtypes} are type-lists
|
||
|
|
and {\itshape cap} is capacitance in attofarads per lambda.
|
||
|
|
This is the capacitance associated with an edge with a type
|
||
|
|
in {\itshape intypes} on its inside and a type in {\itshape outtypes} on
|
||
|
|
its outside, that overlaps a tile whose type is in {\itshape ovtypes}.
|
||
|
|
If the {\itshape shieldtypes} is present however this shields the capacitance.
|
||
|
|
So for example to shield metal-2 to poly capacitance use:
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries sideoverlap} M2Cap \~{}M2Cap PolyCap 19.41 M1Cap
|
||
|
|
\endi
|
||
|
|
|
||
|
|
\section{DRC Extensions}
|
||
|
|
|
||
|
|
This version includes code fragments implemented in DEC-WRL by Don Stark
|
||
|
|
which enable to implement more complicated DRC rules. For a description
|
||
|
|
of these enhancements look in the magic tutorial \#W1 which can be
|
||
|
|
found in the file doc/tutwrl1.ps under the magic source tree.
|
||
|
|
|
||
|
|
\section{CIF extensions}
|
||
|
|
|
||
|
|
Two new commands have been integrated in the cif output section courtesy
|
||
|
|
of Steven Tell and Fred Heaton at UNC.
|
||
|
|
|
||
|
|
The first new command is a command that
|
||
|
|
enables the generation of DRC correct layers at the top level (such as
|
||
|
|
the nwell in the SCMOS tech files). The syntax is:
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries min-width} {\itshape width }
|
||
|
|
\endi
|
||
|
|
|
||
|
|
The width argument is in centimicrons. This command should be specified
|
||
|
|
within a layer sub-section of the cifoutput section of the technology
|
||
|
|
file.
|
||
|
|
|
||
|
|
The second command is an extension to the squares cif output command.
|
||
|
|
Its syntax is:
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries squares-grid} {\itshape border size separation grid}
|
||
|
|
\endi
|
||
|
|
|
||
|
|
The added argument is {\itshape grid}. It is
|
||
|
|
in units of centi-microns. In some technologies, all features
|
||
|
|
must fall on a specified grid. In our case, this was a .05
|
||
|
|
micron grid. In the original implementation of magic, if lambda
|
||
|
|
was not set to some integral multiple of the grid one could
|
||
|
|
generate contacts that did not fall on grid boundaries. By
|
||
|
|
specifying the grid spacing, the new enhancement to the contact
|
||
|
|
generation code will allow contacts to be generated on grid.
|
||
|
|
This does introduce some problems. In particular, some odd
|
||
|
|
size contacts will not be able to generate a CIF contact structure
|
||
|
|
that is centered on its corresponding magic contact. This is
|
||
|
|
not a problem in most cases, except where an odd size contact
|
||
|
|
is shared between two cells. In this case, the CIF contact
|
||
|
|
strucuture might be shifted to the left during CIF generation
|
||
|
|
to get it on grid and the other cell might be shifted to the
|
||
|
|
right. The superposition of these two structures may create
|
||
|
|
an illegal contact size or spacing. Use with extreme care or combine
|
||
|
|
it with cifwidth and cifspacing rules to verify correct operation.
|
||
|
|
|
||
|
|
\section{New commands}
|
||
|
|
|
||
|
|
Three new commands have been introduced (based on the WRL code fragments
|
||
|
|
by Bob Mayo):
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries goto} {\itshape nodename}
|
||
|
|
\endi
|
||
|
|
|
||
|
|
Places the box/cross over the node named {\itshape nodename}.
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries findlabel} {\itshape labelname}
|
||
|
|
\endi
|
||
|
|
|
||
|
|
Places the box/cross over the label {\itshape nodename}.
|
||
|
|
|
||
|
|
\starti
|
||
|
|
\ii {\bfseries flatten} {\itshape destname}
|
||
|
|
\endi
|
||
|
|
|
||
|
|
Flattens the cell in the current layout window and places it in the cell
|
||
|
|
named {\itshape cellname}. The labels are changed to retain their hierarchical
|
||
|
|
prefixes.
|
||
|
|
|
||
|
|
\end{document}
|