GNU Electric: un impresionante software de diseño VLSI de chips gratuito y de código abierto

GNU Electric

GNU Electric no es solo un software gratuito y libre más, es una poderosa suite de herramientas que permite a los usuarios diseñar esquemas, trazar diagramas de circuitos y, en última instancia, crear diseños de chips a nivel de transistor como lo hacen las compañías que diseñan sistemas VLSI.

Con su enfoque en la flexibilidad y la eficiencia, GNU Electric se ha convertido en una opción preferida para profesionales y entusiastas por igual. Además, encontrarás una buena documentación que te ayudará con su uso y también un buen set de bibliotecas para la fabricación del chip en distintos nodos, circuitos de prueba, etc.

¿Qué es Electric?

Electric es un sistema de diseño asistido por computadora para circuitos eléctricos, con un enfoque principal en el diseño de circuitos integrados. Sin embargo, también es capaz de manejar esquemas y lenguajes de descripción de hardware o HDL (Hardware Description Language) para diseño de chips VLSI (Very Large-Scale Integration). Es versátil y comprende diversas tecnologías, incluyendo MOS (nMOS y varias variantes de CMOS), bipolar y diseño híbrido. Además de estas tecnologías de diseño de IC, puede trabajar con muchas otras formas gráficas, como esquemas, arte, arquitecturas FPGA y más. Incluye un editor de tecnología incorporado que permite la modificación y creación de nuevos entornos de diseño.

Electric integra una variedad de herramientas para el análisis y síntesis de circuitos. El sistema incluye verificadores de reglas de diseño, simuladores, enrutadores y mucho más. Además, tiene un modelo elegante para la integración de herramientas, lo que facilita la adición de nuevas. Así mismo, cuenta con herramientas adicionales, como el simulador IRSIM de la Universidad de Stanford, y que se puede integrar perfectamente con Electric, como complemento para ALS.

Además de poder manejar tecnologías y herramientas arbitrarias, Electric tiene una potente interfaz que proporciona restricciones de diseño y portabilidad de plataforma. El sistema de restricciones permite que los componentes conectados permanezcan sensiblemente conectados, incluso cuando el diseño se modifica. La portabilidad de la plataforma significa que Electric puede ejecutarse en casi cualquier computadora (el código Java se ejecuta en cualquier lugar y el código C se compila en UNIX/LINUX, Windows y Macintosh). Y lo encontrarás disponible en varios idiomas, entre ellos el español.

Características de Electric

Electric es un sistema de diseño VLSI altamente flexible y potente que puede manejar muchos tipos de diseño de circuitos. Su interfaz de usuario sofisticada funciona en todas las estaciones de trabajo populares y proporciona lenguajes interpretativos para usuarios avanzados. Electric tiene muchas herramientas de análisis y síntesis, incluyendo la comprobación de reglas de diseño, simulación, comparación de redes, enrutamiento, compactación, compilación de silicio, generación de PLA y compensación.

El sistema de comprobación de reglas de diseño de Electric supervisa todos los cambios realizados en el diseño y muestra mensajes de error cuando se detectan violaciones. Electric también puede leer la salida de Assura o Calibre y mostrar los resultados. El comprobador de reglas eléctricas verifica todas las áreas de pozo y sustrato para obtener contactos y espaciamientos adecuados, y realiza una comprobación de reglas de antena para la validación de la fabricación.

Electric viene con un simulador de nivel de conmutación de 12 estados incorporado, llamado ALS. Electric puede producir mazos de entrada para una serie de simuladores populares. Los usuarios de Electric deben obtener estos simuladores por su cuenta.

El generador de PLA CMOS de Electric trabaja a partir de una biblioteca de elementos PLA, lo que permite matrices personalizadas. El generador de marcos de almohadillas coloca celdas de almohadillas alrededor de un núcleo de chip y las conecta entre sí. El generador de ROM produce un diseño a partir de un archivo de personalidad de ROM.

El compactador de Electric ajusta la geometría a su espaciado mínimo en los ejes X e Y. El esfuerzo lógico es un sistema para marcar las puertas esquemáticas digitales con información de fan-out que producirá circuitos óptimamente rápidos. Por otro lado, Electric tiene seis herramientas de colocación experimentales disponibles que utilizan el paralelismo para acelerar la tarea. El enrutador de laberinto de Electric ejecuta cables individuales entre puntos. El enrutador de costura de celdas hace conexiones explícitas donde las celdas se unen o se superponen. El enrutador de imitación observa la actividad del usuario y repite la actividad en situaciones similares en todo el circuito.

El sistema VHDL de Electric puede generar VHDL a partir de un diseño, y puede compilar VHDL a listas de redes de varios formatos. Estas listas de redes pueden ser simuladas con el simulador incorporado, convertidas en diseño con el compilador de silicio, o guardadas en disco para su uso por simuladores externos.

El Compilador de Silicio de Electric coloca y enruta celdas estándar a partir de una lista de redes estructurales, que se puede obtener a partir de VHDL, que a su vez se puede obtener a partir de un dibujo esquemático. Electric también cuenta con una herramienta de comprobación de consistencia de redes (LVS) que compara un diseño con su esquema equivalente. Puede comparar dos versiones diferentes de un diseño o dos versiones diferentes de un esquema. También está disponible una versión experimental de NCC, llamada Experimento de Intercambio de Puertos.

Y si lo quieres, también tendrás a tu disposición un sistema de gestión de proyectos incorporado (incluso un segundo sistema incorporado basado en CVS si lo prefieres) que permite a los usuarios compartir una biblioteca de circuitos. Los usuarios pueden extraer celdas para editarlas y devolverlas cuando hayan terminado. Se impide que otros usuarios cambien las celdas extraídas y pueden actualizar sus circuitos cuando se registren los cambios. Además, se impide que los usuarios realicen cambios en las celdas extraídas que afectarían a otras celdas que no están extraídas. También se emiten advertencias cuando varios usuarios extraen celdas que están relacionadas jerárquicamente, lo que puede causar interferencias en su edición.

