# Circuito integrado de aplicación específica

Un circuito Integrado para aplicaciones específicas (o ASIC, por sus siglas en inglés, Application-Specific Integrated Circuit) es un circuito integrado hecho a la medida para un uso en particular, en vez de ser concebido para propósitos de uso general. Se usan para una función específica. Por ejemplo, un chip diseñado únicamente para ser usado en un teléfono móvil es un ASIC. Por otro lado, los circuitos integrados de la serie 74XX son circuitos lógicos (combinacionales o secuenciales) que se pueden utilizar para una multiplicidad de aplicaciones. En un lugar intermedio entre los ASIC y los productos de propósito general están los productos estándar para aplicaciones específicas, o ASSP por sus siglas en inglés.
Con los avances en la miniaturización y en las herramientas de diseño, la complejidad máxima, y por ende la funcionalidad, un ASIC ha crecido desde 5.000 puertas lógicas a más de 100 millones. Los ASIC modernos a menudo incluyen procesadores de 32-bit, bloques de memoria RAM, ROM, EEPROM y Flash, así como otros tipos de módulos. Este tipo de ASIC frecuentemente es llamado sistema en chip, o SoC, por sus siglas en inglés. Los diseñadores de ASIC digitales usan lenguajes descriptores de hardware (HDL), tales como Verilog o VHDL, para describir la funcionalidad de estos dispositivos.
Las FPGA ( Field Programmable Gate Arrays, matriz de puertas programables) son la versión moderna de los prototipos con puertas lógicas de la serie 7400. Contienen bloques de lógica programable e interconexiones programables que permiten a un modelo de FPGA ser usada en muchas aplicaciones distintas. Para los diseños más pequeños o con volúmenes de producción más bajos, las FPGA pueden tener un costo menor que un diseño equivalente basado en ASIC, debido a que el costo fijo (el costo para preparar una línea de producción para que fabrique un ASIC en particular), es muy alto, especialmente en las tecnologías más densas, más de un millón de dólares para una tecnología de 90nm o menor.

## Historia

Los primeros ASIC utilizaban tecnología de matriz de puertas. Ferranti fabricó tal vez la primera matriz de puertas, la ULA (Uncommitted Logic Array o Matriz lógica no fija), alrededor de 1980. El diseño a la medida se realizaba al variar la máscara de interconexión metálica. Las ULAs tenían complejidades de hasta algunos miles de puertas. Las versiones posteriores fueron más generalizadas, con moldes base configurados tanto por las capas metálicas como polisilicónicas. Algunos moldes base incluían elementos de RAM.

## Diseño basado en Celdas Estándares (Standard Cell)

