Diseño de circuito integrado

La concepción (o el diseño ) de circuitos integrados (o chips electrónicos) consiste en llevar a cabo las múltiples etapas de desarrollo ( flujo de diseño ) necesarias para diseñar correctamente y sin errores un chip electrónico.

¿De qué está hecho un circuito integrado?

Los circuitos integrados complejos del tipo SoC ( System On Chip o System On Chip en francés) generalmente integran:

El flujo de diseño no es el mismo para cada una de estas partes (digital, memorias, partes analógicas, pad de E / S ).

Diseño de un circuito digital

El punto de partida es una especificación funcional que describe la funcionalidad deseada. En el caso de una arquitectura con uno o más procesadores, el diseño del software asociado generalmente comienza en paralelo para poder simularlo en la arquitectura de destino durante el diseño.

Modelado de sistemas ( diseño de sistemas )

Este paso consiste en modelar a muy alto nivel el sistema completo (hardware y software) con el fin de validar en términos de desempeño la arquitectura elegida en relación a las necesidades de la aplicación.

Actualmente existen varios lenguajes y simuladores asociados para realizar este paso. Los más famosos son:

Se están desarrollando estándares.

Descripción RTL (diseño RTL)

Una vez validada la arquitectura, el circuito se modela en registros de transferencia ( Register Transfer Level ). Este modelado equivale a describir la implementación en forma de elementos secuenciales (los registros o flip-flops) y de combinaciones lógicas entre las diversas entradas / salidas de los elementos secuenciales y de las entradas / salidas primarias del circuito.

Este modelado se codifica utilizando un lenguaje de descripción de hardware . Esto se hace en VHDL o en Verilog .

La especificidad de una descripción RTL es que se puede sintetizar automáticamente en puertas lógicas combinacionales (puertas Y, O, multiplexor, etc.) y secuenciales (como flip-flops D sincrónicos) de una biblioteca de células estándar (Biblioteca de células estándar). Para ello, la codificación RTL en VHDL o Verilog debe seguir ciertas reglas precisas para que se diga que el código es "sintetizable". Es muy posible describir una funcionalidad equivalente en VHDL o Verilog que no se puede sintetizar. Esto se denomina descripción de comportamiento de nivel superior al nivel RTL .

Simulación lógica

El primer nivel de verificación equivale a simular el código RTL escrito en VHDL o Verilog . El simulador simulará cada señal de interconexión a lo largo del tiempo en función de los estímulos de entrada que deban describirse (generalmente en el mismo lenguaje VHDL o Verilog ). Si el circuito a simular contiene un procesador, también será necesario proporcionar el programa ejecutable correspondiente en forma de contenido de memoria binaria. La memoria que contiene el código del programa y los datos (FLASH o SRAM, por ejemplo) también se modela en VHDL o Verilog , pero a un nivel de abstracción más alto que RTL (SRAM o FLASH no se pueden sintetizar).

Los simuladores más utilizados son:

Verificación funcional

El uso de simuladores lógicos no es suficiente para asegurar que no haya errores de diseño por las siguientes razones:

Para compensar esto, existen soluciones de verificación funcional que intentan ser más exhaustivas o acelerar el tiempo de simulación: por ejemplo, es posible utilizar:

En teoría, es posible describir completamente la funcionalidad de un circuito digital mediante afirmaciones. Luego, la herramienta puede verificar formalmente que las dos modelizaciones (la implementación en RTL y el modelo por afirmación) son equivalentes.

Síntesis lógica

La síntesis lógica es el paso que transforma la descripción RTL del circuito en una descripción a nivel de puerta lógica (lista de red de puerta ). De antemano, debe estar disponible una biblioteca de destino de puertas lógicas. Esto generalmente reúne varios cientos de elementos lógicos (como puertas Y, puertas O, flip-flops, etc.). Esta biblioteca depende de la tecnología de destino, es decir, el nodo de tecnología (por ejemplo, 0,18 µm o 0,13 µm) y el fundador (las reglas para dibujar las células dependen del proceso de fabricación).