En cuanto a las tecnologías soportadas, tenemos:

nMOS Transistor nMOS tradicional
CMOS Viene en varias versiones diferentes, como la genérica, la Round de Cal Tech, o las reglas MOSIS
Bipolar Lógica con transistores bipolares genérica
BiCMOS Bipolar+CMOS para circuitos híbridos
TFT Circuitos Thin-film
Filtros digitales Genérico
PCB Puede soportar hasta 8 capas para las placas de circuito impreso
Esquemas Crear circuitos esquemáticos con componentes analógicos y digitales
FPGA Diseño para FPGA personalizado
Artwork Elementos para diseño gráfico

Y en cuanto a las interfaces externas, la verdad es que Electric es altamente compatible con archivos de otros muchos EDA, por ejemplo:

Formato Entrada/Salida Descripción
CIF E/S Caltech Intermediate Format
GDS II E/S Formato de intercambio Calma GDS
EDIF E/S Electronic Design Interchange Format
SUE E Schematic User Environment (editor esquemático)
DXF E/S Formato mecánico nativo de AutoCAD
VHDL E/S HDL
Verilog S HDL
CDL S Cadence Description Language
EAGLE S Captura esquemática
PADS S Captura esquemática
ECAD S Captura esquemática
Applicon E Applicon/860 (antiguo formato CAD)
Bookshelf E Bookshelf (formato de intercambio de emplazamiento)
Gerber E/S Gerber Scientific (formato plotter)
HPGL S Lenguaje Plotting
PostScript S Lenguaje Plotting
SVG S Scalable Vector Graphics (imagen escalable para navegador)

Pero esto no es todo, también podrás disponer de complementos como estas bibliotecas:

  • Boise State: biblioteca para usar celdas estándar creadas por la universidad de la que llevan el nombre, y basadas en reglas MOSIS Submicron con 3 capas de interconexiones metálicas y capacidad para fabricar el chip en la foundry ON Semiconductor en proceso C5.
  • Harvey Mudd: celdas estándar y chips de Harvey Mudd College, con un diseño de 32-bit de microprocesador MIPS y sus celdas asociadas.
  • MOSIS CMOS: tienes tanto una biblioteca para tecnología de fabricación de 350 nm como para 180 nm para pads y celdas estándar respectivamente. Estas bibliotecas fueron desarrolladas por Sun Microsystems Laboratories y por el City Engineering College de Bangladés, guiados por Kanada Technologies.
  • Sun Microsystems Test Chip: se trata de un diseño de Sun con en torno a 1 millón de transistores que se usaba como modelo para medir las capacitancias estructurales del chip.
  • Cell library: otra biblioteca de celdas diseñadas por Hochschule Kempten y que fueron usadas en el Silicon Compiler de Electric.

Sencillamente impresionante…

GNU Electric: historia

El software de diseño VLSI, GNU Electric, ha tenido una larga historia hasta lo que hoy conocemos. Fue creado por Steven M. Rubin a principios de los años 80 y pronto se distribuyó a universidades e instituciones de investigación en todo el mundo. A mediados de los años 80, Applicon comercializó Electric bajo el nombre de “Bravo3VLSI”. Los primeros diseños de Electric se escribieron en lenguaje de programación C, y aún se pueden descargar desde la web oficial, aunque más tarde sería portado a Java desde la versión 8.0, aunque se mantiene la 7.0 basada en C si la quieres.

En 1988, se fundó Electric Editor Incorporated, que vendió el sistema de forma comercial. En 1998, la empresa liberó Electric a través de la Free Software Foundation (GNU). En 1999, el desarrollo de Electric se trasladó a Sun Microsystems.

En el año 2000, Steven Rubin creó Static Free Software, una empresa que gestiona la distribución gratuita de Electric. En 2003, se abandonó la versión “C” de Electric y se inició su traducción al lenguaje Java, que se completó en 2005. Aunque el código C todavía está disponible, ya no se desarrolla ni se soporta.

En 2004, Static Free Software se convirtió en una división de RuLabinsky Enterprises, Incorporated, una corporación que sigue dedicada al software libre. En 2010, Oracle adquirió Sun Microsystems y continuó apoyando el desarrollo de Electric hasta finales de 2016, de ahí que esté basado en Java.

En 2017, el desarrollo de Electric cesó, pero el soporte y las correcciones de errores continúan. El código ahora está disponible en la Free Software Foundation. Actualmente ya forma parte del repertorio habitual de paquetes del proyecto GNU.

Además, en la actualidad es utilizado por muchos aficionados particulares, e incluso por profesionales. Muchas universidades de todo el mundo han utilizado Electric para sus diseños de chips, y también algunas empresa conocidas, como Apple Computer, Intel, Harris Corporation, NEC Electronics, Rambus, Sun Microsystems (ahora Oracle), y muchas más. De hecho, entre las compañías que lo han utilizado está la famosa Transmeta Corporation, la compañía que desarrolló microprocesadores VLIW como los Crusoe y Efficeon, y donde el mismísimo Linus Torvalds trabajó recién llegado desde Finlandia a Silicon Valley para crear Code Morphing, un código que se ejecutaba en segundo plano para traducir las instrucciones x86 del software en VLIW y así hacer que estos chips fueran compatibles con el software cotidiano.

Cómo conseguir Electric gratis

Si te ha gustado, puedes descargarlo gratis desde aquí:


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.