A mediados de 1980, un diseñador elegía a un fabricante de ASIC, y luego implementaba el diseño utilizando las herramientas provistas por ese fabricante en particular. A pesar de que existían herramientas de diseño provista por terceros, no había un enlace efectivo entre éstas y los procesos productivos de los fabricantes. Una solución a este problema, que además permitió aumentar la densidad de los ASIC, fue la implementación de Celdas Estándares. Cada fabricante de ASIC creaba bloques funcionales con características eléctricas conocidas, tales como los tiempos de propagación, capacitancias e inductancias, que podían ser representadas en las herramientas desarrolladas por terceros. El diseño basado en Celdas Estándares es el uso de estos bloques funcionales para alcanzar densidades de puertas muy altas, y un buen desempeño eléctrico. Este tipo de diseño se ubica entre diseño de Matriz de Puertas, y el diseño hecho totalmente a la medida, en término de los costos fijos y de fabricación de cada unidad.
Hacia finales de 1980, estuvieron disponibles las herramientas de síntesis lógica, tales como el Design Compiler. Estas herramientas podían compilar descripciones HDL en una lista de nodos al nivel de puertas. Esto dio paso a un estilo de diseño llamado Diseño basado en Celdas Estándares. Este tipo de diseño contempla las siguientes etapas conceptuales, aunque en la práctica estas etapas se traslapan significativamente.
Estos pasos, llevados a cabo con el nivel de habilidad común en la industria, casi siempre producen un dispositivo final que implementa correctamente el diseño original, a menos que se introduzcan fallas al nivel físico de fabricación.
* Un equipo de ingenieros de diseño comienza con la compresión no formal de las funciones requeridas por el ASIC a diseñar, usualmente derivada del análisis de requerimientos.
* El equipo de diseño construye una descripción del ASIC para alcanzar estos objetivos, utilizando un HDL. Este proceso es similar a escribir un programa computacional en un lenguaje de alto nivel. Este usualmente es llamado el diseño RTL (Register Transfer Level).
* La validez del diseño es verificada a través de una simulación. Un sistema virtual, implementado a nivel de software puede simular el desempeño de los ASIC a velocidades equivalentes de mil millones de instrucciones por segundo.
* Una herramienta de síntesis lógica convierte el diseño RTL en un gran conjunto de elementos de bajo nivel, llamados Celdas Estándares. Estos elementos son tomados desde una biblioteca, que consiste en una colección de puertas precaracterizadas (tales como NOR de 2 entradas, NAND de 2 entradas, inversores, etc.). Las celdas estándares usualmente son específicas para el fabricante del ASIC. El conjunto resultante de Celdas Estándares, junto a la interconexión de ellas, es llamado la lista de nodos a nivel de puertas.
* La lista de nodos es luego procesada por una herramienta de posicionamiento, la cual ubica las Celdad Estándares en una región que representa el ASIC final. Esta ubicación está sujeta a un conjunto de restricciones. En ocasiones se utilizan técnicas avanzadas para optimizar el posicionamiento.
* La herramienta de ruteo toma la ubicación física de las celdas, y utiliza el listado de nodos para crear las conexiones eléctricas entre ellas. La salida de esta etapa es un conjunto de fotomáscaras, con las que el fabricante producirá los circuitos integrados.
* Se puede hacer una estimación bastante precisa de los retardos finales, las resistencias y capacitancias parásitas y del consumo de energía. Estas estimaciones son usadas en la ronda final de pruebas. Estas pruebas demostrarán que el dispositivo funcionará en los rangos de temperatura y voltaje extremos. Cuando estas pruebas finalizan, la información de las fotomáscaras es entregada para la fabricación del chip.
Estos pasos de diseño son también comunes al diseño de un producto estándar. La diferencia significativa es que el diseño con Celdas Estándares utiliza la biblioteca de celdas del fabricante, que ha sido utilizada en potencialmente cientos de otros diseños, y por lo tanto constituyen un riesgo mucho menor que un diseño hecho totalmente a la medida. Las Celdas Estándares producen una densidad de diseño con un costo comparativamente más bajo, y pueden también integrar núcleos IP y SRAM en una forma efectiva, a diferencia de las matrices de puertas.

## Diseño basado en Matriz de Puertas (Gate Array)

El diseño basado en Matriz de Puertas (gate array) es un método de manufactura en donde las capas difundidas, es decir, los transistores y otros elementos activos están predefinidos, y las obleas que contienen estos dispositivos se mantienen en stock antes de la metalización, es decir, desconectadas. El proceso de diseño físico luego define la interconexión del dispositivo final. Para la mayoría de los fabricantes de ASIC, esto consiste de dos a cinco capas metálicas, cada una perpendicular a la que la precede. Los costos fijos son mucho más bajos, ya que las máscaras litográficas se requieren sólo para las capas metálicas, y los ciclos productivos son mucho más cortos, ya que la metalización es un proceso comparativamente más rápido. También es importante para el diseñador que con este método se pueden conseguir retardos de propagación mínimos, comparado con las soluciones basadas en FPGA disponibles en el mercado.
Los ASIC basados en matriz de puertas requieren siempre de un compromiso, ya que al determinar la correspondencia de un diseño determinado con las obleas que el fabricante tiene es stock, nunca da una utilización del 100%. A menudo las dificultades que aparecen al rutear las interconexiones, requieren migrar a un dispositivo con un arreglo más grande, con el consecuente aumento en el costo del dispositivo. Estos problemas frecuentemente son resultado del software utilizado para desarrollar las interconexiones.
En la actualidad, los diseños formados solamente por puertas lógicas raramente son implementados con Matriz de puertas, y son reemplazados por dispositivos programables, como las FPGA, las cuales pueden ser programadas por el usuario, y el costo fijo asociado es mínimo, un costo por unidad marginalmente superior, y desempeño comparable. Hoy, las Matrices de puertas están evolucionando en ASIC estructurados, que consisten en un gran núcleo IP (Intellectual Property), como un procesador, una unidad DSP, periféricos, memorias y bloques lógicos reconfigurables. Este cambio se debe principalmente a que los ASIC son capaces de integrar estos grandes bloques de sistemas funcionales, y los "sistemas en un chip" (SoC) requieren más que sólo bloques lógicos.
El término "Matriz de puertas" (Gate Array) es casi sinónimo del término "Semi a la medida" (Semi-Custom). El término utilizado depende de quién lo utilice; si se es un ingeniero de proceso, probablemente se utilice el término "Semi a la medida", mientras que si se es un diseñador a nivel lógico, se utiliza "Matriz de puertas" (Gate Array).

