EDIF ( Electronic Design Interchange Format ) es un formato independiente del proveedor basado en S-Expressions en el que se almacenan esquemas y listas de redes electrónicas . Fue uno de los primeros intentos de establecer un formato de intercambio de datos neutral para la industria de la automatización del diseño electrónico (EDA). El objetivo era establecer un formato común del que pudieran derivarse los formatos propietarios de los sistemas EDA. Cuando los clientes necesitaban transferir datos de un sistema a otro, era necesario escribir traductores de un formato a otro. A medida que se multiplicó el número de formatos ( N ), el problema del traductor se convirtió en un N-problema al cuadrado. La expectativa era que con EDIF el número de traductores podría reducirse al número de sistemas involucrados.
Los representantes de las empresas EDA Daisy Systems , Mentor Graphics , Motorola , National Semiconductor , Tektronix , Texas Instruments y la Universidad de California, Berkeley establecieron el Comité Directivo de EDIF en noviembre de 1983. Más tarde, Hilary Kahn , profesora de informática en la Universidad de Manchester , se unió al equipo y lideró el desarrollo desde la versión EDIF 2 0 0 hasta la versión final 4 0 0.
Sintaxis
El formato general de EDIF implica el uso de paréntesis para delimitar las definiciones de datos, y de esta manera se parece superficialmente a Lisp . Los tokens básicos de EDIF 2.0.0 eran palabras clave (como biblioteca , celda , instancia , etc.), cadenas (delimitadas con comillas dobles), números enteros, constantes simbólicas (por ejemplo , GENERIC , TIE , RIPPER para tipos de celda) e "Identificadores". , que son etiquetas de referencia formadas por un conjunto de caracteres muy restringido. EDIF 3.0.0 y 4.0.0 eliminaron las constantes simbólicas por completo, utilizando palabras clave en su lugar. Entonces, la sintaxis de EDIF tiene una base bastante simple. Un archivo EDIF típico se ve así:
( Edif FIBEX ( edifVersion 2 0 0 ) ( edifLevel 0 ) ( keywordMap ( keywordLevel 0 )) ( estado ( por escrito ( timeStamp 1995 1 1 1 1 1 ) ( programa de "XXX" ( versión "v1" )))) ( biblioteca xxx ( edifLevel 0 ) ( tecnología ( numberDefinition ( escala 1 ( e 1 -6 ) ( unidad de distancia )))) ( célula dff_4 ( celltype genérico ) ( vista view1 ( ViewType lista de conexiones ) ( interfaz ( puerto aset ( dirección ENTRADA )) ( puerto clok ( dirección ENTRADA )) ... ( célula yyy ( celltype genérico ) ( vista schematic_ ( ViewType lista de conexiones ) ( interfaz ( puerto BORRAR ( dirección ENTRADA )) ( puerto RELOJ ( dirección ENTRADA )) ... ) ( contenido ( ejemplo I_36_1 ( viewRef view1 ( cellRef dff_4 ))) ( instancia ( renombrar I_36_3 "I $ 3" ) ( viewRef view1 ( cellRef addedub_4 ))) ... ( net CLEAR ( unido ( portRef CLEAR ) ( portRef aset ( instanceRef I_36_1 )) ( portRef aset ( instanceRef I_36_3 )))) ...
Versiones
La versión 10 0 de EDIF se realizó en 1985.
EDIF 2 0 0
El primer lanzamiento público "real" de EDIF fue la versión 2 0 0, que fue aprobada en marzo de 1988 como estándar ANSI / EIA-548-1988. Se publica en un solo volumen. Esta versión no tiene una declaración de alcance formal , pero lo que intenta capturar está cubierto por los viewType s definidos :
- COMPORTAMIENTO para describir el comportamiento de una célula.
- DOCUMENTO para describir la documentación de una celda
- GRÁFICO para describir una representación de texto y gráficos tontos de información visualizable o imprimible
- MODELO LÓGICO para describir el modelo de simulación lógica de la celda
- MASKLAYOUT para describir un diseño de circuito integrado
- NETLIST para describir una netlist
- PCBLAYOUT para describir una placa de circuito impreso
- ESQUEMA para describir la representación esquemática y la conectividad de una celda.
- EXTRAÑO para describir una representación aún desconocida de una célula
- SIMBÓLICO para describir un diseño simbólico
La industria probó esta versión durante varios años, pero finalmente solo la vista NETLIST fue la más utilizada y algunas herramientas de EDA todavía la admiten hoy para EDIF 2 0 0.
Para superar los problemas con el estándar principal 2 0 0, se publicaron varios documentos adicionales:
- Asociación de Industrias Electrónicas
- Serie de monografías de EDIF, Volumen 1, Introducción a EDIF , EIA / EDIF-1, septiembre de 1988
- Serie de monografías EDIF, volumen 2, conectividad EDIF , EIA / EDIF-2, junio de 1989
- Usando EDIF 2 0 0 para transferencia esquemática , EIA / EDIF / AG-1, julio de 1989
- Documentación de Hilary J. Kahn, Departamento de Ciencias de la Computación, Universidad de Manchester
- EDIF 2 0 0, An Introductory Tutorial ", septiembre de 1989
- Preguntas y respuestas de EDIF, volumen uno , noviembre de 1988
- Preguntas y respuestas de EDIF, volumen dos , febrero de 1989
- Preguntas y respuestas de EDIF, volumen tres , julio de 1989
- Preguntas y respuestas de EDIF, volumen cuatro , noviembre de 1989
- Preguntas y respuestas de EDIF, volumen cinco , junio de 1991
EDIF 3 0 0
Debido a algunas deficiencias fundamentales en la liberación 2 0 0 no una nueva versión compatible 3 0 0 fue lanzado en septiembre de 1993, dada la designación de EIA estándar EIA-618. Posteriormente logró las designaciones ANSI e ISO . Se publica en 4 volúmenes. El enfoque principal de esta versión fueron viewTypes NETLIST y SCHEMATIC de 2 0 0. MASKLAYOUT, PCBLAYOUT y algunas otras vistas se eliminaron de esta versión y se cambiaron para versiones posteriores porque el trabajo para estas vistas no se completó por completo.
EDIF 3 0 0 está disponible en la Comisión Electrotécnica Internacional como IEC 61690-1
EDIF 4 0 0
EDIF 4 0 0 fue lanzado a finales de agosto de 1996, principalmente para agregar extensiones de "Placa de circuito impreso" (la vista original PCBLAYOUT) a EDIF 3 0 0. Esto duplicó el tamaño de EDIF 3 0 0 y se publica en formato HTML. en CD.
EDIF 4 0 0 está disponible en la Comisión Electrotécnica Internacional como IEC 61690-2
Evolución
Problemas con 2 0 0
Para comprender los problemas que los usuarios y proveedores encuentran con EDIF 2 0 0, primero hay que imaginar todos los elementos y la dinámica de la industria electrónica. Las personas que necesitaban este estándar eran principalmente ingenieros de diseño, que trabajaban para empresas cuyo tamaño iba desde el garaje de una casa hasta instalaciones multimillonarias con miles de ingenieros. Estos ingenieros trabajaron principalmente a partir de esquemas y listas de redes a fines de la década de 1980, y el gran impulso fue generar las listas de redes a partir de los esquemas automáticamente. Los primeros proveedores fueron proveedores de automatización de diseño electrónico (por ejemplo, Daisy, Mentor y Valid formaron el primer grupo predominante). Estas empresas compitieron vigorosamente por sus cuotas de este mercado.
Una de las tácticas utilizadas por estas empresas para "capturar" a sus clientes fueron sus bases de datos patentadas. Cada uno tenía características especiales que los demás no tenían. Una vez que se tomó la decisión de usar el software de un proveedor en particular para ingresar un diseño, el cliente se vio obligado a no usar ningún otro software. Pasar de los sistemas del proveedor A a los del proveedor B generalmente significaba un reingreso muy costoso de casi todos los datos de diseño a mano en el nuevo sistema. Este gasto de "migración" fue el factor principal que obligó a los ingenieros de diseño a utilizar un solo proveedor.
Pero los "clientes" tenían un deseo diferente. Vieron inmediatamente que mientras que el proveedor A podría tener un entorno de simulación analógica realmente agradable, el proveedor B tenía un enrutador automático de diseño de silicio o PCB mucho mejor. Y deseaban poder elegir entre los diferentes proveedores.
EDIF fue apoyado principalmente por los usuarios finales del diseño electrónico y sus empresas. Los proveedores de EDA también participaron, pero su motivación fue más en la línea de querer no alienar a sus clientes. La mayoría de los proveedores de EDA produjeron traductores de EDIF 2 0 0, pero definitivamente estaban más interesados en generar lectores de EDIF de alta calidad y no tenían absolutamente ninguna motivación para escribir ningún software que generara EDIF (un editor de EDIF), más allá de las amenazas de clientes de migración masiva al software de otro proveedor.
El resultado fue bastante interesante. Casi ningún proveedor de software escribió una salida EDIF 2 0 0 que no tuviera graves violaciones de sintaxis o semántica. La semántica era lo suficientemente flexible como para que hubiera varias formas de describir los mismos datos. Esto comenzó a conocerse como "sabores" de EDIF. Las empresas proveedoras no siempre consideraron importante asignar muchos recursos a los productos EDIF, incluso si vendían una gran cantidad de ellos. Hubo varias historias de productos activos sin prácticamente nadie que los mantuviera durante años. Las quejas de los usuarios simplemente se recopilaron y priorizaron. Cuanto más difícil resultaba exportar los datos de los clientes a EDIF, más parecía gustarles a los proveedores. Aquellos que escribieron traductores de EDIF descubrieron que dedicaron una gran cantidad de tiempo y esfuerzo a generar lectores suficientemente poderosos, indulgentes y artificialmente inteligentes, que pudieran manejar y reconstruir el código de baja calidad producido por los escritores existentes de EDIF 2 0 0 de la época. .
Al diseñar EDIF 3 0 0, los comités eran muy conscientes de las fallas del lenguaje, la calumnia acumulada sobre EDIF 2 0 0 por parte de los proveedores y la frustración de los usuarios finales. Entonces, para ajustar la semántica del lenguaje y proporcionar una descripción más formal del estándar, se adoptó el enfoque revolucionario para proporcionar un modelo de información para EDIF, en el lenguaje de modelado de información EXPRESS . Esto ayudó a documentar mejor el estándar, pero se hizo más como una ocurrencia tardía, ya que la elaboración de sintaxis se realizó independientemente del modelo, en lugar de generarse a partir del modelo. Además, aunque el estándar dice que si la sintaxis y el modelo no concuerdan, el modelo es el estándar, este no es el caso en la práctica. La descripción BNF de la sintaxis es la base del lenguaje en la medida en que el software que realiza el trabajo diario de producir descripciones de diseño se basa en una sintaxis fija. El modelo de información también adolecía del hecho de que no era (y no es) idealmente adecuado para describir EDIF. No describe muy bien conceptos tales como espacios de nombres, y las diferencias entre una definición y una referencia tampoco se pueden describir con claridad. Además, las construcciones en EXPRESS para describir restricciones pueden ser formales, pero la descripción de restricciones a veces es un asunto bastante complicado. Entonces, la mayoría de las restricciones terminaron siendo descritas como comentarios. La mayoría de los demás se convirtieron en elaboradas descripciones formales que la mayoría de los lectores nunca podrán descifrar y, por lo tanto, es posible que no resistan la depuración / compilación automatizada, al igual que un programa puede verse bien en una revisión, pero un compilador puede encontrar algunos errores interesantes, y ejecutar realmente el programa escrito puede encontrar errores aún más interesantes. (Además, los compiladores / ejecutores EXPRESS análogos no existían cuando se escribió el estándar, ¡y es posible que aún no existan hoy!)
Soluciones a problemas de EDIF 2 0 0
La solución al problema del "sabor" de EDIF 2 0 0 fue desarrollar una descripción semántica más específica en EDIF 3 0 0 (1993). De hecho, los resultados reportados de personas que generaron traductores EDIF 3 0 0 fue que los escritores ahora eran mucho más difíciles de acertar, debido a la gran cantidad de restricciones semánticas, y los lectores son relativamente triviales de desarrollar.
La solución al "conflicto de intereses" de los proveedores eran empresas de terceros neutrales, que podían proporcionar productos EDIF basados en interfaces de proveedores. Esta separación de los productos EDIF del control directo del proveedor fue fundamental para proporcionar a la comunidad de usuarios finales herramientas que funcionaron bien. Se formó de forma natural y sin comentarios. Engineering DataXpress fue quizás la primera empresa de este tipo en este ámbito, y parece que Electronic Tools Company capturó el mercado a mediados o finales de la década de 1990. Otra dinámica de esta industria es el propio EDIF. Dado que han crecido hasta alcanzar un tamaño bastante grande, generar lectores y escritores se ha convertido en una propuesta muy cara. Por lo general, las empresas de terceros han reunido a los especialistas necesarios y pueden utilizar esta experiencia para generar el software de manera más eficiente. También pueden aprovechar el uso compartido de código y otras técnicas que un proveedor individual no podría. Para el año 2000, casi ningún proveedor importante produjo sus propias herramientas EDIF, eligiendo en su lugar herramientas OEM de terceros.
Desde el lanzamiento de EDIF 4 0 0, toda la organización de normalización de EDIF se ha disuelto esencialmente. No se han publicado reuniones de ninguno de los subcomités técnicos, del grupo de expertos de EDIF, etc. La mayoría de las personas involucradas se han trasladado a otras empresas o gestiones. El boletín fue abandonado y el Grupo de Usuarios ya no realiza reuniones anuales. EDIF 3 0 0 y 4 0 0 ahora son normas ANSI , IEC y europeas (EN). La versión 3 0 0 de EDIF es IEC / EN 61690-1 y la versión 4 0 0 de EDIF es IEC / EN 61690-2.
Descendientes EDIF
- LKSoft adoptó importantes conceptos de EDIF 2 0 0 para crear un formato de datos propietario de la extensión por defecto ".cam" por su CircuitCAM sistema ofrecido originalmente por LPKF Laser & Electronics AG en Garbsen / Hannover, Alemania y en la actualidad propiedad de DCT Co., Ltd .en Tianjn, China . Para el trabajo de manera eficiente en EDIF como formatos LKSoft ha desarrollado el EDIF Procedimientos de interfaz , una API para el lenguaje de programación C .
- Zuken , anteriormente Racal-Redac Ltd., tomó conceptos del desarrollo temprano de EDIF 4 0 0 para crear un nuevo formato patentado llamado CADIF para su sistema Visula PCB-CAD. Este formato también es ampliamente utilizado por proveedores externos.
- STEP-AP210, una parte de ISO 10303 , prácticamente heredó toda la funcionalidad EDIF 4 0 0 excepto los esquemas.
enlaces externos
- Herramientas de BYU EDIF Un marco de Java para analizar / manipular archivos EDIF, desarrollado y mantenido por el Laboratorio de Computación Configurable de BYU
- Torc API C ++ de código abierto para computación reconfigurable, incluido el análisis y la manipulación de EDIF 2 0 0, del Grupo de Computación Reconfigurable de ISI
- Descripción general de EDIF de Elgris Technologies, Inc.
- www.edif.org en Internet Archive Archive de www.edif.org (ahora desaparecido) que contiene una introducción al formato EDIF
- Ayudas informáticas para el diseño de VLSI - Apéndice D: Formato de intercambio de diseño electrónico por Steven M. Rubin
- Profesora Hilary Kahn (1943-2007)