¿Existe un formato de netlist común?

¿Existe un formato común de lista de conexiones que sea portátil entre diferentes herramientas esquemáticas/pcb/EDA/CAD y, de ser así, dónde está el formato o la referencia para poder implementarlo?

Si no es así, ¿cada paquete lo implementa de manera diferente o hay algunos estándares que, si se implementan, podrían brindar una mayor compatibilidad con una amplia gama de herramientas?

Si bien este hilo está bloqueado, mencionaré gnetlist como una utilidad de línea de comandos para traducir entre unos 30 formatos de netlist diferentes.

Respuestas (6)

EDIF (formato de intercambio de diseño electrónico) es un formato neutral del proveedor en el que se almacenan listas de conexiones y esquemas electrónicos. Fue uno de los primeros intentos de establecer un formato neutral de intercambio de datos para la industria de la automatización del diseño electrónico (EDA).

Consulte http://en.wikipedia.org/wiki/EDIF para obtener más información y enlaces.

Esta es probablemente la mejor respuesta a la pregunta original: un formato de netlist neutral para el proveedor. Lamentablemente, sin embargo, tiene un soporte deficiente.
Y por supuesto, nadie lo usa. Bienvenido al mundo de los paquetes EDA de alto precio...
Es compatible con el software Pulsonix que uso, así como con OrCAD, PADS, CADSTAR, etc.

No he visto ningún estándar. Cada paquete implementa su propio formato. Afortunadamente, el formato es muy simple, lo que facilita la traducción entre paquetes.

Por ejemplo, la lista de redes de gEDA consta de registros en el siguiente formato:

NOMBRE DE RED REFDES-PIN REFDES-PIN ...

Aquí hay una muestra de uno de mis tableros:

unnamed_net39 J28-3 U11-12

unnamed_net38 J28-1 J16-2 J27-1

TIERRA J16-3 C16-2 J15-3 C15-2

Puede leer fácilmente este archivo netlist en una estructura de datos y traducirlo a un formato diferente.

Si se guardan en formato ASCII, es bastante fácil convertirlos, puedo importar la mayoría de los formatos al software Pulsonix PCB que uso. El único incómodo es Eagle; Los esquemas, PCB y bibliotecas de Eagle deben convertirse mediante un ULP especialmente escrito.

Tampoco he visto un formato estándar en ninguna parte. Sin embargo, como han mencionado otros, los formatos de netlist son muy simples y generalmente están basados ​​en texto, y por lo tanto son triviales para traducir entre varias formas.

Una netlist es simplemente una lista de redes (cables), con una lista de puertos (pines de componentes) que se conectan a cada cable. Aunque los detalles difieren, todo es una variación del mismo tema. En el pasado, escribí varios scripts en Perl y Python que manipulan fácilmente las listas de conexiones. De hecho, los archivos netlist son un gran ejercicio en el procesamiento de texto de nivel principiante.

Honestamente, si realmente desea un formato de netlist que en la práctica funcione con casi cualquier herramienta, solo tiene dos opciones serias:

  • VHDL
  • Verilog

Sí, estos son lenguajes de descripción de hardware en toda regla, y usarlos como un formato de lista de conexiones podría considerarse una exageración. Sin embargo, es muy fácil, y si una herramienta arroja un VHDL estructural simple o Verilog, puede estar bastante seguro de que podrá recuperar el diseño en casi cualquier otra herramienta EDA.

Como beneficio adicional, la mayoría de los demás formatos de netlist (por ejemplo, EDIF) necesitan tener un conjunto de primitivas definidas externamente, ya sea algo específico del proveedor o algo como LPM. Con VHDL y Verilog, las hojas de nivel más bajo (primitivas) pueden ser lo que quieras (por ejemplo, código RTL sintetizable, modelos de simulación, cajas negras, etc.).

Sin embargo, si es absolutamente necesario tener un formato de netlist real, secundo la sugerencia de usar el formato gnetlist, que luego se puede convertir a muchos otros formatos.

Google y Antmicro lanzaron recientemente el formato FPGA Interchange que incluye un estándar para describir netlists lógicas y físicas.