## Diseño hecho totalmente a la medida (Full Custom Circuits)

Por otro lado, el diseño hecho totalmente a la medida define la totalidad de las capas litográficas del dispositivo. Este se utiliza tanto para el diseño de ASIC como para el diseño de productos estándares.
Los beneficios de este método usualmente incluye un área reducida (y consecuentemente costos por unidad menores), mejoras en el desempeño y también la habilidad de integrar componentes analógicos y otros componentes pre-diseñados, como son los microprocesadores que forman un SoC.
Las desventajas del diseño totalmente a la medida son un costo y tiempo de desarrollo mayores, costos fijos mayores, mayor complejidad del software CAD y la necesidad de habilidades mucho mayores por parte del equipo de diseño.
Sin embargo, para diseños puramente digitales, las librerías de "celdas estándares", junto con los sistemas CAD modernos, pueden ofrecer ventajas considerables en términos de costos y desempeño junto a un bajo riesgo. Las herramientas de layout automático son rápidas y fáciles de usar, y ofrecen la posibilidad de optimizar manualmente cualquier aspecto que limite el desempeño del diseño.

## Diseño estructurado (Structured Array)

El diseño estructurado de ASIC es una expresión ambigua, con diferentes significados dependiendo del contexto. Este es un término relativamente nuevo en la industria, lo que explica que haya variaciones en su definición. Sin embargo, la premisa básica es que tanto el ciclo de manufactura como el ciclo de diseño se reducen comparado con los ASIC basados en celdas, gracias a la existencia de capas metálicas predefinidas (que reducen el tiempo de fabricación), y una pre-caracterización de lo que está en el silicio (lo que reduce el tiempo de diseño).
Una definición establece que en un diseño ASIC estructurado, las máscaras de las capas lógicas están predefinidas por el vendedor del ASIC (en algunos caso por un tercero). El diseño se realiza al crear capas de metal hechas a la medida, que crean conexiones entre los elementos predefinidos de las capas inferiores. La tecnología de "ASIC estructurados" es vista como el puente que une la barrera entre las FPGA y los diseños ASIC de celdas estándares. Debido a que sólo un número pequeño de las capas del chip deben ser producidas a la medida, los "ASIC estructurados" tienen costos fijos menores que los chip basados en celdas estándares o hechos totalmente a la medida, los que requieren producir un conjunto completo de máscaras para cada diseño. Esto corresponde, en efecto, a la misma definición de una Matriz de Puertas.
Lo que hace a los ASIC estructurados diferente de las matrices de puertas es que en estas últimas, las capas metálicas predefinidas sirven para acelerar el proceso de fabricación. En los ASIC estructurados, la metalización predefinida sirve principalmente para reducir el costo del conjunto de máscaras, y también se utiliza para reducir el ciclo de desarrollo. Por ejemplo, en un diseño basado en celdas o en matriz de puertas, el usuario a menudo debe diseñar la alimentación, el reloj y las estructuras de prueba; éstas están predefinidas en la mayoría de los ASIC estructurados, lo que se traduce en un ahorro de tiempo y costos. Asimismo, las herramientas utilizadas para los ASIC estructurados pueden reducir sustancialmente y facilitar el diseño, ya que la herramienta no tienen que realizar todas las funciones necesarias para los ASIC basados en celdas. En algunos casos, los vendedores de ASIC estructurados requieren de herramientas hechas a la medida para usar sus dispositivos, lo que también permite acelerar la manufactura.
Otro aspecto importante sobre los ASIC estructurados es que permiten el uso de IP que son comunes a ciertas aplicaciones, o segmentos de la industria, en vez de ser diseñados. Al construir la IP directamente en la arquitectura, el diseñador puede nuevamente ahorrar tanto tiempo como dinero, comparado con el diseño de IP en ASIC basadas es celdas.
El mejor consejo es leer cuidadosamente como el vendedor define un ASIC estructurado en particular, ya que existen diferencias significativas entre las ofertas de los distintos vendedores.

