head 1.7; access; symbols pkgsrc-2026Q1:1.7.0.114 pkgsrc-2026Q1-base:1.7 pkgsrc-2025Q4:1.7.0.112 pkgsrc-2025Q4-base:1.7 pkgsrc-2025Q3:1.7.0.110 pkgsrc-2025Q3-base:1.7 pkgsrc-2025Q2:1.7.0.108 pkgsrc-2025Q2-base:1.7 pkgsrc-2025Q1:1.7.0.106 pkgsrc-2025Q1-base:1.7 pkgsrc-2024Q4:1.7.0.104 pkgsrc-2024Q4-base:1.7 pkgsrc-2024Q3:1.7.0.102 pkgsrc-2024Q3-base:1.7 pkgsrc-2024Q2:1.7.0.100 pkgsrc-2024Q2-base:1.7 pkgsrc-2024Q1:1.7.0.98 pkgsrc-2024Q1-base:1.7 pkgsrc-2023Q4:1.7.0.96 pkgsrc-2023Q4-base:1.7 pkgsrc-2023Q3:1.7.0.94 pkgsrc-2023Q3-base:1.7 pkgsrc-2023Q2:1.7.0.92 pkgsrc-2023Q2-base:1.7 pkgsrc-2023Q1:1.7.0.90 pkgsrc-2023Q1-base:1.7 pkgsrc-2022Q4:1.7.0.88 pkgsrc-2022Q4-base:1.7 pkgsrc-2022Q3:1.7.0.86 pkgsrc-2022Q3-base:1.7 pkgsrc-2022Q2:1.7.0.84 pkgsrc-2022Q2-base:1.7 pkgsrc-2022Q1:1.7.0.82 pkgsrc-2022Q1-base:1.7 pkgsrc-2021Q4:1.7.0.80 pkgsrc-2021Q4-base:1.7 pkgsrc-2021Q3:1.7.0.78 pkgsrc-2021Q3-base:1.7 pkgsrc-2021Q2:1.7.0.76 pkgsrc-2021Q2-base:1.7 pkgsrc-2021Q1:1.7.0.74 pkgsrc-2021Q1-base:1.7 pkgsrc-2020Q4:1.7.0.72 pkgsrc-2020Q4-base:1.7 pkgsrc-2020Q3:1.7.0.70 pkgsrc-2020Q3-base:1.7 pkgsrc-2020Q2:1.7.0.66 pkgsrc-2020Q2-base:1.7 pkgsrc-2020Q1:1.7.0.46 pkgsrc-2020Q1-base:1.7 pkgsrc-2019Q4:1.7.0.68 pkgsrc-2019Q4-base:1.7 pkgsrc-2019Q3:1.7.0.64 pkgsrc-2019Q3-base:1.7 pkgsrc-2019Q2:1.7.0.62 pkgsrc-2019Q2-base:1.7 pkgsrc-2019Q1:1.7.0.60 pkgsrc-2019Q1-base:1.7 pkgsrc-2018Q4:1.7.0.58 pkgsrc-2018Q4-base:1.7 pkgsrc-2018Q3:1.7.0.56 pkgsrc-2018Q3-base:1.7 pkgsrc-2018Q2:1.7.0.54 pkgsrc-2018Q2-base:1.7 pkgsrc-2018Q1:1.7.0.52 pkgsrc-2018Q1-base:1.7 pkgsrc-2017Q4:1.7.0.50 pkgsrc-2017Q4-base:1.7 pkgsrc-2017Q3:1.7.0.48 pkgsrc-2017Q3-base:1.7 pkgsrc-2017Q2:1.7.0.44 pkgsrc-2017Q2-base:1.7 pkgsrc-2017Q1:1.7.0.42 pkgsrc-2017Q1-base:1.7 pkgsrc-2016Q4:1.7.0.40 pkgsrc-2016Q4-base:1.7 pkgsrc-2016Q3:1.7.0.38 pkgsrc-2016Q3-base:1.7 pkgsrc-2016Q2:1.7.0.36 pkgsrc-2016Q2-base:1.7 pkgsrc-2016Q1:1.7.0.34 pkgsrc-2016Q1-base:1.7 pkgsrc-2015Q4:1.7.0.32 pkgsrc-2015Q4-base:1.7 pkgsrc-2015Q3:1.7.0.30 pkgsrc-2015Q3-base:1.7 pkgsrc-2015Q2:1.7.0.28 pkgsrc-2015Q2-base:1.7 pkgsrc-2015Q1:1.7.0.26 pkgsrc-2015Q1-base:1.7 pkgsrc-2014Q4:1.7.0.24 pkgsrc-2014Q4-base:1.7 pkgsrc-2014Q3:1.7.0.22 pkgsrc-2014Q3-base:1.7 pkgsrc-2014Q2:1.7.0.20 pkgsrc-2014Q2-base:1.7 pkgsrc-2014Q1:1.7.0.18 pkgsrc-2014Q1-base:1.7 pkgsrc-2013Q4:1.7.0.16 pkgsrc-2013Q4-base:1.7 pkgsrc-2013Q3:1.7.0.14 pkgsrc-2013Q3-base:1.7 pkgsrc-2013Q2:1.7.0.12 pkgsrc-2013Q2-base:1.7 pkgsrc-2013Q1:1.7.0.10 pkgsrc-2013Q1-base:1.7 pkgsrc-2012Q4:1.7.0.8 pkgsrc-2012Q4-base:1.7 pkgsrc-2012Q3:1.7.0.6 pkgsrc-2012Q3-base:1.7 pkgsrc-2012Q2:1.7.0.4 pkgsrc-2012Q2-base:1.7 pkgsrc-2012Q1:1.7.0.2 pkgsrc-2012Q1-base:1.7 pkgsrc-2011Q4:1.6.0.10 pkgsrc-2011Q4-base:1.6 pkgsrc-2011Q3:1.6.0.8 pkgsrc-2011Q3-base:1.6 pkgsrc-2011Q2:1.6.0.6 pkgsrc-2011Q2-base:1.6 pkgsrc-2011Q1:1.6.0.4 pkgsrc-2011Q1-base:1.6 pkgsrc-2010Q4:1.6.0.2 pkgsrc-2010Q4-base:1.6 pkgsrc-2010Q3:1.5.0.6 pkgsrc-2010Q3-base:1.5 pkgsrc-2010Q2:1.5.0.4 pkgsrc-2010Q2-base:1.5 pkgsrc-2010Q1:1.5.0.2 pkgsrc-2010Q1-base:1.5 pkgsrc-2009Q4:1.4.0.36 pkgsrc-2009Q4-base:1.4 pkgsrc-2009Q3:1.4.0.34 pkgsrc-2009Q3-base:1.4 pkgsrc-2009Q2:1.4.0.32 pkgsrc-2009Q2-base:1.4 pkgsrc-2009Q1:1.4.0.30 pkgsrc-2009Q1-base:1.4 pkgsrc-2008Q4:1.4.0.28 pkgsrc-2008Q4-base:1.4 pkgsrc-2008Q3:1.4.0.26 pkgsrc-2008Q3-base:1.4 cube-native-xorg:1.4.0.24 cube-native-xorg-base:1.4 pkgsrc-2008Q2:1.4.0.22 pkgsrc-2008Q2-base:1.4 cwrapper:1.4.0.20 pkgsrc-2008Q1:1.4.0.18 pkgsrc-2008Q1-base:1.4 pkgsrc-2007Q4:1.4.0.16 pkgsrc-2007Q4-base:1.4 pkgsrc-2007Q3:1.4.0.14 pkgsrc-2007Q3-base:1.4 pkgsrc-2007Q2:1.4.0.12 pkgsrc-2007Q2-base:1.4 pkgsrc-2007Q1:1.4.0.10 pkgsrc-2007Q1-base:1.4 pkgsrc-2006Q4:1.4.0.8 pkgsrc-2006Q4-base:1.4 pkgsrc-2006Q3:1.4.0.6 pkgsrc-2006Q3-base:1.4 pkgsrc-2006Q2:1.4.0.4 pkgsrc-2006Q2-base:1.4 pkgsrc-2006Q1:1.4.0.2 pkgsrc-2006Q1-base:1.4 pkgsrc-2005Q4:1.3.0.4 pkgsrc-2005Q4-base:1.3 pkgsrc-2005Q3:1.3.0.2 pkgsrc-2005Q3-base:1.3 pkgsrc-2005Q2:1.2.0.12 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.10 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.2.0.8 pkgsrc-2004Q4-base:1.2 pkgsrc-2004Q3:1.2.0.6 pkgsrc-2004Q3-base:1.2 pkgsrc-2004Q2:1.2.0.4 pkgsrc-2004Q2-base:1.2 pkgsrc-2004Q1:1.2.0.2 pkgsrc-2004Q1-base:1.2 pkgsrc-2003Q4:1.1.1.1.0.10 pkgsrc-2003Q4-base:1.1.1.1 netbsd-1-6-1:1.1.1.1.0.6 netbsd-1-6-1-base:1.1.1.1 netbsd-1-6:1.1.1.1.0.8 netbsd-1-6-RELEASE-base:1.1.1.1 pkgviews:1.1.1.1.0.4 pkgviews-base:1.1.1.1 buildlink2:1.1.1.1.0.2 buildlink2-base:1.1.1.1 netbsd-1-5-PATCH003:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.7 date 2012.02.28.16.14.45; author hans; state Exp; branches; next 1.6; 1.6 date 2010.12.23.07.47.19; author obache; state Exp; branches; next 1.5; 1.5 date 2010.03.03.03.40.00; author dmcmahill; state Exp; branches; next 1.4; 1.4 date 2006.01.06.18.14.06; author joerg; state Exp; branches; next 1.3; 1.3 date 2005.09.22.15.28.35; author minskim; state Exp; branches; next 1.2; 1.2 date 2004.01.23.11.43.33; author agc; state Exp; branches; next 1.1; 1.1 date 2002.04.06.21.37.29; author dmcmahill; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2002.04.06.21.37.29; author dmcmahill; state Exp; branches; next ; desc @@ 1.7 log @Fix build on SunOS. Define endianess in Makefile, make sure it finds the tcl libraries. @ text @$NetBSD: patch-aa,v 1.6 2010/12/23 07:47:19 obache Exp $ --- scripts/configure.in.orig 2009-12-30 13:45:48.000000000 +0000 +++ scripts/configure.in @@@@ -641,9 +641,10 @@@@ if test $usingTcl ; then fi fi +# FIXME -- why are we not using TCL_LIB_FILE FROM tclConfig.sh? if test $usingTcl ; then case $target in - *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|OpenBSD-*) + *-sunos4*|*-*-solaris2*|*-*-netbsd*|*-*-dragonfly|NetBSD-*|FreeBSD-*|OpenBSD-*) TCL_LIB_NAME="tcl${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}" TK_LIB_NAME="tk${TK_MAJOR_VERSION}${TK_MINOR_VERSION}" ;; @@@@ -653,7 +654,7 @@@@ if test $usingTcl ; then ;; esac - loclib=`echo ${TCL_LIB_SPEC} | cut -d ' ' -f 1 | sed -e 's/-L//'` + loclib=`echo ${TCL_LIB_SPEC} | sed -e 's/.*-L//' -e 's/ .*//'` TCL_LIB_SPEC="-l${TCL_LIB_NAME}" TK_LIB_SPEC="-l${TK_LIB_NAME}" @@@@ -910,7 +911,7 @@@@ AC_ARG_ENABLE(readline, use_system_readline=no) AC_CHECK_LIB(readline, rl_attempted_completion_over,, use_system_readline=no) - if test $use_system_readline == yes ; then + if test $use_system_readline = yes ; then AC_DEFINE(HAVE_READLINE) rl_libs="-lreadline" else @@@@ -1389,8 +1390,8 @@@@ if test $usingTcl ; then # Not available on all versions: check for include file. AC_CHECK_HEADER(dlfcn.h, test_ok=yes, test_ok=no) if test "$test_ok" = yes; then - SHLIB_CFLAGS="-fpic" - LDDL_FLAGS="-Bshareable -x ${LIB_SPEC}" + SHLIB_CFLAGS="-fPIC" + LDDL_FLAGS="-shared ${LIB_SPEC}" fi ;; @@@@ -1614,7 +1615,7 @@@@ if test $usingTcl ; then EOF usingBLT=`cat temp.out` rm -f temp.out - if test "x${usingBLT}" == "xyes" ; then + if test "x${usingBLT}" = "xyes" ; then echo "yes" else echo "no" @ 1.6 log @fixed tcl library detection for DragonFly. @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.5 2010/03/03 03:40:00 dmcmahill Exp $ d13 1 a13 1 + *-sunos4*|*-*-netbsd*|*-*-dragonfly|NetBSD-*|FreeBSD-*|OpenBSD-*) @ 1.5 log @Update to magic-7.5.188. There have been many changes since this package was last updated. Besides the upstream changes listed below, also add DESTDIR support (which is enabled by better upstream support for it). 4. Version 7.5 Release Notes: --------------------------------- 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: 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. Item #1 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) Create tile-based DRC functions that work like cifoutput: perform tile operations, for which the resulting plane, instead of being output as a file like CIF or GDS, simply becomes an error result plane. This will become an extra built-in plane. Try to keep the plane numbers down by removing the built-in routing planes when they are not used. Basically, this means that the top of the DRC section defines a set of "templayer" blocks just like "cifinput" and "cifoutput" (but at the same scaling as the layout (thus the main reason for item #1 above)), where the templayer types can be used in the DRC section. 3) Add "cifoutput" operators as needed to form a complete DRC. Add DRC rule types as needed to form a complete DRC (for example, it needs a "copy" function that declares that the templayer itself represents the error condition). 4. Version 7.4 Release Notes: --------------------------------- 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. 5. Version 7.3 Release Notes: --------------------------------- 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 6. Version 7.2 Release Notes: --------------------------------- 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. @ text @d1 1 a1 1 $NetBSD$ d13 1 a13 1 + *-sunos4*|*-*-netbsd*|NetBSD-*|FreeBSD-*|OpenBSD-*) @ 1.4 log @Fix errno. Fix implicit prototype mismatches. Add DragnFly support. On DragonFly, just fetch using the macros, e.g. using the slow path. Use pkgsrc readline instead of local version. Bump revision. @ text @d3 5 a7 8 --- misc/magic.h.orig 2001-09-21 15:15:45.000000000 +0000 +++ misc/magic.h @@@@ -99,7 +99,7 @@@@ extern char *SysLibPath; /* Path for fin : FALSE) #else #define ASSERT(p, where) (FALSE) -#endif PARANOID +#endif /* PARANOID */ d9 11 d21 2 a22 4 /* ------------------------ Malloc/free ------------------------------- */ @@@@ -146,71 +146,6 @@@@ extern char AbortMessage[]; * */ d24 21 a44 65 -#ifdef i386 -#define IS_LITTLE_ENDIAN /* Intel x86 processors. */ -#endif - -#ifdef linux -#define IS_LITTLE_ENDIAN /* Intel x86 processors running Linux >=.99p7. */ -#endif - -#ifdef vax -#define IS_LITTLE_ENDIAN /* The good 'ol VAX. */ -#endif - -#ifdef MIPSEL -#define IS_LITTLE_ENDIAN /* MIPS processors in little-endian mode. */ -#endif - -#ifdef wrltitan -#define IS_LITTLE_ENDIAN /* A DEC-WRL titan research machine (only 20 exist). */ - /* NOT intended for the Ardent titan machine. */ -#endif - -#ifdef MIPSEB -#define IS_BIG_ENDIAN /* MIPS processors in big-endian mode. */ -#endif - -#ifdef mc68000 -#define IS_BIG_ENDIAN /* All 68xxx machines, such as Sun2's and Sun3's. */ -#endif - -#ifdef macII -#define IS_BIG_ENDIAN /* Apple MacII (also a 68000, but being safe here.) */ -#endif - -#ifdef sparc -#define IS_BIG_ENDIAN /* All SPARC-based machines. */ -#endif - -#ifdef ibm032 -#define IS_BIG_ENDIAN /* IBM PC-RT and related machines. */ -#endif - -#ifdef hp9000s300 -#define IS_BIG_ENDIAN /* HP 9000 machine. */ -#endif - -#ifdef hp9000s800 -#define IS_BIG_ENDIAN /* HP 9000 machine. */ -#endif - -#ifdef hp9000s820 -#define IS_BIG_ENDIAN /* HP 9000 machine. */ -#endif - -#ifdef ALPHA -#define IS_LITTLE_ENDIAN /* Digital Alpha AXP */ -#endif - -/* Well, how'd we do? */ - -#if !defined(IS_BIG_ENDIAN) && !defined(IS_LITTLE_ENDIAN) - You_need_to_define_IS_LITTLE_ENDIAN_or_IS_BIG_ENDIAN_for_your_machine. -#endif -#if defined(IS_BIG_ENDIAN) && defined(IS_LITTLE_ENDIAN) - You_should_not_define_both_IS_LITTLE_ENDIAN_and_IS_BIG_ENDIAN. -#endif d46 9 a54 11 /* ------- Configuration: Handle Missing Routines/Definitions ------- */ @@@@ -285,7 +220,7 @@@@ extern char AbortMessage[]; #include #define sys_errlist _sys_errlist #define sys_nerr _sys_nerr -#elif !defined(__FreeBSD__) && !defined(__NetBSD__) +#elif !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__) extern int errno; /* extern char *sys_errlist[]; */ extern int sys_nerr; @ 1.3 log @Use endian.mk to build on more platforms. @ text @d3 1 a3 1 --- misc/magic.h.orig 2001-09-21 08:15:45.000000000 -0700 d86 9 @ 1.2 log @Use stdarg rather than varargs. This code is old - it's been ages since I've seen definitions for sunview and X10... @ text @d1 1 a1 1 $NetBSD: patch-aa,v 1.1.1.1 2002/04/06 21:37:29 dmcmahill Exp $ d3 3 a5 3 --- misc/magic.h.orig Fri Sep 21 11:15:45 2001 +++ misc/magic.h Wed Mar 13 12:37:46 2002 @@@@ -99,7 +99,7 @@@@ d14 1 a14 1 @@@@ -146,71 +146,13 @@@@ d73 2 a74 7 +#include +#if BYTE_ORDER==BIG_ENDIAN +#define IS_BIG_ENDIAN +#else +#define IS_LITTLE_ENDIAN #endif @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD$ d5 11 a15 1 @@@@ -147,69 +147,11 @@@@ d20 2 a21 7 +#include +#if BYTE_ORDER==BIG_ENDIAN +#define IS_BIG_ENDIAN +#else +#define IS_LITTLE_ENDIAN #endif d73 7 a79 2 -#endif - d90 1 @ 1.1.1.1 log @import of magic-7.1 Magic is an interactive system for creating and modifying VLSI circuit layouts. With Magic, you use a color graphics display and a mouse or graphics tablet to design basic cells and to combine them hierarchically into large structures. Magic is different from other layout editors you may have used. The most important difference is that Magic is more than just a color painting tool: it understands quite a bit about the nature of circuits and uses this information to provide you with additional operations. For example, Magic has built-in knowledge of layout rules; as you are editing, it continuously checks for rule violations. Magic also knows about connectivity and transistors, and contains a built-in hierarchical circuit extractor. Magic also has a plow operation that you can use to stretch or compact cells. Lastly, Magic has routing tools that you can use to make the global interconnections in your circuits. Magic is based on the Mead-Conway style of design. This means that it uses simplified design rules and circuit structures. The simplifications make it easier for you to design circuits and permit Magic to provide powerful assistance that would not be possible otherwise. However, they result in slightly less dense circuits than you could get with more complex rules and structures. For example, Magic permits only Manhattan designs (those whose edges are vertical or horizontal). @ text @@