Magic layout tool has the capability to incorporate expertise about design rules and connectivity directly into a layout system in order to implement some powerful interactive operations
Magic is an easy-to-use VLSI layout tool that has been popular with universities and small companies. It can be seen as an open source EDA alternative to the various commercial EDA tools out there. It provides many useful features for streamlining your product design flow.
What’s noteworthy about Magic
Magic uses simplified design rules and circuit structures that make designing easier, but produces circuits that are of lower density than what you would get with more complex rules and structures. This density sacrifice is, however, compensated by the reduced design time. Magic permits only Manhattan designs, that is, where edges are either vertical or horizontal.
Magic combines circuit knowledge with an interactive editor interface to speed up your manufacturing design processes. It allows you to enter and modify your designs quickly. The built-in knowledge of layout rules, circuits and transistors, and the knowledge of efficient routing, helps you re-arrange your circuit as a circuit, and not just a collection of geometrical objects. This makes any modification process more efficient and less complex. Most importantly, it allows you to focus on your design while the software takes care of mundane tasks like following layout rules.
Now let us have a look at some key features that set it apart from the other layout editors available.
Efficient corner-stitching technique
Like most layout editors, Magic also uses cells. However, the contents of these cells are represented using corner-stitching technique, which provides efficient searching options and allows for quick modification of the database.
Each point in the x-y plane is contained in exactly one tile and empty space is represented explicitly. These tiles are linked together at their corners. This allows for fast and efficient algorithms for searching, creation or deletion. Though it requires more storage space, this technique allows for efficient two-dimensional searches and permits fast updates.
Magic is usable through an interface that features colour graphics and also allows the use of a mouse to design basic cells. These basic cells can be hierarchically combined to make larger structures. The tool also provides multiple overlapping windows that can refer to different portions of a single cell or to completely different cells altogether. This way you can see an overall view of the chip while zooming in one or more than one piece of the chip, and you can precisely align large components. Additionally, it enables you to easily copy information from one window to the other.
A key feature and an aid to manual routing in this layout tool is its interactive router, Irouter, which provides an interface to the internal maze router. You can perform routing at one connection at a time, specifying the starting and the end point prior to each connection.
What’s more, you can decide the order in which signals should be routed and how multi-point nets should be decomposed into point-to-area connections. But the interactive router is not a fully automated router, so it will not consider the interactions between nets and thus net decomposition is not automatic.
The special Magic ‘hint’ layers will allow you to control the nature of the routes. Typically, you can determine the overall path of a connection and leave the ‘design-rule check’ and ‘detouring’ around or over minor obstacles to the router tool itself.
Design-rule check with error paints
Magic incorporates a continuous design-rule check feature, which enables you to have an up-to-date picture of design rule errors (if any) in your layout. Therefore it is not necessary to have a complete check over the whole design unless design rules are changed.
With the interactive feature of continuous design-rule check, you can easily and immediately figure out the error location. While editing any layout with Magic, the system will automatically check the design rules, as mentioned above. Whether you paint or erase, or move a cell or change any array structure, Magic will recheck the area changed by you in order to check for the violation of any of the layout rules. If rules are violated, little white dots will be displayed in the vicinity of the violation. These white dots or the error paint will stay till you fix the problem.
Circuit extraction in hierarchical designs
Magic uses cell hierarchies to represent a layout. Each cell contains three things: paint, label and sub cell. While some say that a hierarchical structure is not necessary by reasoning that layout can also be represented as flat, a hierarchical structure greatly improves efficiency of the design tools as well as the speed and ease of designing with them.
There is a problem though. In case of cell overlaps, this situation becomes complicated. As each cell uses a separate plane, so information must be combined from these separate planes in case of any overlap. Therefore circuits cannot be extracted hierarchically as it can cause transistors to split between cells or form (appear?) broken in cell-overlap situations.
Magic, however, allows the cells to overlap as long as the transistor structure is not changed. This means, you can have extracted circuit to be represented hierarchically. The extracted circuit will contain the circuit of the cell, circuits of its sub cells and connections between them.
Though Magic can deal with cell overlapping, extensive use of cell overlaps is not recommended. Extended overlapping will cause the tool to run very slowly and hard to make any modifications.
Stretch and compact cells
Plowing is a special feature that allows you to rearrange the layout without changing the electrical circuit which it represents. The plow operation preserves the design rules and connectivity to maintain the electrical structure of the circuit.
As the plow moves, every edge in its path is pushed ahead of it (not the layers), preserving design rules, connectivity, transistors and contact sizes. This makes everything ahead of the plow to get compacted down to a minimum spacing as per the design rules, and the material which crosses its original position gets stretched behind the plow. To get a better idea, you can try it out using the installer in the DVD accompanying this magazine.
You can stretch or compact most of the materials including polysilicon, diffusion and metal. However, components like transistors and contacts can only be moved, their shapes cannot be changed.
Magic is a technology-independent layout editor where all the technology-specific information is contained in a technology file. This file includes information about layer types used, electrical connectivity between types, design rules, rules for mask generation and rules for extracting netlists for circuit simulation.
Since there is different technology file for every fabrication process, you can either build your own or re-write the existing one for a new fabrication process. You can download the standard technology file using FTP server at MOSIS foundation. You can select the symbolic link ‘Current’ for the latest version at the following URL: ftp://ftp.mosis.edu/pub/sondeen/magic/new/beta/current.tar.gz
Magic is different from the other layout editors available. It is not just a colour-painting tool, it understands geometrical design rules, transistors, connectivity and routing. It is a very handy tool for easy bug fixing and experimentation with alternative designs to enhance the performance of a circuit.
One of its major features, which the other similar tools lack, is routing. Routing is the most tedious and error-prone task, but Magic has made it easy with its interactive routing tools. Another problem with the other tools is their inflexibility and difficulty to experiment with them.
But Magic’s built-in knowledge of design rules and interactive feature of continuous design-rule check with an in-built hierarchical circuit extractor makes this tool highly flexible and easy to use. Also, its plowing feature enables students to experiment and have better intuition on designing chips and fix bugs easily.
You can download the latest version of the tool and find the related tutorials on their website. If you are trying to learn about the system, you can start with the various tutorials available on the website. Also, there is a set of manuals for the system maintainers that can help in creating new technologies.
While running Magic, you can get help from the tool itself. Its help command will provide you the command’s syntax with a brief description of the command. For other queries and support, you can write to Magic authors at [email protected]
Download latest version of the software: click here
The author is a technical journalist at EFY