Articulo de referencia

Netlist

En diseño electrónico , una lista de conexiones es una descripción de la conectividad de un circuito electrónico . [ 1 ] [ 2 ] En su forma más simple, una lista de conexiones co...

En diseño electrónico , una lista de conexiones es una descripción de la conectividad de un circuito electrónico . [ 1 ] [ 2 ] En su forma más simple, una lista de conexiones consiste en una lista de los componentes electrónicos en un circuito y una lista de los nodos a los que están conectados. [ 1 ] [ 3 ] Una red (net) es una colección de dos o más componentes interconectados.

La estructura, complejidad y representación de las listas de conexiones pueden variar considerablemente, pero el propósito fundamental de cada lista de conexiones es transmitir información de conectividad . Las listas de conexiones generalmente solo proporcionan instancias, nodos y, tal vez, algunos atributos de los componentes involucrados. [ 4 ] Si expresan mucho más que esto, generalmente se consideran un lenguaje de descripción de hardware como Verilog o VHDL , o uno de varios lenguajes diseñados específicamente para la entrada a simuladores o compiladores de hardware (como las listas de conexiones de simulación analógica SPICE ).

Tipos de listas de conexiones

Las listas de conexiones pueden ser:

  • Físicas (basadas en conexiones físicas) o lógicas (basadas en conexiones lógicas)
    • Por ejemplo, conectar tres componentes a través de un terminal de uno de esos componentes se consideraría una conexión lógica directa , mientras que cada una serían conexiones físicas discretas.
  • Basado en instancias (agrupado en torno a una instancia de componente) o basado en redes (lista exhaustiva de conexiones a una red en particular).
    • Listas de conexiones planas (se muestran todas las conexiones) o jerárquicas (las conexiones se agrupan de alguna manera; por ejemplo, según la placa física o la capa a la que están conectadas. Estas listas de conexiones pueden estar plegadas , ocultando datos bajo un nivel de abstracción determinado, o desplegadas , siendo exhaustivas y, por lo tanto, potencialmente equivalentes en contenido a las listas de conexiones planas).

Contenido y estructura de una lista de conexiones (netlist)

La mayoría de las listas de conexiones contienen descripciones de los componentes o dispositivos utilizados, o hacen referencia a ellas. Cada vez que se utiliza un componente en una lista de conexiones, se denomina "instancia".

Estas descripciones suelen enumerar las conexiones que se realizan a ese tipo de dispositivo y algunas propiedades básicas del mismo. Estos puntos de conexión se denominan "terminales" o "pines", entre otros nombres.

Una "instancia" puede ser cualquier cosa, desde un transistor MOSFET o un transistor de unión bipolar , hasta una resistencia , un condensador o un chip de circuito integrado .

Los dispositivos tienen "terminales". En el caso de una aspiradora, estos terminales serían las tres clavijas metálicas del enchufe. Cada terminal tiene un nombre; siguiendo con el ejemplo de la aspiradora, podrían ser "Neutro", "Vida" y "Tierra". Normalmente, cada dispositivo tiene un nombre único, de modo que si tienes dos aspiradoras, una podría ser "vac1" y la otra "vac2". Aparte de sus nombres, podrían ser idénticas en todo lo demás.

Las redes son los "cables" que conectan los elementos de un circuito. En un diseño, las redes pueden tener o no atributos especiales, dependiendo del lenguaje de programación utilizado para escribir la lista de conexiones y de las características de dicho lenguaje.

Las listas de conexiones basadas en instancias suelen proporcionar una lista de las instancias utilizadas en un diseño. Junto con cada instancia, se proporciona una lista ordenada de nombres de red o una lista de pares formados por el nombre del puerto de la instancia y el nombre de la red a la que está conectado dicho puerto. En este tipo de descripción, la lista de redes se puede obtener de las listas de conexiones, y no hay espacio para asociar atributos específicos a las redes en sí. SPICE es un ejemplo de listas de conexiones basadas en instancias.

Las listas de conexiones basadas en redes suelen describir todas las instancias y sus atributos, luego describen cada red e indican a qué puerto está conectada en cada instancia. Esto permite asociar atributos a las redes. EDIF es probablemente el formato más conocido de listas de conexiones basadas en redes.

Jerarquía

En diseños complejos, es común dividir el diseño en partes, cada una de las cuales se convierte en una "definición" que puede utilizarse como instancia en el diseño. Siguiendo la analogía de la aspiradora, podríamos tener una definición de la aspiradora con sus puertos, pero ahora esta definición también incluiría una descripción completa de los componentes internos de la máquina y cómo se conectan (motores, interruptores, etc.), como lo haría un diagrama de cableado.

