Las bibliotecas de células son un elemento fundamental que se emplea durante la etapa de diseño del circuito integrado, para crear lo que será el chip que posteriormente se fabricará. Esto se aplica tanto para memorias como también para lógica, con en la CPU, GPU, etc. Además, está estrechamente relacionado con la foundry en la que se fabricará el chip…
Índice de contenidos
También te puede interesar conocer cuáles son los mejores procesadores
¿Qué son las células en el diseño de chips?
Las células son bloques básicos predefinidos y pre-caracterizados utilizados en el diseño físico y lógico de circuitos integrados. Estas células son diseñadas según reglas específicas de fabricación para una tecnología particular (p.e.: 5nm, 7nm, 3nm…), y están optimizadas para una familia lógica concreta, e incluso para un tipo de transistores específico (MOSFET, FinFET, GAAFET,…).
Se puede ver a estas bibliotecas de células al igual que las de software, que son porciones de código usado de forma frecuente y que se pueden llamar desde el código fuente para no tener que reescribir esos bloques desde cero cada vez. En el caso de las de chips es igual, y se pueden usar en entornos EDA y lenguajes HDL, son bloques usados recurrentemente ya hechos con todos sus transistores, conexiones, entradas y salidas…
Cada célula realiza una función lógica o funcional específica, como compuertas NAND, NOR, memorias o flip-flops, celda SRAM, celda DRAM, multiplexores, etc. Una vez explicado esto, hay que diferenciar entre:
- Las células estándar están organizadas en una bibliotecas de células estándar (standard cell library), que incluye información sobre su comportamiento lógico, eléctrico y físico, y que ya vienen en los propios software de diseño (EDA). Están creadas para uso genérico, y las puede usar cualquiera que disponga del software. Usando y uniendo estos bloques, se pueden formar sumadores, FPUs, ALUs, procesadores, memorias, etc.
- Las células custom son bloques lógicos o funcionales diseñados a medida (o personalizados) para satisfacer requisitos específicos de un circuito o aplicación. A diferencia de las células estándar, que son predefinidas y optimizadas para una tecnología particular, las células custom se diseñan desde cero, lo que permite una optimización extrema en términos de velocidad, consumo energético, área, etc. Estas son las usadas por los grandes fabricantes como AMD, Intel, NVIDIA, Apple, etc., ya que pueden conseguir mejores resultados que usando células estándar. En este caso, no están en bibliotecas accesibles para todos, sino que se trata de un software in-house, creado por ellos mismos para uso interno. En definitiva, estas células suelen ser implementadas en diseños full-custom, donde los ingenieros controlan todos los aspectos del circuito, desde el diseño lógico hasta el layout físico.
Te recomiendo leer sobre las mejores tarjetas gráficas
Componentes principales de una célula
Entre los componentes principales de una célula para el diseño de chips tenemos que destacar:
- Descripción lógica: define la función lógica (por ejemplo, una tabla de verdad para una AND de 2 entradas).
- Modelo eléctrico: incluye parámetros como retardo de propagación (tpdtpd), consumo de potencia, capacitancia de entrada/salida, etc.
- Representación física: layout de la célula en términos de máscaras de fabricación (capa de metalización, difusores, contactos, etc.).
- Interfaces: información sobre pines de entrada/salida y su posicionamiento.
Características de las células
Entre las características de las células para el diseño de chips, tenemos estas:
- Dimensiones: en el caso de las células estándar será una dimensión estandarizada, diseñadas para encajar en un grid regular dentro de un chip, lo que facilita la automatización del diseño. Esto implica una altura fija para alinear filas horizontales en el diseño, mientras que el ancho es variable dependiendo de la complejidad, ya que no es lo mismo una célula NAND (más pequeño) que un multiplexor (más grande). En el caso de las células no estándar esto puede ser más variable, y estará optimizado por el diseñador.
- Portabilidad: cada célula está diseñada específicamente para un nodo tecnológico particular, como 5nm o 7nm, pero el concepto se aplica a múltiples tecnologías. Librerías específicas deben ser generadas para cada proceso. En el caso de las personalizadas no hay esta flexibilidad, pero la optimización será mejor para la tecnología en cuestión.
- Optimización múltiple: las estándar están optimizadas de forma más genérica para ofrecer un consumo reducido reduciendo fugas (potencia estática) y capacitancias (potencia dinámica), el retardo de propagación de señales, y el área o espacio ocupado en el chip. Sin embargo, al ser más genéricas, no estarán exprimidas al máximo, como puede hacerse en las custom, que se mejorarán para conseguir unos objetivos mejores.
Flujo de diseño de circuitos integrados basado en células
El diseño de CI basado en células estándar se organiza en un flujo jerárquico que incluye varias etapas:
- Diseño lógico: se parte de un nivel alto de abstracción (e.g., HDL como Verilog o VHDL) que describe la lógica del circuito. El código HDL se sintetiza, es decir, se convierte en una red de puertas lógicas utilizando células de la biblioteca disponible.
- Diseño físico: por un lado tenemos el floorplanning, que se define cómo se organiza el diseño en el chip, incluyendo áreas reservadas para bloques funcionales, memoria, IO, etc. También tenemos el placement, es decir, cuando se colocan en filas horizontales siguiendo reglas de diseño para minimizar el retardo y consumo. También se realiza el routing, donde se conecta físicamente las células estándar mediante capas metálicas. Las herramientas de automatización manejan las restricciones de enrutamiento (e.g., evitando cruces de señales o ruido electromagnético). Finalmente se realiza el timing closure, es decir, se verifica que las rutas críticas cumplen con las restricciones de tiempo mediante ajustes de ubicación y buffers si es necesario.
- Verificación: consta de varias etapas, por un lado la verificación lógica, que asegura que el diseño lógico post-síntesis cumple con el comportamiento esperado. La verificación física incluye verificaciones DRC (Design Rule Check) y LVS (Layout vs. Schematic) para garantizar que el layout es fabricable y consistente con el diseño lógico.
Inteligencia artificial en programas EDA o CAD ya están colaborando para ayudar a los diseñadores o ingenieros a tareas como la optimización en la colocación de células, detectar problemas, o enrutar mejor las células…
Finalmente, cuando el IC esté listo, se podrá conseguir el GDSII del que se pueden obtener las máscaras para la fotolitografía y su fabricación en la foundry.
Bibliotecas de células estándar
Las bibliotecas de células estándar son colecciones de células optimizadas para un nodo tecnológico específico y están caracterizadas para diferentes condiciones. Es decir, todos esos bloques elementales que se usan para construir circuitos integrados. Básicamente los tipos existentes suelen ser:
- Células lógicas: puertas lógicas como la NOT, NOR, NAND, etc.
- Células secuenciales: latches y flip-flops para crear sistemas basados en estados o registros simples.
- Células de relleno: para colocar en espacios vacíos y mantener la continuidad de las capas de metalización.
- Otras: pueden ser más diversas, como buffers para tratar algunos problemas de señal entre puertas lógicas o en los pads de contacto, controladores de señal, etc. También las hay para diseño analógico, para circuitos heterogéneos que combinan varias tecnologías, etc.
Podemos tener distintas bibliotecas para diversos objetivos, o para diversos lenguajes HDL. Además, tendrán asociadas modelos SPICE o .lib para simulación de tiempos y consumo, así como un layout físico para las herramientas de diseño, capas, pines, etc.
No olvides comentar sobre el tema…