Magic VLSI Layout Tool Version 7.4 *

Magic Distribution Release Notes

Table of Contents

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 7.5 (Development) Release Notes

Date: Februrary 9, 2006 to present

Version 7.5 Disclaimer:

Magic Version 7.5 is "ALPHA" development code. Major changes are planned which will guarantee that this code is unstable for some time to come.

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.

Version 7.5 To-Do List:

More technology file DRC extensions: Allow boolean constructs such as those in the "cifinput" and "cifoutput" sections to also be used in the "drc" and "extract" sections. Simplify the "extract" section's capacitance descriptions. As written, there's a huge amount of redundancy in the description for normal situations.

Magic Version 7.4 (Stable) Release Notes

Date: Februrary 9, 2006 to present

Version 7.4 Disclaimer:

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.

Magic Version 7.3 (Development) Release Notes

Date: September 12, 2003 to Februrary 8, 2006

Version 7.3 Disclaimer

This version is "BETA" code. No guarantee is made to its stability. However, it can be expected to be stable. It should be expected to work as well as distribution versions of magic for chip submissions. However, for modern processes, especially deep submicron, it is always best to have a good array of backup (commercial) EDA tools. Most foundries provide DRC 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 (yet).

This code is fairly well tested and free of bugs and quirky behavior in most sections. However, magic is complex and consists of many parts, and not all have been tested with the new methods. See the Magic-7.2 development version page for status explanations.

The purpose of the recent Magic development effort is, eventually, to be able to call Magic a "professional-grade" tool. Any help in this effort is greatly appreciated.

Version 7.3 New Features:

Version 7.3 Technology Files:

scmos8m.tech 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.

scmos9m.tech 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 Disclaimer

This version IS listed in the section above as "BETA" code, and as such, no guarantee is made to its stability. BETA code should not be presumed to generate a perfect result, though, and all final output should be checked against a separate layout tool. Given the expense of fabrication, even DISTRIBUTION code should not be inherently trusted without at least an eyeball check by an experienced layout designer. Magic 6.5.1 is DISTRIBUTION. Magic 7.1 and Magic 7.2 are BETA. Magic 7.3 is ALPHA.

More designations: Magic 7.1 "NONMANHATTAN" option is BETA. Magic 7.1 "FILE LOCKING" option is correct in the 7.1 CVS source code and later versions, but there is no need to compile with it unless you expect more than one person at a time to be working on a layout. It may be considered BETA. New magic techfiles from ISI (MOSIS) have their own designations and are currently described as BETA. Old magic techfiles "scmos.tech27" and its ilk are DISTRIBUTION for most purposes such as small digital circuits (college class projects and such) but are getting outdated.

Note: When checking magic output for errors, remember to always check the CIF or GDS result, as an improper technology file can introduce new errors into a layout which are not checked by either the magic extraction or the DRC rule-based checker. Because errors may also exist in the DRC section of a techfile, a layout ideally should be checked against a professional-grade DRC checker such as CALIBRE.

The purpose of the recent Magic development effort is, eventually, to be able to call Magic a "professional-grade" tool. Any help in this effort is greatly appreciated.

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 :pserver:anoncvs@csl.cornell.edu:/ufs/repository login
% cvs -d :pserver:anoncvs@csl.cornell.edu:/ufs/repository 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 http://www.xig.com). 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)
Usage:

Also new in Version 6.5.2

This package includes other enhancements by Philippe Pouliquen (philippe@alpha.ece.jhu.edu) 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/.

email:

Last updated: February 10, 2006 at 3:46pm