This article includes a list of general references, but it lacks sufficient corresponding inline citations. (March 2019) |
El diseño de circuitos integrados , diseño de semiconductores , diseño de chips o diseño de CI , es un subcampo de la ingeniería electrónica , que abarca las técnicas particulares de diseño de circuitos y lógica requeridas para diseñar circuitos integrados , o CI. Los CI consisten en componentes electrónicos miniaturizados integrados en una red eléctrica sobre un sustrato semiconductor monolítico mediante fotolitografía .
El diseño de circuitos integrados se puede dividir en las amplias categorías de diseño de circuitos integrados digitales y analógicos . El diseño de circuitos integrados digitales consiste en producir componentes como microprocesadores , FPGA , memorias ( RAM , ROM y flash ) y ASIC digitales . El diseño digital se centra en la corrección lógica, la maximización de la densidad de circuitos y la colocación de circuitos de forma que las señales de reloj y temporización se enruten de forma eficiente. El diseño de circuitos integrados analógicos también tiene especializaciones en el diseño de circuitos integrados de potencia y el diseño de circuitos integrados de RF . El diseño de circuitos integrados analógicos se utiliza en el diseño de amplificadores operacionales , reguladores lineales , bucles de enganche de fase , osciladores y filtros activos . El diseño analógico se ocupa más de la física de los dispositivos semiconductores, como la ganancia, la adaptación, la disipación de potencia y la resistencia . La fidelidad de la amplificación y el filtrado de señales analógicas suele ser fundamental y, como resultado, los circuitos integrados analógicos utilizan dispositivos activos de mayor área que los diseños digitales y suelen ser menos densos en cuanto a circuitos. [1]
Los circuitos integrados modernos son enormemente complicados. Un chip de computadora de escritorio promedio, a partir de 2015, tiene más de mil millones de transistores. Las reglas sobre lo que se puede y no se puede fabricar también son extremadamente complejas. Los procesos comunes de circuitos integrados de 2015 tienen más de 500 reglas. Además, dado que el proceso de fabricación en sí no es completamente predecible, los diseñadores deben tener en cuenta su naturaleza estadística . La complejidad del diseño de circuitos integrados modernos, así como la presión del mercado para producir diseños rápidamente, ha llevado al uso extensivo de herramientas de diseño automatizadas en el proceso de diseño de circuitos integrados. El diseño de algunos procesadores se ha vuelto lo suficientemente complicado como para ser difícil de probar por completo, y esto ha causado problemas en los grandes proveedores de la nube. [2] En resumen, el diseño de un circuito integrado mediante software EDA es el diseño, la prueba y la verificación de las instrucciones que el circuito integrado debe llevar a cabo. La inteligencia artificial se ha demostrado en el diseño de chips para crear diseños de chips que son las ubicaciones de las celdas estándar y los macrobloques en un chip. [3]
El diseño de circuitos integrados implica la creación de componentes electrónicos, como transistores , resistencias , condensadores y la interconexión de estos componentes en una pieza de semiconductor, normalmente silicio . Es necesario un método para aislar los componentes individuales formados en el sustrato , ya que el silicio del sustrato es conductor y a menudo forma una región activa de los componentes individuales. Los dos métodos comunes son el aislamiento de unión pn y el aislamiento dieléctrico. Se debe prestar atención a la disipación de potencia de los transistores y las resistencias de interconexión y la densidad de corriente de la interconexión, los contactos y las vías, ya que los CI contienen dispositivos muy pequeños en comparación con los componentes discretos, donde estas preocupaciones son un problema menor. La electromigración en la interconexión metálica y el daño por ESD a los componentes diminutos también son motivo de preocupación. Finalmente, la disposición física de ciertos subbloques del circuito suele ser crítica, para lograr la velocidad de operación deseada, para segregar las partes ruidosas de un CI de las partes silenciosas, para equilibrar los efectos de la generación de calor a través del CI o para facilitar la colocación de conexiones a circuitos fuera del CI.
Un ciclo típico de diseño de circuitos integrados implica varios pasos:
Los haces de iones enfocados se pueden utilizar durante el desarrollo de chips para establecer nuevas conexiones en un chip. [4] [5]
En términos generales, el diseño de circuitos integrados digitales se puede dividir en tres partes.
Tenga en cuenta que el segundo paso, el diseño RTL, es responsable de que el chip funcione correctamente. El tercer paso, el diseño físico, no afecta en absoluto la funcionalidad (si se realiza correctamente), pero determina la velocidad de funcionamiento del chip y su costo.
Una celda estándar normalmente representa una sola puerta lógica , un diodo o componentes lógicos simples como flip-flops o puertas lógicas con múltiples entradas. [6] El uso de celdas estándar permite que el diseño del chip se divida en niveles lógicos y físicos. Una empresa fabless normalmente solo trabajaría en el diseño lógico de un chip, determinando cómo se conectan las celdas y la funcionalidad del chip, mientras sigue las reglas de diseño de la fundición en la que se fabricará el chip, mientras que el diseño físico del chip, las celdas en sí, normalmente lo realiza la fundición y comprende la física de los dispositivos transistores y cómo se conectan para formar una puerta lógica. Las celdas estándar permiten diseñar y modificar chips más rápidamente para responder a las demandas del mercado, pero esto se produce a costa de una menor densidad de transistores en el chip y, por lo tanto, tamaños de matriz más grandes. [6]
Las fundiciones suministran bibliotecas de celdas estándar a empresas sin fábrica, con fines de diseño y para permitir la fabricación de sus diseños utilizando las instalaciones de la fundición. La fundición puede proporcionar un kit de diseño de procesos (PDK) que puede incluir la biblioteca de celdas estándar, así como las especificaciones de las celdas y herramientas para verificar el diseño de la empresa sin fábrica frente a las reglas de diseño especificadas por la fundición, así como para simularlo utilizando las celdas de la fundición. Los PDK pueden proporcionarse bajo acuerdos de confidencialidad. Macros/Macroceldas/Macrobloques, [7] Las matrices de macroceldas y los bloques IP tienen una mayor funcionalidad que las celdas estándar y se utilizan de forma similar. Hay macros suaves y macros duras. Las celdas estándar suelen colocarse después de las filas de celdas estándar.
El proceso de desarrollo de circuitos integrados (CI) comienza con la definición de los requisitos del producto, pasa por la definición arquitectónica, la implementación, la puesta en marcha y, finalmente, la producción. A continuación se describen las distintas fases del proceso de desarrollo de circuitos integrados. Aunque las fases se presentan aquí de forma sencilla, en realidad hay iteraciones y estos pasos pueden repetirse varias veces.
Antes de definir una arquitectura , se deben definir algunos objetivos de alto nivel del producto. Los requisitos suelen ser generados por un equipo interdisciplinario que aborda las oportunidades de mercado , las necesidades de los clientes, la viabilidad y mucho más. Esta fase debería dar como resultado un documento de requisitos del producto .
La arquitectura define la estructura, los objetivos y los principios fundamentales del producto. Define conceptos de alto nivel y la propuesta de valor intrínseca del producto. Los equipos de arquitectura tienen en cuenta muchas variables e interactúan con muchos grupos. Las personas que crean la arquitectura generalmente tienen una cantidad significativa de experiencia en el manejo de sistemas en el área para la cual se está creando la arquitectura. El producto del trabajo de la fase de arquitectura es una especificación arquitectónica .
La microarquitectura es un paso más hacia el hardware. Implementa la arquitectura y define mecanismos y estructuras específicos para lograr esa implementación. El resultado de la fase de microarquitectura es una especificación de microarquitectura que describe los métodos utilizados para implementar la arquitectura.
En la fase de implementación, el diseño en sí se crea utilizando la especificación microarquitectónica como punto de partida. Esto implica la definición y partición de bajo nivel, la escritura de código , la introducción de esquemas y la verificación. Esta fase finaliza con un diseño que llega a la fase de producción .
Una vez creado, grabado y fabricado un diseño, se recibe el hardware real, el "primer silicio", que se lleva al laboratorio, donde pasa por el proceso de puesta en marcha . La puesta en marcha es el proceso de encendido, prueba y caracterización del diseño en el laboratorio. Se realizan numerosas pruebas , desde pruebas muy sencillas, como garantizar que el dispositivo se encienda, hasta pruebas mucho más complicadas que intentan estresar la pieza de diversas formas. El resultado de la fase de puesta en marcha es la documentación de los datos de caracterización (qué tan bien funciona la pieza según las especificaciones) y las erratas (comportamiento inesperado).
La producción es la tarea de llevar un diseño desde la ingeniería a la fabricación en serie. Aunque un diseño puede haber cumplido con éxito las especificaciones del producto en el laboratorio durante la fase de desarrollo, los ingenieros de productos se enfrentan a muchos desafíos cuando intentan producir en serie esos diseños. El circuito integrado debe aumentarse hasta volúmenes de producción con un rendimiento aceptable. El objetivo de la fase de producción es alcanzar volúmenes de producción en serie a un coste aceptable.
Una vez que un diseño está maduro y ha llegado a la producción en masa, es necesario mantenerlo. El proceso debe supervisarse continuamente y los problemas deben solucionarse rápidamente para evitar un impacto significativo en los volúmenes de producción. El objetivo de mantenerlo es mantener los volúmenes de producción y reducir continuamente los costos hasta que el producto llegue al final de su vida útil .
El proceso inicial de diseño de un chip comienza con el diseño a nivel de sistema y la planificación de la microarquitectura. En las empresas de diseño de circuitos integrados, la dirección y, a menudo, los analistas redactarán una propuesta para que un equipo de diseño comience a diseñar un nuevo chip que se adapte a un segmento de la industria. Los diseñadores de nivel superior se reunirán en esta etapa para decidir cómo funcionará funcionalmente el chip. En este paso es donde se deciden la funcionalidad y el diseño de un circuito integrado. Los diseñadores de circuitos integrados trazarán los requisitos funcionales, los bancos de pruebas de verificación y las metodologías de prueba para todo el proyecto, y luego convertirán el diseño preliminar en una especificación a nivel de sistema que se puede simular con modelos simples utilizando lenguajes como C++ y MATLAB y herramientas de emulación. Para los diseños puros y nuevos, la etapa de diseño del sistema es donde se planifica un conjunto de instrucciones y una operación, y en la mayoría de los chips se modifican los conjuntos de instrucciones existentes para una funcionalidad más nueva. El diseño en esta etapa a menudo consiste en declaraciones como codifica en formato MP3 o implementa la aritmética de punto flotante IEEE . En etapas posteriores del proceso de diseño, cada una de estas declaraciones de apariencia inocente se expande a cientos de páginas de documentación textual.
Una vez acordado el diseño del sistema, los diseñadores de RTL implementan los modelos funcionales en un lenguaje de descripción de hardware como Verilog , SystemVerilog o VHDL . Mediante el uso de componentes de diseño digital como sumadores, desplazadores y máquinas de estado, así como conceptos de arquitectura informática como canalización, ejecución superescalar y predicción de bifurcaciones , los diseñadores de RTL descompondrán una descripción funcional en modelos de hardware de componentes en el chip que trabajan juntos. Cada una de las declaraciones simples descritas en el diseño del sistema puede convertirse fácilmente en miles de líneas de código RTL , por lo que es extremadamente difícil verificar que el RTL hará lo correcto en todos los casos posibles que el usuario pueda plantearle.
Para reducir la cantidad de errores de funcionalidad, un grupo de verificación de hardware independiente tomará el RTL y diseñará bancos de pruebas y sistemas para verificar que el RTL realmente esté realizando los mismos pasos bajo muchas condiciones diferentes, clasificado como el dominio de la verificación funcional . Se utilizan muchas técnicas, ninguna de ellas perfecta pero todas útiles: simulación lógica extensa , métodos formales , emulación de hardware , verificación de código tipo lint , cobertura de código , etc. La verificación como la que realizan los emuladores se puede llevar a cabo en FPGA o procesadores especiales, [8] [9] y la emulación reemplazó a la simulación. La simulación se realizó inicialmente simulando puertas lógicas en chips, pero más tarde, se simularon RTL en chips. [10] La simulación aún se usa al crear diseños de chips analógicos. [11] Las plataformas de creación de prototipos se utilizan para ejecutar software en prototipos del diseño del chip mientras está en desarrollo utilizando FPGA, pero son más lentas para iterar o modificar y no se pueden usar para visualizar señales de hardware como aparecerían en el diseño terminado. [12]
Un pequeño error en este caso puede hacer que todo el chip quede inservible, o algo peor. El famoso error FDIV del Pentium hizo que los resultados de una división fueran incorrectos en un máximo de 61 partes por millón, en casos que ocurrieron muy infrecuentemente. Nadie se dio cuenta hasta que el chip ya llevaba meses en producción. Sin embargo, Intel se vio obligada a ofrecer reemplazar, de forma gratuita, todos los chips vendidos hasta que pudieran solucionar el error, a un costo de 475 millones de dólares (EE.UU.). [ cita requerida ]
El RTL es solo un modelo de comportamiento de la funcionalidad real bajo la cual se supone que debe operar el chip. No tiene vínculo con un aspecto físico de cómo funcionaría el chip en la vida real en lo que respecta a los materiales, la física y la ingeniería eléctrica. Por esta razón, el siguiente paso en el proceso de diseño de circuitos integrados, la etapa de diseño físico , es convertir el RTL en representaciones geométricas reales de todos los dispositivos electrónicos, como capacitores, resistencias, puertas lógicas y transistores que se colocarán en el chip.
A continuación se enumeran los pasos principales del diseño físico. En la práctica, no existe una progresión sencilla: se requiere una iteración considerable para garantizar que se cumplan todos los objetivos simultáneamente. Este es un problema difícil en sí mismo, llamado cierre del diseño .
Antes de la llegada de los microprocesadores y las herramientas de diseño basadas en software, los circuitos integrados analógicos se diseñaban utilizando cálculos manuales y piezas de kit de proceso. Estos circuitos integrados eran circuitos de baja complejidad, por ejemplo, amplificadores operacionales , que normalmente implicaban no más de diez transistores y pocas conexiones. A menudo era necesario un proceso iterativo de prueba y error y una "sobreingeniería" del tamaño del dispositivo para lograr un circuito integrado fabricable. La reutilización de diseños probados permitió construir circuitos integrados progresivamente más complicados a partir de conocimientos previos. Cuando el procesamiento informático económico estuvo disponible en la década de 1970, se escribieron programas informáticos para simular diseños de circuitos con mayor precisión que la práctica mediante cálculos manuales. El primer simulador de circuitos para circuitos integrados analógicos se llamó SPICE (Programa de simulación con énfasis en circuitos integrados). Las herramientas de simulación de circuitos informáticos permiten una mayor complejidad de diseño de circuitos integrados que la que se puede lograr con los cálculos manuales, lo que hace que el diseño de ASIC analógicos sea práctico.
Como en el diseño analógico se deben tener en cuenta muchas restricciones funcionales, el diseño manual sigue estando muy extendido hoy en día, en contraste con el diseño digital, que está altamente automatizado e incluye el enrutamiento y la síntesis automatizados. [14] Como resultado, los flujos de diseño modernos para circuitos analógicos se caracterizan por dos estilos de diseño diferentes: de arriba hacia abajo y de abajo hacia arriba. [15] El estilo de diseño de arriba hacia abajo hace uso de herramientas basadas en optimización similares a los flujos digitales convencionales. Los procedimientos de abajo hacia arriba reutilizan el "conocimiento experto" con el resultado de soluciones previamente concebidas y capturadas en una descripción procedimental, imitando la decisión de un experto. [15] Un ejemplo son los generadores de celdas, como PCells .
Un desafío crítico para el diseño de circuitos integrados analógicos involucra la variabilidad de los dispositivos individuales construidos en el chip semiconductor. A diferencia del diseño de circuitos a nivel de placa, que permite al diseñador seleccionar dispositivos que han sido probados y agrupados según el valor, los valores de los dispositivos en un circuito integrado pueden variar ampliamente, lo cual es incontrolable para el diseñador. Por ejemplo, algunas resistencias de circuito integrado pueden variar ±20% y β de un BJT integrado puede variar de 20 a 100. En los últimos procesos CMOS, β de transistores PNP verticales puede incluso ir por debajo de 1. Para aumentar el desafío del diseño, las propiedades de los dispositivos a menudo varían entre cada oblea de semiconductor procesada. Las propiedades de los dispositivos pueden incluso variar significativamente en cada circuito integrado individual debido a los gradientes de dopaje . La causa subyacente de esta variabilidad es que muchos dispositivos semiconductores son muy sensibles a variaciones aleatorias incontrolables en el proceso. Pequeños cambios en la cantidad de tiempo de difusión, niveles de dopaje desiguales, etc. pueden tener grandes efectos en las propiedades del dispositivo.
Algunas técnicas de diseño utilizadas para reducir los efectos de la variación del dispositivo son: [16]
Las tres empresas más grandes que venden herramientas de automatización de diseño electrónico son Synopsys , Cadence y Mentor Graphics . [17]