706 lines
24 KiB
Markdown
706 lines
24 KiB
Markdown
|
|
<h1 align="center">MAGIC</h1>
|
|
<h2 align="center"> Magic is a venerable VLSI layout tool</h2>
|
|
|
|
---
|
|
|
|
|
|
<img src="assets/2021-12-22-21-23-08.png" width="400">
|
|
<img src="assets/2021-12-22-21-23-33.png" width="400">
|
|
|
|
---
|
|

|
|
---
|
|
|
|
# Install Magic
|
|
|
|
<img src="assets/2021-12-22-23-06-10.png" width="100">
|
|
<img src="assets/2021-12-22-23-07-35.png" width="100">
|
|
|
|
# (Ubuntu/Linux) Compile and install guide
|
|
## In order to install magic on Ubuntu/Linux follow these steps:
|
|
<details>
|
|
<summary>Expand for more details</summary>
|
|
|
|
## install prerequisits (Ubuntu) (Updated October 2018)
|
|
<details>
|
|
<summary>Expand for more details</summary>
|
|
|
|
```bash
|
|
sudo apt-get install m4
|
|
|
|
# note that Ubuntu has different csh and tcsh
|
|
sudo apt-get install tcsh
|
|
sudo apt-get install csh
|
|
sudo apt-get install libx11-dev
|
|
sudo apt-get install libcairo2-dev
|
|
```
|
|
# Install the recommended Tcl/Tk wrapper around magic (Version 8.5 or higher is highly recommended.)
|
|
```bash
|
|
sudo apt-get install tcl-dev tk-dev
|
|
```
|
|
|
|
## non-TK alterantive (OPTIONAL)
|
|
<details>
|
|
<summary>Expand for more details</summary>
|
|
|
|
For the non-Tcl/Tk version only: The readline source makes reference to the `tputs` function which is provided by the ncurses library. Although the ncurses library is installed in Ubuntu, the include files to build against it are not, so the development version is required.
|
|
```bash
|
|
sudo apt-get install libncurses-dev
|
|
```
|
|
</details>
|
|
|
|
## Graphics alternatives (OPTIONAL)
|
|
|
|
<details>
|
|
<summary>Expand for more details</summary>
|
|
|
|
### The best graphics for Magic is the OpenGL interface ("magic -d OGL"), but since that is problematic for off-screen rendering on many systems, a good alternative is the Cairo graphics interface ("magic -d XR"). This is optional, but if you want to use it, you need the Cairo library development package:
|
|
### Cairo
|
|
```bash
|
|
sudo apt-get install libcairo2-dev
|
|
```
|
|
### The OpenGL interface itself may need these dependencies:
|
|
### OpenGL
|
|
```bash
|
|
sudo apt-get install mesa-common-dev libglu1-mesa-dev
|
|
```
|
|
</details>
|
|
|
|
---
|
|
|
|
</details>
|
|
|
|
# Compile magic from source magic
|
|
|
|
|
|
### example with no options:
|
|
```bash
|
|
cd ~
|
|
git clone https://github.com/RTimothyEdwards/magic.git
|
|
cd magic
|
|
./configure
|
|
make
|
|
sudo make install
|
|
```
|
|
#### Note: Remember to use 'gmake' on FreeBSD.
|
|
---
|
|
|
|
## Options Details
|
|
---
|
|
### Autoconf options (use `./configure --help` for a complete list):
|
|
|
|
### example with no options:
|
|
```bash
|
|
./configure <options>
|
|
```
|
|
---
|
|
|
|
### Indicates the install directory.
|
|
#### Determines the install directory of the executable. Determines the install directory of the libraries (${prefix}/lib) unless use of `--libdir=<DIRECTORY>` overrides it. Defaults to `/usr/local/`.
|
|
```bash
|
|
--prefix=<DIRECTORY>
|
|
```
|
|
|
|
---
|
|
|
|
### libdir
|
|
#### By default, `${prefix}/lib/`. Otherwise, run-time files used by magic are installed here, and ${CAD_ROOT} is set to DIR. In some distributions, this is set to `/usr/share/`.
|
|
```bash
|
|
./configure --libdir=<DIRECTORY>
|
|
```
|
|
|
|
---
|
|
|
|
### Enable one of the two interpreters.
|
|
#### one of "tcl" or "scheme".
|
|
```bash
|
|
./configure --with-interpreter=<"tcl" | "scheme">
|
|
```
|
|
|
|
---
|
|
|
|
### Equivalent to "--with-interpreter=tcl".
|
|
#### Normally enabled, if available.
|
|
```bash
|
|
./configure --with-tcl
|
|
```
|
|
|
|
---
|
|
|
|
### Enable OpenGL as a graphics option.
|
|
#### Normally enabled, if available.
|
|
```bash
|
|
./configure --with-opengl
|
|
```
|
|
|
|
---
|
|
|
|
### Disable X11 as a graphics option.
|
|
#### Normally enabled.
|
|
```bash
|
|
./configure --without-x
|
|
```
|
|
|
|
---
|
|
|
|
### Disable non-Manhattan extensions.
|
|
#### Normally enabled.
|
|
```bash
|
|
./configure --disable-nonmanhattan
|
|
```
|
|
|
|
---
|
|
|
|
### Disable the GNU "readline" package.
|
|
#### Normally enabled.
|
|
```bash
|
|
./configure --disable-readline
|
|
```
|
|
|
|
---
|
|
|
|
### Disable threaded X11 and OpenGL graphics.
|
|
#### Normally enabled.
|
|
```bash
|
|
./configure --disable-threads
|
|
```
|
|
|
|
---
|
|
|
|
## For more on how to use magic visit the user guid here
|
|
---
|
|
### [Magic User's Guide](http://opencircuitdesign.com/magic/)
|
|
|
|
---
|
|
</details>
|
|
|
|
---
|
|
|
|
<img src="assets/2021-12-22-23-05-29.png" width="100">
|
|
|
|
# (Mac) Compile and install guide
|
|
|
|
## In order to install magic on MacOS (Big Sur) follow these steps:
|
|
|
|
<details>
|
|
<summary>Expand for more details</summary>
|
|
|
|
## Build Tcl for X11
|
|
|
|
We are following the instructions from xschem [github.com/StefanSchippers/xschem.... README_MacOS.md](https://github.com/StefanSchippers/xschem/blob/master/README_MacOS.md).
|
|
|
|
#### Download Tcl from https://prdownloads.sourceforge.net/tcl/tcl8.6.10-src.tar.gz
|
|
|
|
We are using not `opt` but `opt2` so that this Tcl does not interfere with `tcl-tk` from HomeBrew.
|
|
|
|
```
|
|
./configure --prefix=/usr/local/opt2/tcl-tk
|
|
make
|
|
make install
|
|
```
|
|
|
|
## Build Tk for X11
|
|
|
|
#### Download Tk from https://prdownloads.sourceforge.net/tcl/tk8.6.10-src.tar.gz
|
|
|
|
```bash
|
|
./configure --prefix=/usr/local/opt2/tcl-tk \
|
|
--with-tcl=/usr/local/opt2/tcl-tk/lib --with-x \
|
|
--x-includes=/opt/X11/include --x-libraries=/opt/X11/lib
|
|
make
|
|
make install
|
|
```
|
|
|
|
## Build magic
|
|
|
|
We need to provide this `tcl-tk` and suppress compilation errors.
|
|
|
|
```bash
|
|
./configure --with-tcl=/usr/local/opt2/tcl-tk/lib \
|
|
--with-tk=/usr/local/opt2/tcl-tk/lib \
|
|
--x-includes=/opt/X11/include \
|
|
--x-libraries=/opt/X11/lib \
|
|
CFLAGS=-Wno-error=implicit-function-declaration
|
|
make
|
|
make install
|
|
```
|
|
----
|
|
</details>
|
|
|
|
---
|
|
|
|
<img src="assets/2021-12-22-23-09-28.png" width="100">
|
|
|
|
## Finished installing? Here's how to use `Magic`
|
|
---
|
|
### [Magic User's Guide](http://opencircuitdesign.com/magic/)
|
|
---
|
|
|
|
|
|
|
|
----
|
|
# Documenation and usefull links
|
|
### Primary documentation is on [opencircuitdesign.com](http://opencircuitdesign.com/magic/)
|
|
|
|
---
|
|
## Install
|
|
### information on obtaining, compiling, and installing the tool from source
|
|
[Magic Compile and Install Information Page](http://opencircuitdesign.com/magic/install.html)
|
|
---
|
|
## Download Bundle
|
|
##### Note: this bundle is often out of date, its recommended to compile from source. see **[Install](## Install)**
|
|
[Magic Download Page](http://opencircuitdesign.com/magic/download.html)
|
|
|
|
## How to use magic
|
|
#### basic usage information including a complete on-line
|
|
command reference
|
|
|
|
### [Magic User's Guide](http://opencircuitdesign.com/magic/)
|
|
|
|
## Magic Technology Files
|
|
#### for essential documentation on how to understand, edit, or write technology files for Magic
|
|
[Magic Technology Files](http://opencircuitdesign.com/magic/)
|
|
|
|
## Code History
|
|
### detailed comments on all code changes
|
|
### [Magic Code Revision History](http://opencircuitdesign.com/magic/history.html)
|
|
|
|
## Magic Documentation Page
|
|
#### for miscellaneous papers and historical documentation converted to HTML format.
|
|
### [Magic Documentation Page](http://opencircuitdesign.com/magic/magic_docs.html)
|
|
|
|
|
|
## Old documentation
|
|
#### Mainly historical interest only, now available through the [WayBack machine here](https://web.archive.org/web/20051217204815/http://www.research.compaq.com:80/wrl/projects/magic/magic.html)
|
|
---
|
|
|
|
# Maintainer(s)
|
|
### The current distribution version of magic is maintained by
|
|

|
|
|
|
`Tim Edwards`
|
|
|
|
<tim@opencircuitdesign.com>
|
|
### Please let me know of any problems/bugs you find through the github Issues tracker`
|
|
---
|
|
### Additional information from developer `Rajit Manohar`:
|
|
### [csl.yale.edu/~rajit/magic/](https://csl.yale.edu/~rajit/magic/)
|
|
|
|
|
|
|
|
# Release Notes:
|
|
|
|
<details>
|
|
<summary>Version 8.3 Release Notes:</summary>
|
|
During the course of version 8.2, magic moved to a git-oriented
|
|
development. There are no longer "stable" and "distribution"
|
|
versions. There is only the git repo with various development
|
|
branches.
|
|
|
|
First release contains the "bplane" implementation for the cell
|
|
plane pulled from the open source code for micromagic. This is
|
|
much more efficient than using the corner-stitched tile plane
|
|
for cells, and speeds up a number of methods, such as extraction,
|
|
by a factor of 3 to 5 or so, depending on the amount of hierarchy
|
|
in the design.
|
|
</details>
|
|
<details>
|
|
<summary>Version 8.2 Release Notes:</summary>
|
|
|
|
As of the release of version 8.2, Version 8.1 is now the new stable
|
|
distribution, and 8.2 is the development distribution. First
|
|
development push over 8.1 is to add a Cairo (2D hardware-accelerated
|
|
graphics) interface ("magic -d CAIRO" or "magic -d XR").
|
|
|
|
October, 2017: DRC changes correctly handle DRC errors in a child
|
|
cell that are effectively corrected by geometry in the parent cell.
|
|
|
|
March, 2018: Added better version handling of subcells. "Use"
|
|
records contain a path (relative or absolute) to the library used
|
|
by the subcell, and this path is honored as long as it can be
|
|
found.
|
|
|
|
April, 2018: Added the "plow" function back to the level of
|
|
capability it originally had. This does not include handling of
|
|
magic extensions since version 7, including non-manhattan geometry,
|
|
stacked contacts, and DRC rule extensions.
|
|
|
|
Extended the extraction method to allow multiple extracted device
|
|
types per magic layer, depending on the surrounding context
|
|
(connecting layers, substrate, identifier layers, etc.).
|
|
|
|
Corrected the "extresist" method for non-FET devices, although it
|
|
continues to need fundamental work to remove its dependence on the
|
|
".sim" format files.
|
|
</details>
|
|
<details>
|
|
<summary>Version 8.1 Release Notes:</summary>
|
|
|
|
|
|
As of the release of version 8.1, Version 8.0 is now the new stable
|
|
distribution, and 8.1 is the development distribution.
|
|
|
|
What's new in 8.1:
|
|
------------------
|
|
1) Substantially revised substrate handling allows for "soft
|
|
connectivity" detection, and resolves (finally) the problem of
|
|
the hack handling of nMOS bulk connections using a default
|
|
name without any understanding of a substrate node and
|
|
connectivity.
|
|
</details>
|
|
<details>
|
|
<summary>Version 8.0 Release Notes:</summary>
|
|
|
|
|
|
As of the release of version 8.0, Version 7.5 is now the new stable
|
|
distribution, and 8.0 is the development distribution.
|
|
|
|
What's new in 8.0:
|
|
------------------
|
|
1) Vector outline fonts with ability to control font, scale, rotation,
|
|
and offset. Public-license outline fonts provided by the freefont
|
|
project.
|
|
|
|
2) Hierarchical SPICE output for LVS.
|
|
|
|
3) New cifoutput operators including "net" and "maxrect", specifically
|
|
for using with the "cif paint" command.
|
|
|
|
4) DRC method for handling via rules specifying overlap on two
|
|
opposite sides but not on the others.
|
|
|
|
5) Improved DRC method that ignores errors in subcells that are
|
|
masked by the parent cell.
|
|
|
|
6) Improved cell manager based on methods available in Tk 8.5
|
|
|
|
7) New extraction method "msubcircuit" with methods for specifying
|
|
parameter names for source/drain area and perimeter.
|
|
</details>
|
|
<details>
|
|
<summary>Version 7.5 Release Notes:</summary>
|
|
|
|
Version 7.5 is the development branch. Version 7.5.0 is the same as
|
|
7.4.2, which is essentially the same as 7.3.123, plus some
|
|
documentation updates. Intended development is as follows:
|
|
|
|
What's new in 7.5:
|
|
------------------
|
|
1) Use a finely spaced grid for the database, but keep the concept
|
|
of "lambda" for layout. Keep backwards compatibility, and resolve
|
|
issues with layout that does not work well on the lambda grid.
|
|
Implemented in 7.5.1 by allowing a DRC "scalefactor" line,
|
|
which declares that all DRC rules are in units of (lambda /
|
|
scalefactor). Rules "in use" are scaled to lambda and rounded to
|
|
the nearest integer. The original value is retained, however, so
|
|
that any call to "scalegrid" will recompute the DRC distances based
|
|
on the current internal grid. Thus, we can define DRC rules in
|
|
fractional lambda and therefore match vendor DRC rule distances
|
|
while still maintaining magic's concept of "lambda". This means
|
|
that users working entirely within magic have scalable CMOS rules,
|
|
but if a "vendor cell" (3rd party GDS or CIF) is loaded, the DRC
|
|
rules will be correct with respect to it.
|
|
2) Multiple DRC styles allowed in the technology file.
|
|
3) Memory-mapped tile allocation using the mmap() function.
|
|
4) Layer and cell instance locking
|
|
5) Euclidean-distance measure on "cif grow" operator.
|
|
6) "cif paint" command to automatically manipulate the database
|
|
paint using "cifoutput" rulesets.
|
|
7) New contact-cut generation algorithm.
|
|
8) Added the ability to define and extract MOS devices with
|
|
asymmetric source and drain.
|
|
9) Added extraction devices "rsubcircuit" and "subcircuit" to
|
|
produce subcircuit records in SPICE output, with a method to
|
|
define parameters to be passed to the subcircuit.
|
|
10) Added resistor corner scaling (i.e., the resistance of a
|
|
material at a corner can be set as a fraction of the resistance
|
|
of the same material on a straight path).
|
|
11) Updated the interactive maze router, fixing many bugs, and adding
|
|
many enhancements, including a maze router GUI that can be used
|
|
to aid in interactively routing an entire netlist, or performing
|
|
a verification of a netlist against the layout.
|
|
12) "gridlimit" keyword in the cifoutput section to prevent magic
|
|
from generating geometry beyond a specific resolution.
|
|
13) Added the ability to specify all units in the extract section in
|
|
microns, and added a simplified method for specifying standard
|
|
parasitic capacitance extraction rules.
|
|
14) "gds merge true" option to generate polygons in the GDS output
|
|
instead of tiles. This creates *much* smaller output files at
|
|
the expense of processing time.
|
|
15) New "contact" function to automatically contact two layers at
|
|
an intersection.
|
|
|
|
See the online release notes for a more thorough list of features.
|
|
</details>
|
|
<details>
|
|
<summary>Version 7.4 Release Notes:</summary>
|
|
|
|
Version 7.4 is the new stable distribution version of magic.
|
|
Apart from changes to the release notes, it is identical to
|
|
the last revision (123) of development version 7.3. Revisions
|
|
of 7.4 will be made as necessary to fix bugs in the code. All
|
|
new additions and major changes will be done to the new
|
|
development distribution, version 7.5. Therefore there will
|
|
not be a "What's new in 7.4" section, as there is not supposed
|
|
to be anything new in version 7.4.
|
|
</details>
|
|
<details>
|
|
<summary>Version 7.3 Release Notes:</summary>
|
|
|
|
Magic release 7.3 incorporates a stacked contact model which is,
|
|
for the most part, backwardly compatible with Magic releases
|
|
7.2 and earlier. Information about this developmental release
|
|
can be found at:
|
|
|
|
http://opencircuitdesign.com/magic/magic7_3.html
|
|
|
|
|
|
What's new in 7.3:
|
|
------------------
|
|
Provided by Tim Edwards (MultiGiG, Inc.):
|
|
1) Stacked contact model allowing arbitrary stacking of
|
|
contact types.
|
|
2) A separate "undo/redo" method for network selection, to
|
|
remove the memory overhead associated with selecting and
|
|
unselecting large networks. Also removes some time overhead
|
|
as well, especially when unselecting networks.
|
|
3) Much improved "plot pnm" function.
|
|
4) Improved transistor and resistor extraction.
|
|
5) LEF format reader; improved LEF/DEF input/output handling
|
|
6) New style and colormap file formats
|
|
7) Vendor GDS read/write capability
|
|
8) "wire segment" drawing function
|
|
9) Handling of path records in CIF and GDS input
|
|
10) Handling of cell scaling in GDS input
|
|
11) Pi-network device extraction for resistors
|
|
12) Option to write contacts as cell arrays in GDS output
|
|
13) New "widespacing" and "maxwidth" DRC algorithms.
|
|
14) "polygon" command
|
|
15) New cifoutput operator "bloat-all"
|
|
16) Backing-store for 24-bit and OpenGL graphics
|
|
17) New "pick" tool for interactive selection move and copy
|
|
18) New interactive "wire" tool
|
|
19) Crosshair
|
|
20) New cifoutput operator "slots"
|
|
21) New fcntl-based file locking mechanism
|
|
22) "angstroms" units supported in cifinput/cifoutput
|
|
23) Non-Manhattan device extraction support
|
|
24) New "feedback" mechanism
|
|
25) Proper support for > 32 planes (up to 64)
|
|
26) Fixed array interaction CIF/GDS generation
|
|
27) Added executable "magicdnull" for streamlined batch-mode use
|
|
28) New method for crash backups, including restore with "magic -r"
|
|
29) A number of other technology file additions and enhancements
|
|
</details>
|
|
<details>
|
|
<summary>Version 7.2 Release Notes:</summary>
|
|
|
|
Magic release 7.2 incorporates the capability to run magic from the Tcl
|
|
interpreter with graphics handled by Tk. Instructions for compiling
|
|
and installing this version are in README.Tcl. Information about
|
|
this release can be found at:
|
|
|
|
http://opencircuitdesign.com/magic/magic7_2.html
|
|
|
|
What's new in 7.2:
|
|
------------------
|
|
Provided by Tim Edwards (MultiGiG, Inc., and JHU Applied Physics Lab):
|
|
|
|
1) Tcl interpreter extension option
|
|
2) Cygwin compile option
|
|
3) Memory resources cleaned up
|
|
4) GUI interface to Tcl version of Magic
|
|
5) Readline update to version 4.3
|
|
6) OpenGL fixes and refinements
|
|
7) Nonmanhattan geometry fixes and extensions
|
|
8) Threaded graphics in non-Tcl environments
|
|
9) Inductance extraction
|
|
10) CIF and GDS input/output support for deep submicron technologies
|
|
11) Different internal and lambda grids, including automatic or
|
|
induced ("scalegrid" command) grid subdivision and expansion.
|
|
"snap" and "grid" functions and extensions aid layout when
|
|
lambda and internal units differ.
|
|
12) Removed commands "list", "listall", "parent", and "child",
|
|
replacing them with the more general-purpose "cellname"
|
|
and "instance" commands.
|
|
13) Added command "tech", and re-loadable technologies.
|
|
14) Revamped the "dstyle" files and updated the dstyle version
|
|
15) Added "element" types for layout annotation.
|
|
16) Extended extract section of techfile to include "device"
|
|
keyword and devices "mosfet", "bjt", "capacitor", and "resistor".
|
|
New model resistor and mosfet use width/length instead of area/
|
|
perimeter.
|
|
17) Added 3D rendering window invoked by command "specialopen wind3d",
|
|
for the Tcl version compiled with OpenGL graphics.
|
|
18) Added "height" keyword to tech file for height/thickness values
|
|
19) Added "windowname" command for managing multiple wrapper windows
|
|
under Tcl.
|
|
20) Added extraction extension for annular (ring) MOSFETs.
|
|
21) Added "widespacing" DRC rule.
|
|
22) Added GNU autoconf compile
|
|
23) New command "property" for setting key:value pair properties
|
|
in cell definitions that can be interpreted by other routines
|
|
(such as LEF/DEF).
|
|
24) General-purpose subcircuit method using the "port" command to
|
|
declare a cell to be a subcircuit and to mark the position and
|
|
orientation of connections into the subcell. This replaces a
|
|
method previously built into version 7.2 using a "subcircuit"
|
|
layer; that method is now considered obsolete.
|
|
25) LEF and DEF format readers, LEF format writer.
|
|
26) Improved techfile format with asterisk-notation and DRC
|
|
"surround", "overhang", and "rect_only" statements.
|
|
</details>
|
|
<details>
|
|
<summary>Version 7.1 Release Notes:</summary>
|
|
|
|
Magic release 7.1 consolidates all known patches/features
|
|
to magic version 6.5.x, and contains additional features that have
|
|
been added since the consolidation. Information about this release
|
|
is available at the magic web site:
|
|
|
|
http://vlsi.cornell.edu/magic/
|
|
|
|
|
|
What's new in 7.1:
|
|
------------------
|
|
Provided by Rajit Manohar (Cornell University) (formerly version 7.0):
|
|
1) Implementation of "scheme" (a subset of lisp), a powerful method
|
|
of generating complex functions.
|
|
2) Using CVS to facilitate source code development from multiple sites.
|
|
3) New commands using scheme: Too many to mention here; see the
|
|
tutorials in doc/tutscm* for explanations. Functions themselves
|
|
are defined in ${CAD_ROOT}/magic/scm/*.scm
|
|
4) Overhauled the readline interface. See doc/textfiles/readline.txt for
|
|
details.
|
|
5) Changed tons of stuff about the build environment:
|
|
- the include paths in all files is now canonical.
|
|
- redid the make process and rewrote all Makefiles.
|
|
- tons of other small things that hopefully make the build process
|
|
nicer.
|
|
</details>
|
|
<details>
|
|
<summary>Releases prior to version 7:</summary>
|
|
|
|
What's new in 6.5.2:
|
|
--------------------
|
|
Provided by R. Timothy Edwards (Johns Hopkins Applied Physics Laboratory):
|
|
1) Support for OpenGL
|
|
Look at doc/open_gl.txt
|
|
2) Minor update to :config for selection of multiple graphics
|
|
interfaces.
|
|
3) Updates to dstyle and cmap files
|
|
4) Always do a check to see if there is only one active layout
|
|
window: There's no need to annoy the user with complaints
|
|
of "Put the cursor in a layout window" when there is no
|
|
possibility of confusion about the matter.
|
|
|
|
Provided by Philippe Pouliquen (Johns Hopkins University):
|
|
5) "readline" command line editing capability
|
|
6) Macro extensions for X11 (see doc/macro_extension.txt)
|
|
7) Better handling of filenames on the UNIX command-line (multiple
|
|
filenames allowed, ".mag" extension not required).
|
|
8) New commands: "child", "parent", "down", "xload", "list", "listall",
|
|
"listtop", "shell", "imacro".
|
|
9) Command alterations: "box [+|-][dir]", "select visible", area of box
|
|
included in "box" command.
|
|
10) Updated .magic macro file (source in magic/proto.magic, install in
|
|
${CAD_ROOT}/magic/sys/.magic) (see doc/default_macros.txt).
|
|
|
|
What's new in 6.5.1:
|
|
--------------------
|
|
1) Support for true-color displays (courtesy of Michael Godfrey)
|
|
Look into doc/hires-color.txt
|
|
2) Minor updates in ext2sim, ext2spice
|
|
|
|
What's new in 6.5:
|
|
-----------------
|
|
1) Bug fixes in the extractor propagation of attributes (SU)
|
|
|
|
2) New version of ext2sim ext2spice with support for hspice, spice2,
|
|
and spice3 (SU)
|
|
|
|
3) Integration of the port to SUN's Solaris OS (MIT)
|
|
|
|
4) Port to FreeBSD2.x. Thanks to John Wehle (john@jwlab.feith.com)
|
|
|
|
5) Integration of part of the DEC/WRL code fragments into the drc
|
|
code. Since the code is not completely trustworthy the fragments
|
|
are ifdef'd so if need be the drc will behave exactly as the old one.
|
|
(you just need to change the #define DRC_EXTENSIONS in drc/drc.h
|
|
to do that). For a description of the extensions look into
|
|
doc/tutwrl1.ps (DEC/WRL)
|
|
|
|
6) Integration of some patches in to the CIF code that introduce:
|
|
(i) A new cif operation squares-grid which generates contacts
|
|
on grid.
|
|
(ii) A new cif layer command min-width is added so that generated
|
|
layers have the correct min drc width when magic expands
|
|
layers in the hierarchy (like it does with wells).
|
|
|
|
|
|
Magic-6.5 crashes if compiled with gcc in Solaris2.x/SunOS5.x (curiously enough
|
|
it does not have that problem if compiled with Sun's cc compiler). To get
|
|
around that you need to set the flag -DUSE_SYSTEM_MALLOC flag in misc/DFLAGS
|
|
after you run make :config. The error has to do with allignment of doubles
|
|
and an alternative way to get rid of it is to change extract/extractInt.h
|
|
so that CapValue is float instead of double. Nevertheless the first method
|
|
is recomended.
|
|
|
|
What's new in 6.4:
|
|
------------------
|
|
This release, magic 6.4, contains the following modifications:
|
|
|
|
1) A number of bug fixes from the 6.3 notes.
|
|
|
|
2) A version numbering facility for tech files. Please add a new
|
|
section to each tech file after the "tech" section, following
|
|
this example:
|
|
|
|
version
|
|
version 2.0.3
|
|
description "MOSIS CMOS 0.13u Nano-nano technology."
|
|
end
|
|
|
|
Older versions of magic will complain about the new section, but
|
|
no harm will be done.
|
|
|
|
4) Various comments describing dates and versions, including the
|
|
above tech file information, are not written to the CIF file.
|
|
|
|
3) Support for patches and versioning: A new command called "version"
|
|
lists out the version number and patches that are installed.
|
|
A header file called patchlevel.h keeps track of a PATCHLEVEL
|
|
integer and a string in patchlevel.c keeps track of the names of
|
|
each installed patch. When posting patches to the net please be
|
|
sure your patch updates variables. See the files for details.
|
|
|
|
4) Ports to Alpha AXP OSF/1, SGI/IRIX (courtesy of Stefanos
|
|
Sidiropoulos) and Linux (courtesy of Harold Levy).
|
|
|
|
5) A change in the extractor algorithm to provide shielding for
|
|
perimeter capacitances. Also a change in ext2sim to maintain
|
|
information about the area and perimeter of diffusion and
|
|
the bulk connection of the fets (written by Stefanos
|
|
Sidiropoulos).
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-----------------
|
|
# Contributors
|
|
|
|
[](https://github.com/RTimothyEdwards/magic/graphs/contributors)
|
|
|
|
##### Made with [contributors-img](https://contrib.rocks).
|
|
|
|
-----------------
|
|
# License
|
|
#### MIT © 1985, 1990 Regents of the University of California.
|
|
[](https://opensource.org/licenses/MIT)
|