
En el diseño de semiconductores , la metodología de celda estándar es un método para diseñar circuitos integrados de aplicación específica (ASIC) con características principalmente de lógica digital. Esta metodología es un ejemplo de abstracción de diseño, en la que 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 puerta NAND ).
La metodología basada en celdas —la categoría general a la que pertenecen las celdas estándar— permite que un diseñador se centre en el aspecto de alto nivel (función lógica) del diseño digital, mientras que otro se centra 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 de función única relativamente simples (de varios miles de compuertas) hasta complejos sistemas en chip (SoC) de varios millones de compuertas .
Construcción de una celda estándar
Una celda estándar es un grupo de transistores y estructuras de interconexión que proporciona una función lógica booleana (por ejemplo, AND , OR , XOR , XNOR , inversores) o una función de almacenamiento (flipflop o latch). [ 1 ] Las celdas más simples son representaciones directas de las funciones booleanas elementales NAND, NOR y XOR, aunque comúnmente se utilizan 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 ).
Generalmente, el diseño inicial de una celda estándar se desarrolla a nivel de transistor, en forma de lista de conexiones o diagrama esquemático . La lista de conexiones describe los transistores, sus interconexiones y sus terminales (puertos) al entorno externo. El diagrama esquemático se puede generar con diversos programas de diseño asistido por computadora (CAD) o automatización del diseño electrónico (EDA) que proporcionan una interfaz gráfica de usuario (GUI) para este proceso. Los diseñadores utilizan programas CAD adicionales, como SPICE , para simular el comportamiento electrónico de la lista de conexiones, definiendo estímulos de entrada (formas de onda de voltaje o corriente) y calculando la respuesta del circuito en el dominio del tiempo (analógica). Las simulaciones verifican si la lista de conexiones implementa la función deseada y predicen otros parámetros relevantes, como el consumo de energía o el retardo de propagación de la señal.
Dado que las vistas lógica 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 se organiza en capas base , que corresponden a las diferentes estructuras de los dispositivos de transistor, y capas de cableado de interconexión y capas de vías , 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ías específicas que representan conexiones específicas entre cada capa secuencial. También pueden estar presentes capas no relacionadas con la fabricación en un diseño para fines de automatización del diseño , pero muchas capas utilizadas explícitamente para programas CAD de colocación y enrutamiento (PNR) a menudo se incluyen en una vista abstracta separada pero similar . La vista abstracta suele contener mucha menos información que la maquetación y puede reconocerse como un archivo en formato LEF ( Library Exchange Format ) o equivalente.
Una vez creado el diseño, se suelen utilizar herramientas CAD adicionales para realizar diversas validaciones comunes. Se lleva a cabo una comprobación de reglas de diseño (DRC) para verificar que el diseño cumple con los requisitos de la fundición y otros requisitos del diseño. A continuación, se realiza una extracción de parásitos (PEX) para generar una lista de conexiones PEX con propiedades de parásitos a partir del diseño. Las conexiones nodales de dicha lista de conexiones se comparan con las de la lista de conexiones esquemática mediante un procedimiento de comparación entre diseño y esquema (LVS) para verificar que los modelos de conectividad sean equivalentes. [ 2 ]
Posteriormente, se puede simular de nuevo la lista de conexiones PEX (dado que contiene propiedades parásitas) para obtener modelos de temporización, potencia y ruido más precisos. Estos modelos suelen estar representados en formato Synopsys Liberty, pero también se pueden utilizar otros formatos Verilog .
Finalmente, se pueden utilizar potentes herramientas de colocación y enrutamiento (PNR) para reunir toda la información y sintetizar (generar) diseños de integración a muy gran escala (VLSI), de forma 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. También se pueden crear otros archivos para dar soporte a diversas herramientas que utilizan las celdas estándar por múltiples razones. Todos estos archivos, creados para dar soporte al uso de todas las variantes 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. Del mismo modo, para una lista de conexiones típica, existen muchos diseños diferentes que se ajustan a sus parámetros de rendimiento. El reto del diseñador consiste en minimizar el coste de fabricación del diseño de la celda estándar (generalmente reduciendo el área del chip del circuito), sin dejar de cumplir con los requisitos de velocidad y potencia de la celda. Por consiguiente, el diseño de circuitos integrados es un proceso muy laborioso, a pesar de la existencia de herramientas de diseño que lo facilitan.
Biblioteca
Una biblioteca de celdas estándar es una colección de funciones lógicas electrónicas de bajo nivel, como operadores AND, OR, NOT, biestables, pestillos y búferes. Estas celdas se implementan como celdas totalmente personalizadas de altura fija y ancho variable. La característica clave de estas bibliotecas es su altura fija, que permite colocarlas en filas, facilitando así el proceso de diseño digital automatizado. Las celdas suelen tener diseños totalmente personalizados optimizados, que minimizan los retrasos y el área.
Una biblioteca de celdas estándar típica contiene dos componentes principales:
- Base de datos de la biblioteca: consta de varias vistas, que suelen incluir vistas de diseño, esquemas, símbolos, resúmenes y otras vistas lógicas o de simulación. A partir de esta base de datos, se puede capturar información diversa en varios formatos, como el formato Cadence LEF y el formato Synopsys Milkyway, que contienen información reducida sobre la disposición de las celdas, suficiente para herramientas automatizadas de colocación y enrutamiento .
- Resumen de temporización: generalmente en formato Liberty , para proporcionar definiciones funcionales, información sobre temporización, potencia y ruido para cada celda.
Una biblioteca de celdas estándar también puede contener los siguientes componentes adicionales: [ 3 ]
- Disposición completa de las celdas
- Modelos SPICE de las células
- Modelos Verilog o modelos VHDL-VITAL
- modelos de extracción parasitaria
- Mazos de reglas de la RDC
Un ejemplo es una puerta lógica XOR simple , que se puede formar a partir de puertas OR, NOT y AND.
Aplicación de celda estándar
Estrictamente hablando, una función NAND o NOR de dos entradas es suficiente para formar cualquier conjunto arbitrario de funciones booleanas. Sin embargo, en el diseño moderno de ASIC, se utiliza la metodología de celdas estándar con una biblioteca considerable (o varias). Esta biblioteca suele contener 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 automatizadas de síntesis, colocación y enrutamiento (SPR). Indirectamente, también otorga al diseñador mayor libertad para realizar compensaciones en la implementación (área vs. velocidad vs. consumo de energía). Un conjunto completo de descripciones de celdas estándar se denomina comúnmente biblioteca tecnológica . [ 3 ]
Las herramientas de automatización del 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 fabricante . Esta biblioteca (junto con un formato de lista de conexiones de diseño) constituye la base para el intercambio de información de diseño entre las diferentes fases del proceso SPR.
Síntesis
Utilizando la vista lógica de celdas de la biblioteca tecnológica, la herramienta de síntesis lógica transforma matemáticamente 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 al de un compilador de software que convierte un listado de programa en C de alto nivel en un listado en lenguaje ensamblador dependiente del procesador.
La lista de conexiones es la representación en celdas estándar del diseño ASIC, a nivel de vista lógica. Consta de instancias de las compuertas de la biblioteca de celdas estándar y la conectividad de puertos entre compuertas. 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 instrucciones ni declaraciones RTL sin mapear.
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 conexiones dependiente de la tecnología.
Colocación
La herramienta de colocación inicia la implementación física del ASIC. Con un plano bidimensional proporcionado por el diseñador del ASIC, la herramienta asigna ubicaciones a cada puerta lógica en la lista de conexiones. La lista de conexiones resultante contiene la ubicación física de cada una de las celdas estándar de la lista, pero conserva una descripción abstracta de cómo se conectan los terminales de las puertas lógicas entre sí.
Normalmente, las celdas estándar tienen un tamaño constante en al menos una dimensión, lo que permite alinearlas en filas en el circuito integrado . El chip constará de un gran número de filas (con alimentación y tierra junto a cada fila), y cada fila estará ocupada por las distintas celdas que conforman el diseño. Los colocadores siguen ciertas reglas: a cada puerta se le asigna una ubicación única (exclusiva) en el mapa del chip. Una puerta determinada se coloca una sola vez y no puede ocupar ni superponerse a la ubicación de ninguna otra puerta.
Enrutamiento
Utilizando la lista de conexiones de las compuertas ubicadas y la vista de diseño de la biblioteca, el enrutador agrega tanto las líneas de conexión de señal como las de alimentación. La lista de conexiones físicas completamente enrutadas contiene la lista de compuertas obtenida mediante síntesis, la ubicación de cada compuerta y las interconexiones dibujadas durante el enrutamiento.
RDC/LVS
La verificación de reglas de diseño (DRC) y la comparación de diseño y esquema (LVS) son procesos de verificación. [ 2 ] La fabricación confiable de dispositivos en el moderno rango submicrométrico profundo ( 0,13 μm y menores) requiere el estricto cumplimiento de las reglas de espaciado de transistores, espesor de capa metálica y densidad de potencia. La DRC compara exhaustivamente la lista de conexiones físicas con un conjunto de "reglas de diseño de la fundición" (proporcionadas por el 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 suele ser 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 a partir de cada uno y las compara. Se comparan los nodos, los puertos y el tamaño de los dispositivos. Si son iguales, LVS pasa y el diseñador puede continuar. LVS tiende a considerar los dedos de los transistores como iguales a un transistor extra ancho. Por lo tanto, 4 transistores (cada uno de 1 μm de ancho) en paralelo, un transistor de 4 dedos de 1 μm 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 las reglas de diseño (DRC) y la verificación de la disposición en circuito (LVS). Este cumplimiento mejora significativamente la eficiencia del proceso de diseño, lo que reduce los tiempos de entrega para los diseñadores. Al asegurar 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 ágil y rápido.
Otras metodologías basadas en células
La "celda estándar" se enmarca dentro de una clase más general de flujos de automatización de diseño denominada diseño basado en celdas. Los ASIC estructurados , las FPGA y los CPLD son variaciones del diseño basado en celdas. Desde la perspectiva 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 enrutamiento) y la implementación física.
Medida de complejidad
Para 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) .
Véase también
Referencias
- 1 2 A. Kahng et al.: "Diseño físico VLSI: desde la partición de grafos hasta el cierre de temporización", Springer (2022), doi : 10.1007/978-3-030-96415-3 , ISBN 978-3-030-96414-6, págs. 11-13.
- 1 2 3 A. Kahng et al.: "Diseño físico VLSI: desde la partición de grafos hasta el cierre de temporización", Springer (2022), doi : 10.1007/978-3-030-96415-3 , ISBN 978-3-030-96414-6, pág. 9.
- 1 2 3 D. Jansen et al. "The Electronic Design Automation Handbook", Springer (2003), doi : 10.1007/978-0-387-73543-6 , ISBN 978-14-020-7502-5, págs. 398-420.
Enlaces externos
- Tecnología VLSI : este sitio contiene material de apoyo para un libro que Graham Petley está escribiendo, El arte del diseño de bibliotecas de celdas estándar.
- Universidad Estatal de Oklahoma — Este sitio contiene material de apoyo para una biblioteca completa de celdas estándar de sistemas en chip que utiliza herramientas de dominio público y de Mentor Graphics/Synopsys/Cadence Design System.
Las áreas de celdas estándar en un CBIC están formadas por filas de celdas estándar, como una pared construida con ladrillos.
- Virginia Tech — Esta es una biblioteca de celdas estándar desarrollada por el VLSI de Virginia Technology para Telecomunicaciones (VTVT).
- Automatización del diseño electrónico
- Puertas lógicas