El usuario también debe proporcionar restricciones resumidas como, por ejemplo:

Las herramientas de síntesis actuales funcionan principalmente en los llamados circuitos digitales "síncronos". Es decir que todos los elementos secuenciales (los flip-flops) están cronometrados por un mismo reloj. En cada flanco del reloj (generalmente ascendente), los flip-flops muestrean sus entradas que generalmente se encuentran copiadas en su salida (para flip-flops tipo D). Luego, estas salidas son procesadas por la unidad combinatoria antes de volver a muestrearse en la siguiente carrera del reloj. Por lo tanto, está disponible un período de reloj como el tiempo de procesamiento de la unidad combinatoria que es igual a la suma de los retrasos de cruce de las puertas incriminadas. Opcionalmente, puede haber varios dominios de reloj, agrupando un conjunto de elementos secuenciales y combinatorios. Por el contrario, en un diseño asincrónico, el reloj de un flip-flop puede muy bien ser el resultado de la combinación lógica de otros elementos secuenciales. Estos tipos de diseño son más marginales porque no existe una herramienta de soporte de diseño para garantizar de manera exhaustiva que el circuito funcione sin problemas en todas las condiciones de uso.

La herramienta de síntesis de circuitos síncronos generalmente procede en varios pasos:

En esta fase de diseño, el árbol del reloj no se sintetiza: se considera ideal. Sin embargo, se estima una cierta latencia que corresponde al peor retraso posible de llegada del reloj entre dos flip-flops.

El resultado de este paso es un archivo de computadora que representa la instanciación de las puertas de la biblioteca de destino y su interconexión, que representa el circuito electrónico (lista de redes de puertas). Existen diferentes formatos de este tipo de representación:

Las herramientas más famosas son:

Prueba de equivalencia post-síntesis

Colocación y enrutamiento

Es el proceso en el que las diferentes partes de un circuito se colocan y conectan automáticamente según el problema a resolver. El enrutamiento de ubicación se utiliza en particular en el contexto de FPGA, componentes reprogramables con miles de unidades de procesamiento interno que se pueden vincular entre sí.

El enrutamiento de ubicación es un problema de optimización difícil que requiere técnicas metaheurísticas como algoritmos genéticos o recocido simulado. Por lo tanto, los tiempos de cálculo son a menudo muy altos en vista del número de elementos a considerar. Sin embargo, es posible dejar cierto margen de maniobra al algoritmo para obtener una solución aceptable pero no óptima más rápidamente.

Prueba de equivalencia posterior al enrutamiento

Extracción de parásitos

Simulación lógica con anotaciones posteriores a nivel de puerta

Análisis de retardos e integridad de la señal

Es necesario un análisis de tiempo estático (STA) para garantizar que los plazos en el diseño se respeten en las diversas condiciones de uso previsto. Parámetros como la temperatura de funcionamiento, el voltaje o la variabilidad del proceso que aparece durante la fabricación real, tienen un efecto significativo en los plazos de entrega. Este análisis generalmente se realiza en el peor de los casos (el peor de los casos) y el mejor de los casos (el mejor de los casos). El análisis en el peor de los casos permite asegurar que no hay violaciones en la configuración de los elementos síncronos con respecto a la frecuencia deseada. El análisis del mejor de los casos permite detectar si hay infracciones de retención.

También es importante un análisis de los tiempos en las interfaces.

La herramienta Primetime (Synopsys) es una de las herramientas de STA.

Comprobaciones físicas (DRC y LVS, antenas)

La fase de verificación física (en inglés Physical Verification, PV) permite asegurar que el dibujo (layout) corresponde al circuito eléctrico que se ha especificado, y que se puede fabricar sin errores que impidan su correcto funcionamiento. Nos distinguimos :

Generación de GDSII

Verificación física del nivel de máscara (DFM)

Hoy en día, la microelectrónica ha descendido a tecnologías submicrónicas (ancho de polisilicio en un transistor inferior a 130 nm). Este descenso a valores muy pequeños provoca el crecimiento de fenómenos que pueden alterar el correcto funcionamiento de los chips si no se observan reglas de diseño muy estrictas. Los servicios de maquetación se preocupan por la forma en que podemos intervenir en la producción de máscaras y defectos residuales. Estas fallas aparecen principalmente durante el proceso y se pueden dividir en tres grupos:

