En el diseño de semiconductores , la metodología de celda estándar es un método de diseño de circuitos integrados específicos de la aplicación (ASIC) con características principalmente de lógica digital. La metodología de celda estándar es un ejemplo de abstracción de diseño, mediante el cual un diseño de integración a muy gran escala ( VLSI ) de bajo nivel se encapsula en una representación lógica abstracta (como una compuerta NAND ).
La metodología basada en celdas (la clase general a la que pertenecen las celdas estándar) permite que un diseñador se concentre en el aspecto de alto nivel (función lógica) del diseño digital, mientras que otro diseñador se concentra en el aspecto de implementación (físico). Junto con los avances en la fabricación de semiconductores , la metodología de celdas estándar ha ayudado a los diseñadores a escalar los ASIC desde circuitos integrados monofuncionales comparativamente simples (de varios miles de puertas) hasta dispositivos complejos de sistema en chip (SoC) de varios millones de puertas.
Una celda estándar es un grupo de estructuras de transistores e interconexiones que proporciona una función lógica booleana (por ejemplo, AND , OR , XOR , XNOR , inversores) o una función de almacenamiento (flipflop o pestillo). [1] Las celdas más simples son representaciones directas de la función booleana elemental NAND, NOR y XOR, aunque comúnmente se usan celdas de mucha mayor complejidad (como un sumador completo de 2 bits o un flipflop de entrada D multiplexado). La función lógica booleana de la celda se denomina su vista lógica : el comportamiento funcional se captura en forma de una tabla de verdad o ecuación de álgebra booleana (para lógica combinacional), o una tabla de transición de estados (para lógica secuencial ).
Por lo general, el diseño inicial de una celda estándar se desarrolla a nivel de transistor, en forma de una lista de conexiones de transistores o vista esquemática . La lista de conexiones es una descripción nodal de los transistores, de sus conexiones entre sí y de sus terminales (puertos) al entorno externo. Se puede generar una vista esquemática con varios programas de diseño asistido por computadora (CAD) o automatización de diseño electrónico (EDA) que proporcionan una interfaz gráfica de usuario (GUI) para este proceso de generación de listas de conexiones. Los diseñadores utilizan programas CAD adicionales como SPICE para simular el comportamiento electrónico de la lista de conexiones, declarando el estímulo de entrada (formas de onda de voltaje o corriente) y luego calculando la respuesta del circuito en el dominio del tiempo (analógico). Las simulaciones verifican si la lista de conexiones implementa la función deseada y predicen otros parámetros pertinentes, como el consumo de energía o el retardo de propagación de la señal.
Dado que las vistas lógicas y de lista de conexiones solo son útiles para la simulación abstracta (algebraica), y no para la fabricación de dispositivos, también se debe diseñar la representación física de la celda estándar. También llamada vista de diseño , este es el nivel más bajo de abstracción de diseño en la práctica de diseño común. Desde una perspectiva de fabricación, el diseño VLSI de la celda estándar es la vista más importante, ya que es la más cercana a un "plano de fabricación" real de la celda estándar. El diseño está organizado en capas base , que corresponden a las diferentes estructuras de los dispositivos de transistores, y capas de cableado de interconexión y capas de vía , que unen los terminales de las formaciones de transistores. [1] Las capas de cableado de interconexión generalmente están numeradas y tienen capas de vía específicas que representan conexiones específicas entre cada capa secuencial. Las capas que no son de fabricación también pueden estar presentes en un diseño para fines de automatización del diseño , pero muchas capas utilizadas explícitamente para programas CAD de ubicación y ruta (PNR) a menudo se incluyen en una vista abstracta separada pero similar. La vista abstracta a menudo contiene mucha menos información que el diseño y puede reconocerse como un archivo de formato de extracción de diseño (LEF) o equivalente.
Una vez creado un diseño, se suelen utilizar herramientas CAD adicionales para realizar una serie de validaciones comunes. Se realiza una comprobación de las reglas de diseño (DRC) para verificar que el diseño cumple con los requisitos de fundición y otros requisitos de diseño. A continuación, se realiza una extracción parasitaria (PEX) para generar una lista de conexiones PEX con propiedades parasitarias a partir del diseño. Las conexiones nodales de esa lista de conexiones se comparan a continuación con las de la lista de conexiones esquemática con un procedimiento de diseño frente a esquema (LVS) para verificar que los modelos de conectividad sean equivalentes. [2]
La lista de conexiones PEX puede simularse nuevamente (ya que contiene propiedades parásitas) para lograr modelos de ruido, potencia y sincronización más precisos. Estos modelos suelen caracterizarse (contenerse) en un formato Synopsys Liberty, pero también pueden usarse otros formatos Verilog .
Finalmente, se pueden utilizar potentes herramientas de Lugar y Ruta (PNR) para reunir todo y sintetizar (generar) diseños de Integración a Muy Gran Escala (VLSI), de manera automatizada, a partir de listas de conexiones y planos de planta de diseño de nivel superior.
Además, se pueden utilizar otras herramientas CAD para validar otros aspectos de las vistas y modelos de celdas. Y se pueden crear otros archivos para respaldar diversas herramientas que utilizan las celdas estándar por una gran cantidad de razones. Todos estos archivos que se crean para respaldar el uso de todas las variaciones de celdas estándar se conocen colectivamente como una biblioteca de celdas estándar.
Para una función booleana típica, existen muchas listas de conexiones de transistores funcionalmente equivalentes. Asimismo, para una lista de conexiones típica, existen muchos diseños diferentes que se ajustan a los parámetros de rendimiento de la lista de conexiones. El desafío del diseñador es minimizar el costo de fabricación del diseño de la celda estándar (generalmente al minimizar el área de la matriz del circuito), al mismo tiempo que se cumplen los requisitos de rendimiento de velocidad y potencia de la celda. En consecuencia, el diseño de circuitos integrados es un trabajo que requiere mucha mano de obra, a pesar de la existencia de herramientas de diseño para ayudar en este proceso.
Una biblioteca de celdas estándar es una colección de funciones lógicas electrónicas de bajo nivel , como AND, OR, INVERT, flip-flops, latches y buffers. Estas celdas se realizan como celdas totalmente personalizadas de ancho variable y altura fija. El aspecto clave de estas bibliotecas es que tienen una altura fija, lo que permite colocarlas en filas, lo que facilita el proceso de diseño digital automatizado. Las celdas suelen ser diseños totalmente personalizados y optimizados, que minimizan los retrasos y el área.
Una biblioteca de celdas estándar típica contiene dos componentes principales:
Una biblioteca de células estándar también puede contener los siguientes componentes adicionales: [3]
Un ejemplo es una puerta lógica XOR simple , que puede formarse a partir de puertas OR, INVERT y AND.
Estrictamente hablando, una función NAND o NOR de 2 entradas es suficiente para formar cualquier conjunto de funciones booleanas arbitrarias. Pero en el diseño moderno de ASIC, la metodología de celdas estándar se practica con una biblioteca (o bibliotecas) considerable de celdas. La biblioteca generalmente contiene múltiples implementaciones de la misma función lógica, que difieren en área y velocidad. [3] Esta variedad mejora la eficiencia de las herramientas de síntesis, ubicación y ruta automatizadas (SPR). Indirectamente, también le da al diseñador mayor libertad para realizar compensaciones de implementación (área vs. velocidad vs. consumo de energía). Un grupo completo de descripciones de celdas estándar se denomina comúnmente biblioteca de tecnología . [3]
Las herramientas de automatización de diseño electrónico (EDA) disponibles comercialmente utilizan las bibliotecas de tecnología para automatizar la síntesis, la colocación y el enrutamiento de un ASIC digital. La biblioteca de tecnología es desarrollada y distribuida por el operador de la fundición . La biblioteca (junto con un formato de lista de conexiones de diseño) es la base para intercambiar información de diseño entre las diferentes fases del proceso SPR.
Utilizando la vista lógica de celdas de la biblioteca de tecnología, la herramienta Síntesis lógica realiza el proceso de transformación matemática de la descripción del nivel de transferencia de registros (RTL) del ASIC en una lista de conexiones dependiente de la tecnología. Este proceso es análogo a un compilador de software que convierte una lista de programas C de alto nivel en una lista de lenguaje ensamblador dependiente del procesador.
La lista de conexiones es la representación de celdas estándar del diseño ASIC, en el nivel de vista lógica. Consiste en instancias de las puertas de la biblioteca de celdas estándar y la conectividad de puertos entre puertas. Las técnicas de síntesis adecuadas garantizan la equivalencia matemática entre la lista de conexiones sintetizada y la descripción RTL original. La lista de conexiones no contiene declaraciones ni instrucciones RTL no asignadas.
La herramienta de síntesis de alto nivel realiza el proceso de transformación de la descripción de los modelos de nivel C (SystemC, ANSI C/C++) en una lista de redes dependiente de la tecnología.
La herramienta de colocación inicia la implementación física del ASIC. Con un plano de planta en 2D proporcionado por el diseñador del ASIC, la herramienta de colocación asigna ubicaciones para cada puerta en la lista de conexiones. La lista de conexiones de puertas colocadas resultante contiene la ubicación física de cada una de las celdas estándar de la lista de conexiones, pero conserva una descripción abstracta de cómo se conectan entre sí los terminales de las puertas.
Por lo general, las celdas estándar tienen un tamaño constante en al menos una dimensión que les permite alinearse en filas en el circuito integrado . El chip constará de una gran cantidad de filas (con alimentación y tierra al lado de cada fila) y cada fila estará llena de las diversas celdas que componen el diseño real. Los colocadores obedecen ciertas reglas: a cada compuerta se le asigna una ubicación única (exclusiva) en el mapa de la matriz. Una compuerta determinada se coloca una vez y no puede ocupar ni superponerse a la ubicación de ninguna otra compuerta.
Mediante la lista de conexiones de puertas colocadas y la vista de diseño de la biblioteca, el enrutador agrega líneas de conexión de señal y líneas de suministro de energía. La lista de conexiones física completamente enrutada contiene la lista de puertas de síntesis, la ubicación de cada puerta de la ubicación y las interconexiones dibujadas del enrutamiento.
La verificación de reglas de diseño (DRC) y la verificación de diseño versus esquema (LVS) son procesos de verificación. [2] La fabricación confiable de dispositivos a escala submicrométrica moderna ( 0,13 μm y menos) requiere una estricta observancia de las reglas de espaciado de transistores, espesor de capa de metal y densidad de potencia. La verificación de reglas de diseño compara exhaustivamente la lista de conexiones físicas con un conjunto de "reglas de diseño de fundición" (del operador de la fundición) y luego señala cualquier violación observada.
El proceso LVS confirma que el diseño tiene la misma estructura que el esquema asociado; este es típicamente el paso final en el proceso de diseño. [2] La herramienta LVS toma como entrada un diagrama esquemático y la vista extraída de un diseño. Luego genera una lista de conexiones de cada uno y los compara. Se comparan todos los nodos, puertos y tamaños de dispositivos. Si son iguales, LVS pasa y el diseñador puede continuar. LVS tiende a considerar que los dedos de transistor son lo mismo que un transistor extra ancho. Por lo tanto, 4 transistores (cada uno de 1 μm de ancho) en paralelo, un transistor de 1 μm de 4 dedos o un transistor de 4 μm son vistos de la misma manera por la herramienta LVS. La funcionalidad de los archivos .lib se tomará de los modelos SPICE y se agregará como un atributo al archivo .lib.
En el diseño de semiconductores, se garantiza que las celdas estándar cumplan con los requisitos de verificación de reglas de diseño (DRC) y diseño versus esquema (LVS). Este cumplimiento mejora significativamente la eficiencia del proceso de diseño, lo que genera tiempos de respuesta más cortos para los diseñadores. Al garantizar que estas celdas cumplan con los estándares de verificación críticos, los diseñadores pueden optimizar la integración de estos componentes en diseños de chips más grandes, lo que facilita un ciclo de desarrollo más rápido y fluido.
La "celda estándar" pertenece a una clase más general de flujos de automatización de diseño denominados diseño basado en celdas. Los ASIC estructurados , los FPGA y los CPLD son variaciones del diseño basado en celdas. Desde el punto de vista del diseñador, todos comparten la misma interfaz de entrada: una descripción RTL del diseño. Sin embargo, las tres técnicas difieren sustancialmente en los detalles del flujo SPR (síntesis, colocación y ruta) y la implementación física.
Para los diseños de celdas estándar digitales, por ejemplo en CMOS , una métrica común independiente de la tecnología para medir la complejidad son los equivalentes de puerta (GE) .
Las áreas de celdas estándar en un CBIC están formadas por filas de celdas estándar, como una pared construida con ladrillos.