## Biblioteca de celdas, diseño basado en IP, macros

Las bibliotecas de celdas de primitivos lógicos, comúnmente son suministrados por el fabricante del dispositivo como parte de sus servicios. Aunque no tienen un costo adicional, se entregan bajo un acuerdo de confidencialidad y serán considerados como propiedad intelectual del fabricante. Usualmente su diseño físico estará predefinido, por lo cual se denominan "macros duros".
Pero lo que la mayoría de los ingenieros entiende como "propiedad intelectual" son los núcleos IP, diseños comprados a terceros como subcomponentes de un ASIC más grande. Pueden suministrarse como una descripción HDL (a menudo denominadas "macros blandos"), o como un diseño totalmente ruteado que puede ser impreso directamente en la máscara del ASIC. Actualmente muchas organizaciones venden estas IP prediseñadas, y las organizaciones más grandes pueden tener un departamento completo para producir estas IP para el resto de la organización. Por ejemplo, uno puede comprar CPUs, ethernet, USB o interfaces telefónicas. De hecho, el amplio rango de funciones disponibles en la actualidad es un factor significativo en el aumento de la electrónica en los años 1990 y 2000; como crear propiedad intelectual toma mucho tiempo y dinero, su reutilización y desarrollos posteriores, reduce drásticamente los ciclos de los productos y mejora su calidad.
Los macros suaves a menudo no dependen del proceso, es decir, pueden ser fabricados en un amplio rango de procesos de manufactura y por diferentes empresas.
Los macros duros están limitados a un proceso, y es necesario esfuerzos adicionales para migrarlos a otros procesos o empresas.

## FPGA

Las FPGA (Field Programmable Gate Array, matriz de puertas programables) se asemejan a las matrices de puertas pero son programables por el usuario en lugar de fabricadas a medida para cada aplicación. Aunque su densidad siempre será menor consiguen integrar un gran número de puertas, en el 2008 son asumibles diseños en 65nm con más de 10 millones de puertas, decenas de megabits de RAM e incluso varios procesadores, esto las hace suficientes para la mayoría de aplicaciones. La ley de Moore y el creciente coste de inversión de las tecnologías juega a su favor y hace que su cuota de mercado crezca consistentemente cada año. Ver el artículo dedicado a las FPGA

## Obleas multiproyecto

Algunos fabricantes ofrecen obleas multiproyecto, MPW por sus siglas en inglés, como un método para obtener prototipos de bajo costo. A menudo llamados ""shuttles"", estos MPW, que contienen varios diseños, se fabrican a intervalos regulares, comúnmente con poca responsabilidad por parte del fabricante. El contrato incluye el ensamblaje de un puñado de dispositivos. El servicio incluye el suministro de una base de datos de diseños físicos. El fabricante es a menudo llamado como "fundición de silicio", debido a la poca participación que tienen durante el proceso.

## Fabricantes de ASIC (Fundiciones)

* Chartered
* IBM
* LSI Logic
* Microchip Technology
* SMIC
* Texas Instruments
* TSMC
* UMC
* Agere Systems