- Aleatorio: defectos relacionados con la calidad del sustrato y la limpieza de la sala limpia (partículas). - Sistemático: defectos de "proceso y litografía" (sobregrabado, subgrabado, etc.). - Paramétrico: fluctuación de los parámetros de dispositivo y / o conexión.

Entre estos defectos, solo los defectos aleatorios no pueden resolverse mediante una optimización de los diseños de la máscara. Los otros dos grupos se enfocan en problemas conocidos y resueltos que deberán ser resueltos nuevamente para tecnologías submicrónicas para poder tener simulaciones correctas. Estas fallas tienen el punto común de causar una consecuente disminución en el rendimiento de las virutas y son corregidas por las llamadas reglas DFM / DFY (Design for Manufacturability y Design for Yield) que son reglas que influyen en el rendimiento y la fabricación de las virutas.

Lanzamiento de la fabricación de silicio

Validación de silicio

Diseño de un circuito analógico

Entrar en un diagrama

Entrar en el esquema es el primer paso en el diseño de un circuito analógico. Se realiza en CAD (diseño asistido por computadora) utilizando un software especial, muy a menudo Cadence Virtuoso en el entorno industrial. El diseño de circuitos analógicos se basa en la tecnología CMOS, por lo que los diagramas obtenidos contienen en gran parte transistores, ensamblados con componentes más convencionales (resistencias, condensadores, diodos, etc.). Al ingresar al diagrama, es preferible proceder por bloque para simplificar la creación. De hecho, es posible transformar una etapa de un circuito en un bloque para poder reutilizarlo en el proyecto completo. Los diagramas completos de un circuito integrado son, por tanto, una acumulación de bloques, cada uno de los cuales contiene un conjunto preciso con transistores.

Simulación analógica

La simulación analógica permite probar el correcto funcionamiento teórico del circuito utilizando un entorno de simulación contenido en el software de diseño. Estas herramientas de simulación permiten obtener curvas (o formas de onda) que representan los voltajes o corrientes que el diseñador ha elegido probar en su diagrama. Este paso es muy importante en el diseño porque permite validar el diagrama antes de pasar a la maquetación.

Disposición (dibujo de las máscaras)

Extracción de parásitos

Simulación analógica con ruido

Comprobaciones físicas (DRC y LVS, antenas)

El DRC para la verificación de reglas de diseño es un paso de validación que permite verificar que el circuito dibujado (o diseño) realmente se pueda fabricar. Estas reglas de dibujo están definidas por las capacidades de las máquinas de fabricación para crear patrones sobre silicio más o menos cercanos, más o menos finos, y que permitan un alto rendimiento de fabricación. Por ejemplo, dos alambres de metal no deben estar demasiado cerca, de lo contrario pueden terminar en cortocircuito durante la fabricación.

Los procesos de fabricación de circuitos integrados pueden producir acumulaciones de cargas eléctricas en los circuitos. Estas cargas eléctricas pueden ser destructivas para ciertos componentes. Estamos hablando del efecto antena. Seguir reglas de dibujo similares a las reglas de la República Democrática del Congo ayuda a evitar estos efectos.

El LVS para el software de verificación de esquemas, es un paso de validación que permite verificar que el circuito dibujado (o diseño) corresponde al esquema eléctrico del circuito.

Estas tres etapas de validación se realizan generalmente mediante software especializado, y se configuran o programan para detectar malas configuraciones, malos dibujos, respecto a lo que permiten las líneas de producción. Este software especializado es proporcionado por las denominadas empresas CAD (Computed Assisted Design).

Generación de GDSII

Verificación física del nivel de máscara (DFM)

Grabar

Término que designa el envío de la GDSII en fabricación con el fin de fabricar las máscaras.

Circuitos mixtos y SoC ( System-On-Chip ) o System-on-Chip

Ver también