Magic VLSI Layout Tool Version 8.1 *

Magic Distribution Release Notes

Table of Contents

Magic 8.2 Release Notes
Magic 8.1 Release Notes
Magic 8.0 Release Notes
Magic 7.5 Release Notes
Magic 7.4 Release Notes
Magic 7.3 Release Notes
Magic 7.2 Release Notes
Magic 7.1 Release Notes
Magic 6.5 Release Notes

Magic Version 8.2 (Development) Release Notes

Date: April 25, 2017 to present

Version 8.2 Development Code General Disclaimer:

Magic Version 8.2 is "BETA" development code. As of revision 25, the Cairo graphics interface code is complete and the code base is reasonably stable. Revisions prior to 25 are highly unstable.

Magic Version 8.1 (Distribution) Release Notes

Date: September 16, 2014 to April 24, 2017

Version 8.1 Distribution Code General Disclaimer:

As of revision 158, this version is "DISTRIBUTION" code. It can generally be expected to be stable. There is, however, no guarantee as to the correctness of generated layout from magic, due to the current sketchiness of technology files available for current fabrication processes. It should produce correct output for the standard "scmos" set of technology files supported by the MOSIS foundry service. For all other processes (especially deep submicron) it is always best to have a good array of backup (commercial) EDA tools. Most foundries provide DRC (design rule checking) services (sometimes free), and it is always best to check for clean DRC before final submission, particularly in regard to antenna and density rules that magic does not check. All layout should pass rigorous DRC, LVS (layout vs. schematic), extraction, and simulation.

Version 8.1 New Features:

First planned effort is to resolve the long-standing problems with Magic's inability to understand the concept of a substrate. The extraction methods will be rewritten to generate a specific node for the substrate, understand how to connect the substrate to metal through p-taps, and be able to detect soft p-tap connection errors.

This effort was largely completed with version 8.1.58 (April 6, 2015). The source code for 8.1 is now reasonably stable, and should be expected to work without undue issues. The completed changes are mostly reflected in Magic's ability to extract the substrate correctly in a hierarchical netlist.

Magic Version 8.0 Release Notes

Date: Februrary 3, 2009 to September 16, 2014

Version 8.0 New Features:

Version 8.0 adds outline vector fonts (courtesy of the freefont project), and aims to clean up a lot of problems associated with labels in Magic. Version 8.0.22 (December 2008) has the first reasonably stable code for handling vector fonts; all the display, manipulation, and selection routines for both X11 and OpenGL are complete.

In addition, Version 8.0 adds some "cifoutput" operators for use with the new "cif paint" command, for manipulating layout using boolean operators.

In 2012, I developed hierarchical SPICE output in conjunction with netgen development version 1.4 (now the distribution version). Magic version 8.0 has a number of new extraction features, such as declaring parameters to be passed to subcircuits, and allowing MOSFETs, resistors, and other devices to be output as subcircuits.

Magic Version 7.5 Release Notes

Date: Februrary 9, 2006 to February 3, 2008

Version 7.5 New Features:

Revision 2 contains extensions of the technology file format that allow multiple DRC styles, style variants, and a scaling factor which allows DRC rules to be written in vendor dimensions, which are rounded up to the nearest lambda or internal unit.

The "extract" section's capacitance descriptions were simplified to allow simple translation between a process description document and the magic techfile.

Major overhaul of the point-to-point maze router, which now works decently well, and doesn't crash the program.

Support for HPGL and HPRTL was added to the raster and PNM plot routines.

Added layer and cell locking capability (commands "tech layer lock" and "instance lock", respectively).

Added the ability to parse a "site.def" file, which is untouched by re-installation of the software.

Revised the contact generation algorithm to place contact cuts in non-rectangular and non-manhattan areas.

Added an extraction method for FET devices with asymmetric source and drain.

Modified subcircuit device extraction to allow parameter passing to SPICE subcircuit calls.

Magic Version 7.4 Release Notes

Date: Februrary 9, 2006 to February 3, 2008

Magic Version 7.3 Release Notes

Date: September 12, 2003 to Februrary 8, 2006

Version 7.3 New Features:

Version 7.3 Technology Files: is an example technology file taking advantage of the new features. In particular, it makes use of the keyword stackable in the contacts section to define a very efficient set of stackable contacts in an 8-metal-layer process. In addition, it makes use of the format 29 extensions, including the asterisk notation for indicating the union of a layer and all contact types containing that layer as a residue, and the new DRC checking keywords "surround", "overhang", and "rect_only".

Note how readable this file is compared to existing technology files (formats 28 and earlier). This technology file has been stripped down, removing high-voltage devices, metal fill layers, metal resistor layers, and the second polysilicon layer, and defining only one or two styles for CIF/GDS input, output, and extraction. However, with the new style, adding these back in will make the file only marginally less readable.

Caution, caution, caution. This technology file does not correspond to any specific fabrication process. It was created for demonstration and test purposes. To match a specific foundry process, values will need to be tweaked, layers added, etc. is a slight modification of the above file for use with technologies defining nine metal layers. It requires magic 7.3 revision 6 (or newer), which defines the 9th metal layer in the graphics colormap and style files. Note how this file takes advantage of the new techfile enhancements, making the addition of the new top-metal layer trivial.

Version 7.3 Bug Fixes from Version 7.2:

Note for AMD 64-bit users (January 2006): I had been having awful problems with the 64-bit version that seemed to be unrelated to magic but related instead to the NVidia graphics driver for the AMD 64-bit platform. Apart from magic, the server would crash on a fairly regular basis, and would crash upon exiting magic. I just updated to the version 8178 of the driver, and so far I have not seen any problems. The last buggy version of the driver that I installed was 7174; I don't know which exact version fixed the problem (there were 5 revisions between 7174 and 8178).

