Magic es una herramienta de diseño de integración a muy gran escala (VLSI) escrita originalmente por John Ousterhout y sus estudiantes graduados en UC Berkeley . El trabajo en el proyecto comenzó en febrero de 1983. Una versión primitiva estaba operativa en abril de 1983, [2] cuando Joan Pendleton, Shing Kong y otros diseñadores de chips de estudiantes graduados sufrieron muchas revisiones rápidas diseñadas para satisfacer sus necesidades en el diseño del chip de CPU SOAR. una continuación de Berkeley RISC .
Autor (es) original (es) | John K. Ousterhout, Gordon T. Hamachi, Robert N. Mayo, Walter S. Scott, George S. Taylor |
---|---|
Desarrollador (es) | Equipo de desarrollo de Magic |
Versión inicial | Abril de 1983 |
Lanzamiento estable | 8.3.153 / 7 de abril de 2021 |
Escrito en | C |
Sistema operativo | Linux |
Disponible en | inglés |
Tipo | Automatización de diseño electrónico |
Licencia | Licencia BSD [1] |
Sitio web | opencircuitdesign |
Temiendo que Ousterhout fuera a proponer otro nombre que comenzara con "C" para que coincidiera con sus proyectos anteriores Cm * , Caesar y Crystal , Gordon Hamachi propuso el nombre Magic porque le gustaba la idea de poder decir que la gente usaba magia para diseñar. papas fritas. El resto del equipo de desarrollo aceptó con entusiasmo esta propuesta después de que él ideó el backronym M anhattan A rtwork G enerator for I ntegrated C ircuits. Los desarrolladores de software de Magic se llamaban a sí mismos magos, mientras que los diseñadores de chips eran usuarios de Magic.
Como software gratuito y de código abierto , sujeto a los requisitos de la licencia BSD , Magic sigue siendo popular porque es fácil de usar y fácil de expandir para tareas especializadas.
Diferencias
La principal diferencia entre Magic y otras herramientas de diseño VLSI es su uso de geometría "cosida en esquinas", en la que todo el diseño se representa como una pila de planos, y cada plano consta completamente de "mosaicos" (rectángulos). Las baldosas deben cubrir todo el plano. Cada mosaico consta de una coordenada (X, Y) de su esquina inferior izquierda y enlaces a cuatro mosaicos: el vecino más a la derecha en la parte superior, el vecino más alto a la derecha, el vecino más abajo en la parte superior. a la izquierda, y el vecino más a la izquierda en la parte inferior. Con la adición del tipo de material representado por el mosaico, se especifica exactamente la geometría del diseño en el plano. La representación de la geometría cosida en las esquinas conduce al concepto de diseño como "pintura" para ser aplicada o borrada de un lienzo. Esto es considerablemente diferente de otras herramientas que utilizan el concepto de diseño como "objetos" para ser colocados y manipulados por separado unos de otros. Cada concepto tiene sus propias fortalezas y debilidades en términos de uso práctico y velocidad de cálculo. La representación cosida en las esquinas es particularmente adecuada para búsquedas dentro de un solo plano, por lo que sobresale en velocidad. No es particularmente adecuado para bases de datos extremadamente grandes: la necesidad de mantener cuatro punteros para cada mosaico, así como la necesidad de almacenar mosaicos que representen el espacio entre áreas de material en un diseño, lo hace más intensivo en memoria que el basado en objetos. representaciones.
Una extensión de la representación de la geometría cosida en las esquinas llamada método de "mosaico dividido", agregada en la versión 7.1, permite una representación real de la geometría que no es de Manhattan . Este método permite que cada baldosa de la base de datos especifique dos tipos de material, en cuyo caso se considera que la baldosa está dividida en dos por una línea diagonal de esquina a esquina, con un tipo de material en un lado de la diagonal y el otro tipo de material en la otro lado de la diagonal. Una bandera adicional especifica si la diagonal va desde la esquina superior izquierda a la inferior derecha, o la esquina superior derecha a la inferior izquierda. El método de mosaico dividido tiene la ventaja de que casi todas las reglas que se aplican a la geometría cosida en las esquinas se aplican, sin alteraciones, a los mosaicos divididos. Otra ventaja es que toda la geometría que no sea de Manhattan debe tener esquinas en la cuadrícula interna de la base de datos. Esto hace que sea imposible generar geometría fuera de la red dentro de un solo plano, un error de regla para la mayoría de los procesos de fabricación que es un problema común con las representaciones basadas en objetos.
Magic presenta verificación de reglas de diseño en tiempo real , algo que algunos paquetes de software de diseño VLSI comerciales costosos no incluyen. Magic implementa esto contando la distancia usando la distancia de Manhattan en lugar de la distancia euclidiana , que es mucho más rápida de calcular. Las versiones mágicas de 7.3 calculan correctamente la distancia euclidiana cuando se les da el drc euclidean on
comando. Las verificaciones de distancia euclidianas son una extensión trivial de las verificaciones de distancia de Manhattan y requieren muy pocos gastos generales. En un borde en línea recta, las distancias de Manhattan y euclidiana son las mismas. Solo en las esquinas las dos distancias divergen. Al comprobar las esquinas, solo es necesario realizar un seguimiento de la dirección de búsqueda desde el punto de la esquina. Cualquier geometría que se encuentre dentro del cuadrado que represente la distancia de Manhattan desde la esquina se somete a una verificación adicional para ver si la misma geometría se encuentra fuera del radio de un cuarto de círculo que representa la distancia euclidiana. Dado que esta verificación adicional se aplica solo a la geometría que infringe la regla de distancia de Manhattan, no se invoca con frecuencia, por lo que la sobrecarga computacional es muy pequeña.
Magic actualmente se ejecuta en Linux , aunque existen versiones para DOS , OS / 2 y otros sistemas operativos . Magic se utiliza con frecuencia junto con IRSIM [3] y otros programas de simulación .
Referencias
- Notas
- Ousterhout, John K .; Hamachi, Gordon T .; Mayo, Robert N .; Scott, Walter S .; Taylor, George S. (diciembre de 1983). "Una colección de artículos sobre magia" . Departamento de EECS Universidad de California Berkeley Informe técnico No. UCB / CSD-83-154 .
- Ousterhout, John K. (enero de 1984). "Costura de esquina: una técnica de estructuración de datos para herramientas de diseño VLSI" . Transacciones IEEE sobre diseño asistido por computadora . 3 (1): 87–100. doi : 10.1109 / TCAD.1984.1270061 . S2CID 25136284 .
- Ousterhout, John K .; Hamachi, Gordon T .; Mayo, Robert N .; Scott, Walter S .; Taylor, George S. (1984). "Magia: un sistema de diseño VLSI" . Conferencia de Automatización del Diseño . Piscataway, Nueva Jersey: IEEE Press (21): 152-159. doi : 10.1109 / DAC.1984.1585789 . ISBN 0-8186-0542-1. S2CID 6833511 .
- Taylor, George S .; Ousterhout, John K. (1984). "Comprobador de reglas de diseño incremental de Magic" . Conferencia de automatización del diseño (21): 160-165. doi : 10.1109 / DAC.1984.1585790 . ISBN 0-8186-0542-1. S2CID 13191340 .
- Scott, WS; Ousterhout, John K. (1984). "Arado: estiramiento y compactación interactivos en magia" . Conferencia de automatización del diseño (21): 166-172. doi : 10.1109 / DAC.1984.1585791 . ISBN 0-8186-0542-1. S2CID 6004870 .
- Hamachi, Gordon T .; Ousterhout, John K. (1984). "Un enrutador Switchbox con evitación de obstáculos" . Conferencia de automatización del diseño (21): 173-179. doi : 10.1109 / DAC.1984.1585792 . ISBN 0-8186-0542-1. S2CID 12525813 .
- Scott, Walter S .; Ousterhout, John K. (1985). "Extractor de circuitos de Magic" . Conferencia de Automatización del Diseño . 3 (22): 286-292. doi : 10.1109 / MDT.1986.294914 .
enlaces externos
- Herramienta de diseño Magic VLSI
- Magia , páginas de manual y tutorial
- Magia , versión antigua
- IRSIM
- Diseño VLSI de Full Adder de 16 bits utilizando el software Magic