Una definición que no incluye instancias se denomina "primitiva" (o "hoja", u otros nombres); mientras que una definición que incluye instancias es "jerárquica".

Una jerarquía "plegada" permite que una misma definición se represente varias veces mediante instancias. Una jerarquía "desplegada" no permite que una definición se utilice más de una vez.

Las jerarquías plegadas pueden ser extremadamente compactas. Una lista de conexiones pequeña, con solo unas pocas instancias, puede describir diseños con un número muy grande de instancias. Por ejemplo, supongamos que la definición A es una primitiva simple, como una celda de memoria. Supongamos entonces que la definición B contiene 32 instancias de A; C contiene 32 instancias de B; D contiene 32 instancias de C; y E contiene 32 instancias de D. El diseño ahora contiene 5 definiciones (de la A a la E) y 128 instancias. Sin embargo, E describe un circuito que contiene más de un millón de celdas de memoria.

Despliegue

En un diseño "plano", solo se instancian primitivas. Los diseños jerárquicos se pueden "expandir" ("aplanar") recursivamente creando una nueva copia (con un nombre nuevo) de cada definición cada vez que se utiliza. Si el diseño está muy plegado, expandirlo de esta manera dará como resultado una base de datos de lista de conexiones mucho mayor, pero conserva las dependencias jerárquicas. Dada una lista de conexiones jerárquica, la lista de nombres de instancia en una ruta desde la definición raíz hasta una instancia primitiva especifica la única ruta a esa primitiva. Las rutas a cada primitiva, en conjunto, conforman una lista de conexiones grande pero plana que es exactamente equivalente a la versión jerárquica compacta.

Anotación inversa

La retroanotación son datos que se pueden agregar a una lista de conexiones jerárquica. Generalmente se mantienen separados de la lista de conexiones, ya que se pueden aplicar varios conjuntos de datos alternativos a una misma lista. Estos datos pueden haberse extraído de un diseño físico y podrían proporcionar información adicional para simulaciones más precisas. Por lo general, los datos se componen de una ruta jerárquica y un dato para esa primitiva, o bien, para determinar los valores de retardo RC debido a la interconexión.

Herencia

Otro concepto frecuentemente utilizado en las listas de conexiones es el de herencia. Supongamos que la definición de un condensador tiene un atributo asociado llamado "Capacitancia", que corresponde a la propiedad física del mismo nombre , con un valor predeterminado de "100 pF" (100 picofaradios). Cada instancia de este condensador también podría tener dicho atributo, pero con un valor de capacitancia diferente. Otras instancias podrían no tener ninguna capacitancia asociada. En el caso de que no se especifique ninguna capacitancia para una instancia, esta "heredará" el valor de 100 pF de su definición. Un valor especificado "sobrescribirá" el valor de la definición. Si un gran número de atributos coinciden con los de la definición, se puede "heredar" una gran cantidad de información, evitando así tener que especificarla de forma redundante en la lista de conexiones, lo que ahorra espacio y facilita la lectura del diseño tanto para máquinas como para personas.

Referencias

  1. 1 2 Holt, Randy. "Esquema vs. Lista de conexiones: una guía para la integración del diseño de PCB" . blog.optimumdesign.com . Archivado del original el 16 de julio de 2019. Recuperado el 3 de abril de 2019 .
  2. "netlist.html" . www.vlsiip.com . Consultado el 3 de abril de 2019 .
  3. "Formato de archivo de lista de conexiones" (PDF) . www.expresspcb.com . Consultado el 24 de agosto de 2021. La lista de conexiones se escribe en un solo archivo, pero incluye cuatro secciones: 1) Un encabezado de archivo, 2) Una tabla que enumera cada uno de los componentes, 3) Una tabla que enumera cada uno de los nombres de red, 4) Una tabla que enumera cada una de las conexiones de red. Cada entrada de la tabla se escribe utilizando una sola línea de texto que termina con un CRLF . Los campos de la tabla están separados por caracteres de espacio (0x20). Los campos de cadena comienzan y terminan con comillas dobles. Cada una de las tres tablas termina con una línea en blanco (CRLF).
  4. "Ejemplos de circuitos y listas de conexiones | Uso del programa de simulación de circuitos spice | Libro de texto de electrónica" . www.allaboutcircuits.com . Consultado el 3 de abril de 2019 .

Lecturas adicionales

  • Hoja de referencia rápida de SPICE, LA ANATOMÍA GENERAL DE UNA BARAJA DE SPICE , Stanford 2001
  • Wolfram Alpha: secuencias de listas de Mathematica encapsuladas por el comando Netlist de Analog Insydes.