%---------------------------------------------------------------------------- % 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}