.rm CM
.nr PS 12
.ps 12
.nr VS 14
.vs 14
.\" rcsid "@(#)tutwrl1	1.0 (decwrl) 12/20/89"
.de (C
.nr PS -2
.nr VS -2
.nr LL 5.5i
.IP
..
.de )C
.sp .5c
.nr PS +2
.nr VS +2
.nr LL 6i
..
.DS C
.LG
.LG
.sp |2c
\fBMagic Addendum: Version 6.5 differences\fR
.rm CH
.ds LH Magic Manual Addendum: Extensions to version 6.5
.ds RH \*(DY
.ds CF - % -
.sp 1c
.NL
\fIStefanos Sidiropoulos\fR
.sp 1c

Center for Integrated Systems
Stanford University
Stanford CA 94305
.SM
This is a supplement to version 6 manuals
.DE
.SM
.LP
\fBAffected Documents:\fR
.IP
Magic Tutorial #6: Design-Rule Checking
.br
Magic Tutorial #9: Format Conversion for CIF and Calma
.br
Magic Tutorial #W-1: Design-Rule Extensions
.br
Magic Maintainer's Manual #2: The Technology File
.br
Magic man pages: ext2sim(1), ext2spice(1), extflat(3), ext(5).
.NL
.sp 1c
.NH 1
Introduction
.PP
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. 
.NH 1
Extractor Extensions
.PP
The 6.5 extractor uses double precision floating point numbers
to represent capacitances. Therefore all the capacitances 
in (aF/sq-lambda) associated with
the \fIareacap, perimc, sidewall, sideoverlap\fR keywords
in the extract section of the technology file can be \fIfloating point
numbers\fR. 
.PP
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
.PP
The 6.5 extractor shields the perimeter capacitance from layer to layer.
To facilitate this two new commands \fIplaneorder, noplaneordering\fR
have been introduced and the \fIsideoverlap\fR command has been modified.
The syntax for the new commands is:
.DS C
\fB planeorder \fI plane num \fR
.DE
Where \fIplane\fR is one of the defined planes and \fInum\fR 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.
.PP
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:
.DS C
\fB noplaneordering \fR
.DE
.PP
The \fIsideoverlap\fR keyword syntax has been altered to:
.DS C
\fBsideoverlap\fP \fIintypes outtypes ovtypes cap shieldtypes\fP
.DE
where \fIintypes\fP, \fIouttypes\fP, and \fIovtypes\fP are type-lists
and \fIcap\fP is capacitance in attofarads per lambda.
This is the capacitance associated with an edge with a type
in \fIintypes\fP on its inside and a type in \fIouttypes\fP on
its outside, that overlaps a tile whose type is in \fIovtypes\fP.
If the \fIshieldtypes\fR is present however this shields the capacitance.
So for example to shield metal-2 to poly capacitance use:
.DS C
\fBsideoverlap\fP M2Cap ~M2Cap PolyCap 19.41 M1Cap
.DE

.NH 1
DRC Extensions
.PP
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.


.NH 1
CIF extensions
.PP
Two new commands have been integrated in the cif output section courtesy
of Steven Tell and Fred Heaton at UNC. 
.PP
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:
.DS C
\fB min-width \fIwidth \fR
.DE
The width argument is in centimicrons. This command should be specified
within a layer sub-section of the cifoutput section of the technology
file.
.PP
The second command is an extension to the squares cif output command.
Its syntax is:
.DS C
\fB squares-grid \fIborder size separation grid\fR
.DE
The added argument is \fIgrid\fR.  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.
.NH 1
New commands
.PP
Three new commands have been introduced (based on the WRL code fragments
by Bob Mayo):
.DS C
\fBgoto \fInodename\fR
.DE
Places the box/cross over the node named \fInodename\fR.
.DS C
\fBfindlabel \fIlabelname\fR
.DE
Places the box/cross over the label \fInodename\fR.
.DS C
\fBflatten \fIdestname\fR
.DE
Flattens the cell in the current layout window and places it in the cell
named \fIcellname\fR. The labels are changed to retain their hierarchical
prefixes.
