stringtranslate.com

Magia (software)

Disposición VLSI de un circuito inversor utilizando el software Magic

Magic es una herramienta de diseño de automatización de diseño electrónico (EDA) para circuitos integrados (CI) de integración a muy gran escala ( VLSI ) escrita originalmente por John Ousterhout y sus estudiantes de posgrado 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 estudiantes de posgrado en diseño de chips sufrieron muchas revisiones rápidas ideadas para satisfacer sus necesidades en el diseño del chip de CPU SOAR, una continuación de Berkeley RISC .

Temiendo que Ousterhout propusiera 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 chips. El resto del equipo de desarrollo aceptó con entusiasmo esta propuesta después de que él ideara el acrónimo Manhattan Artwork Generator for Integrated Circuits . Los desarrolladores de software Magic se llamaban a sí mismos magos, mientras que los diseñadores de chips eran usuarios de Magic .

Como software libre y de código abierto , sujeto a los requisitos de la licencia BSD , Magic continúa 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 el uso de la geometría "cosida en las esquinas", en la que todo el diseño se representa como una pila de planos, y cada plano consta enteramente de "mosaicos" (rectángulos). Los mosaicos deben cubrir todo el plano. Cada mosaico consta de una coordenada (X, Y) de su esquina inferior izquierda, y se vincula a cuatro mosaicos: el vecino más a la derecha en la parte superior, el vecino más arriba en la derecha, el vecino más abajo en 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, la geometría del diseño en el plano se especifica exactamente. La representación de la geometría cosida en las esquinas conduce al concepto de diseño como "pintura" que se aplica o se borra de un lienzo. Esto es considerablemente diferente de otras herramientas que utilizan el concepto de diseño como "objetos" que se colocan y manipulan 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 con puntos de esquina es especialmente adecuada para búsquedas dentro de un único plano, para lo que destaca por su velocidad. No es especialmente adecuada para bases de datos extremadamente grandes: la necesidad de mantener cuatro punteros para cada mosaico, así como la necesidad de almacenar mosaicos que representan el espacio entre áreas de material en un diseño, hace que consuma más memoria que las representaciones basadas en objetos.

Una extensión de la representación de geometría cosida en las esquinas llamada el método de "mosaico dividido", añadido en la versión 7.1, permite la representación verdadera de geometría no Manhattan . Este método permite que cada mosaico en la base de datos especifique dos tipos de materiales, en cuyo caso el mosaico se considera como bisecado 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 el otro lado de la diagonal. Un indicador adicional especifica si la diagonal va desde la esquina superior izquierda a la inferior derecha, o desde 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 modificaciones, a los mosaicos divididos. Una ventaja adicional es que toda la geometría no Manhattan debe tener esquinas que se encuentren en la cuadrícula interna de la base de datos. Esto hace imposible generar geometría que esté fuera de la cuadrícula 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.

Comprobación de reglas de diseño

Magic incluye una comprobación de reglas de diseño en tiempo real , algo que no ofrecen algunos paquetes de software de diseño VLSI comerciales costosos. Magic implementa esto contando la distancia utilizando la distancia de Manhattan en lugar de la distancia euclidiana , que es mucho más rápida de calcular. Las versiones de Magic a partir de la versión 7.3 calculan correctamente la distancia euclidiana cuando se les da el drc euclidean oncomando. Las comprobaciones de la distancia euclidiana son una extensión trivial de las comprobaciones de la distancia de Manhattan y requieren muy poca sobrecarga. En un borde de 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 representa la distancia de Manhattan desde la esquina se somete a una comprobación adicional para ver si la misma geometría se encuentra fuera del radio del cuarto de círculo que representa la distancia euclidiana. Dado que esta comprobación adicional se aplica solo a la geometría que se encuentra en violación de la regla de la distancia de Manhattan, no se invoca con frecuencia, por lo que la sobrecarga computacional es muy pequeña.

Magic actualmente funciona en Linux , aunque existen versiones para DOS , OS/2 y otros sistemas operativos . Magic se utiliza frecuentemente junto con IRSIM [3] y otros programas de simulación .

Internos

Utiliza Tcl/Tk en segundo plano. [4]

Formatos de archivos

Importación y exportación

Véase también

Referencias

  1. ^ http://opencircuitdesign.com/magic/archive/papers/copyright.pdf [ URL básica PDF ]
  2. ^ Una colección de artículos sobre magia.
  3. ^ Simulador de nivel de conmutación IRSIM
  4. ^ "Desarrollo mágico". opencircuitdesign.com . Consultado el 27 de abril de 2022 .
Notas

Enlaces externos