There should be no bug fixes between versions 7.2 and 7.3, as for the time being, any required bug fixes will be made to both versions.

As of revisions starting in the mid-twenties or so, the above statement is probably no longer true. This partly reflects the intent to make version 7.3 the main development branch shortly (before the end of 2004).

Magic Version 7.2 Release Notes

Date: August 29, 2002 to June 3, 2004
I have been working hard on the next-generation "magic" product. While it is in no condition to be called stable, it is a working product and so I am releasing it as BETA code. This is an upgrade from the previous designation as ALPHA code, as several chips have been successfully designed and manufactured using version 7.2. For differences between the 7.1 CVS source version available from Cornell and the 7.2 development version posted here, please see the following sections.

The new development version is 7.3, with the introduction of a complete overhaul of the way magic deals with contacts, allowing arbitrary stacked contacts. Currently this is in a ALPHA state. Information on this version can be found at the Magic 7.3 page.

Revision 36 was reposted on 4/21/03, as I fixed a bug in the extract section which was producing incorrect length and width values for any transistors extracted with technology files not using the new "device" keyword (which is basically all of them except for the default one that comes with the source). The revision number is not updated because I have Revision 37 still on my laptop at home, but did not have the chance to transfer it to my web host yet. However, the fix is critical for correct circuit extraction; otherwise, area and perimeter values are interpreted as length and width on read-in, producing poor results (to say the least).

Revision 37 introduces autoconf to magic. Inevitably, this will produce a whole new round of porting problems for Solaris, Cygwin, OS X, etc. However, once the essential bugs are ironed out, it should result in fewer porting problems overall. For the moment, both configure and make config methods are retained.

Revision 49 changes the "varargs" method to "stdarg" (one of the items in "TODO"). This became urgent when the latest version of gcc claimed not to support the varargs method for variable arguments any more. HOWEVER, the stdarg method is different on different operating systems. The GNU autoconf system checks for this. The original "make config" script does not. In "make config", the correct setting is made for Linux. However, until some bug reports come back, I'm not certain which systems this will or will not compile on.

Revision 55 incorporates a port to the 64-bit Linux platform. Correct operation has been confirmed on an AMD Opteron machine running RedHat GinGin64 (2.4.20 kernel), loading a design with a half-million standard-cell gates and a half-million nets.

Version 7.2 New Features:

Version 7.2 Tcl/Tk-specific Features:

Magic 7.2 To-Do List:

Version 7.2 Fixes from version 7.1:

Magic Version 7.1 Release Notes

Date: September 1, 2000 to February 19, 2004

Features of Magic version 7.1:

The source for the all-inclusive version 7.1 is available as CVS source. To download the source, do the following:
% cvs -d login
% cvs -d checkout magic
The password for user anoncvs is anonymous. The CVS checkout command will create a directory called simply "magic" in the current working directory.

The Magic CVS source page contains instructions and additional information on the very latest work-in-progress development version of Magic.

For more information on features of Magic 7.1 that stem from the Magic 6.5.2 implementation, please take a look at the Magic-6.5.2 page.

Magic Version 6.5.2 Release Notes

Date: September 1, 2000

OpenGL Graphics Interface

Magic version 6.5.2 is an enhancement to the venerable magic VLSI layout tool including support for OpenGL as an optional graphics interface (X11, SunView, and the defunct X10 and AED are still available). The major benefit of using OpenGL is the freedom from the constraint of 8-bit color planes to represent VLSI layers. Instead, the magic "look and feel" of transparent color layers is reproduced by a 3D hardware color blending function.

Warning: You will need hardware-accelerated 3D graphics support for OpenGL to make reasonable use of this program. This should be readily available on all SGI platforms; check for compatibility with other systems.

Currently, Linux requires an OpenGL-compliant video card and the Xi Graphics, Inc., 3D Accelerated-X server (see Other OpenGL-capable X-servers are available from MetroLink, Precision Insight, SuSE, and RedHat. The XFree86 server, beginning with version 4.0, supports OpenGL and also 8-bit color overlays. The overlay visual is the best way to use the X11 version in an otherwise-24-bit graphics environment.

Note that most X servers which have OpenGL support will provide it whether you have the accelerated hardware or not. Functions which do not have hardware support will be emulated in software. Running magic with OpenGL graphics using software-emulated color blending is an exercise in futility.

Graphics cards typically need 32MB of video RAM to fully implement OpenGL in the kind of resolution (1280 x 1024 or more) that you would want to have in order to do VLSI layout (here's a hint: Don't do VLSI layout on anything smaller than a 19" monitor).

For comparison:

  1. Magic using X11 (magic -d X11) (82KB GIF image)
  2. Magic using OpenGL (magic -d OGL) (185KB GIF image)

Also new in Version 6.5.2

This package includes other enhancements by Philippe Pouliquen ( at JHU (except no. 4 is mine):

New features:

New commands (by Philippe Pouliquen, JHU-ECE):

Note that in version 7.2, the commands "child", "parent", "list", "listall", and "listtop" have all been replaced by the two commands "cellname" and "instance".

Known bugs in the OpenGL interface:

Known bugs in 6.5.2 extensions:

Please contact me (see address at bottom of page) with any bug reports or suggestions.

For your information:

The READ_ME file for magic 6.5.2, taken from the top-level source, and the open_gl.txt file from source subdirectory doc/.


Last updated: September 14, 2017 at 5:07pm