1.- ¿Que es un ASIC?

Un Aplication Specific Integrate Circuit o circuito integrado de aplicación específica, mejor conocido como ASIC por sus siglas en ingles, es un circuito integrado configurable que ha sido diseñado para un propósito u aplicación específica para un producto electrónico específico.

Con los últimos avances en las tecnologías de miniaturización y las herramientas de diseño, la complejidad máxima, y por ende la funcionalidad, en un ASIC ha crecido desde 5.000 puertas lógicas a más de 100 millones. Los ASIC modernos a menudo incluyen otros elementos prediseñados tales como:

  • Procesadores de 32-bit.
  • Bloques de memoria RAM, ROM, EEPROM y memoria flash.
  • DSP.
  • Amplificadores analógicos.
  • Otros tipos de módulos caracterizados por el consumidor tales como interfases o codificadores.

Este tipo de ASIC frecuentemente es llamado Sistema en un 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 [1]. Los niveles de configuración de un ASIC pueden estar en el campo de lo físico (construcción del hardware) o a nivel lógico (configuración por software). Ello depende del subconjunto o tipo de ASIC que se emplee en la figura 1 podemos observar algunas vistas de un ASIC.


Figura 1: Vista interna de unos ASIC´s

2.- Historia del ASIC

Desde los años 70, se ha llevado a cabo el desarrollo de la micorelectrónica creando nuevas tecnologías evolutivas para lograrlo, pero no fue sino hasta 1980 que los ingenieros de la compañía Ferranti, comenzaron a explorar las ventajas del diseño de un IC configurable o adaptable para un sistema o aplicación en particular mas allá de usar circuitos integrados estándar [2]. La microelectrónica crea el paso en el cual la implementación de IC's estándar puede lograrse utilizando funciones lógicas con uno o mas IC's configurables. Como la tecnología VLSI (Very Low Scale Integration) hace posible la construcción de un sistema con muchos componentes mas pequeños se pueden combinar muchos IC's estándares dentro de un IC configurable.

Ferranti empresa de Ukrania [3], fue la primera en producir los primeros arreglos de compuertas. La adaptación del arreglo se produce cuando es cambiada la mascara de interconexión metálica. Las ULA (Uncommitted Logic Array) consideradas como uno de los primeros IC´ssemiconfigurables desarrolladas, en principio tenían unos cientos de compuertas para luego extender la gamma y hacer otros modelos que incluyen elementos de memoria RAM.

Tipos y construcción de los ASIC´s

Estos IC's están hechos sobre una oblea de silicio de algunos micrones de grosor, cada oblea mantiene unos cientos de IC's llamados muertos [4]. Los transistores y el cableado están hechos de muchas capas cuyo número está entre unas 10 y 15 todas distintas entre sí, dispuestas una sobre la otra e interconectadas según los requerimientos. Cada capa tiene un patrón que es definido utilizando una mascara similar a una diapositiva de fotografía. La primera mitad de las capas definen a los transistores y la segunda mitad a las interconexiones entre ellos.

Algunos de los tipos mas destacados de ASIC´s los cuales serán descritos más adelante son:


  • Completmente configurables.
  • Semiconfigurables.
  • Dispositivos programables.

4.- ASIC´s Semiconfigurables

Para el caso de los ASIC mas utilizados tenemos a los semiconfigurables. En estos las celdas lógicas ya han sido preconfiguradas y solo pueden alterarse las configuraciones de todas las máscaras de interconexión. Al utilizar este método, el trabajo del diseñador se hace mucho más fácil. Aun para esta clase de ASIC's existen dos subcategorias las cuales son:

  • ASIC's basados en celdas estándar.
  • ASIC's basados en arreglos de compuertas.

ASIC's basados en celdas estándar (Standard-Cell-Based ASICs).

En Japón es un termino conocido coloquialmente como CBIC pronunciado como "sea-bick". Utiliza celdas lógicas prediseñadas tales como compuestas AND, compuertas OR, multiplexores y flip-flop's, se les conoce como celdas estándar [4]. en la figura 2 puede un esquema de un CBIC y en la figura 3 un esquema real de un CBIC hecho con un programa de diseño para ASIC.

Figura 2: ejemplo esquema interno de un CBIC.


Figura 3: Vista de un CBIC hecho con un programa de diseño.

Las áreas de las CBIC conocidas como bloques flexibles están compuestos por columnas de celdas estándar como una pared de ladrillos. Las áreas de las celdas estándar pueden ser utilizadas en combinación con celdas mucho más grandes o quizás con microcontroladores o microprocesadores conocidos como megaceldas. Las megaceldas también son llamadas megafunciones, bloques completamente configurables, macros de nivel de sistemas (SLM's), bloques fijos, núcleos, o bloques de funcionalidad estándar (FSB's).

Los diseñadores de estos ASIC's solo definen el lugar de las celdas estándar y la interconectividad dentro de un CBIC. Sin embargo, la celda estándar puede ser ubicada en cualquier lugar de la pastilla de silicio; esto permite que todas las mascaras de un CBIC puedan ser configurables para un consumidor en particular. La ventaja de CIBIC es que los diseñadores ahorran tiempo y reducen el riesgo al utilizar librerías de celdas precaracterizadas y probadas, diseñadas utilizando las técnicas de una celda completamente configurable. Adicionalmente cada celda estándar puede ser optimizada individualmente. Durante el diseño de cada celda de la librería, cada transistor ha sido elegido para maximizar la velocidad y el área que ocupa en el IC. La desventaja es el tiempo o costo de diseño o la compra de la librería de celdas estándarizadas y el tiempo que requiere fabricar todas las capas del ASIC para el nuevo diseño.

El diseño de celdas estándar permite la automatización del proceso de ensamble de un ASIC. Grupos de estas celdas pueden acomodarse en forma de columnas, las columnas forman pilas verticales para formar a su vez bloques flexibles rectangulares. Puede interconectarse a otro bloque de celdas estándar de otro bloque o con otros bloques completamente configurables. Por ejemplo, puede desearse incluir una interfaz específica o un microcontrolador junto con algo de memoria. El bloque del microcontrolador puede ser una megacelda fija, a partir de los bloques puede generarse memoria utilizando un compilador de memoria y un controlador de memoria personalizado que puede construirse dentro de un bloque de celdas estándar.

ASIC's basdos en arreglos de compuertas (Gate Array).

En un ASIC's basado en arreglo de compuertas los transistores están predefinidos en una oblea de silicio. Los patrones de definición de los transistores de un arreglo de compuertas y el elementos mas pequeño es replicado para hacer la base del arreglo, así como los dibujos de la porcelana en el piso, a este diseño primario se le llama la celda primitiva. Solo la capa superior tiene definida las interconexiones entre los transistores. Para distinguir este tipo de arreglo de compuertas de otros tipos de arreglos de compuertas este frecuentemente es llamado mascara de arreglo de compuertas o MGA por sus siglas en ingles [4]. El diseñador elige de una librería de arreglo de compuertas celdas precaracterizadas o prediseñadas. Las celdas lógicas de la librería de arreglo de compuertas frecuentemente son llamadas macros. La razón de esto es que, el diseño layout de la celda base es el mismo para todas y la interconexión entre ellas es lo que puede configurarse libremente, el diseño de un ASIC con arreglo de compuertas se hecho en un programa de diseño se muestra en la figura 4.

Figura 4: vista del diseño de un ASIC con arreglo de compuertas.

Puede hacerse la difusión entre varias obleas de silicio de varios consumidores según sea necesario. Utilizando las obleas de silicio prefabricadas se reducen los tiempos de metalización requeridos para hacer un MGA. Algunos de los diferentes tipos de ASIC's basados en arreglo de compuertas existentes son:

  • Arreglo de compuertas acanalados.
  • Arreglo de compuertas sin acanalado.
  • Arreglo de compuertas estructurado.

Estos términos son dados a los ASIC's de acuerdo a su modalidad de construcción, por ejemplo, cuando los transistores están acomodados en un MGA dejando un espacio entre las columnas de transistores para cablear se refiere al primer termino, en caso de no existir dicho canal entonces se utilizan las columnas de transistores no utilizados para el enrutamiento conexiones lo cual corresponde al segundo tipo. En un modelo estructurado de diseño se pueden observar ambos modos de construcción juntos dentro de un bloque configurable.

En la figura 5 puede observarse un arreglo de compuertas acanalado donde solo las interconexiones pueden ser configuradas, la interconexión utiliza espacios predefinidos entre las columnas de las celdas base y el tiempo de construcción puede tomarse entre dos días y dos semanas.

Figura 5: Esquema de un arreglo de compuertas acanalado.

En la figura 6 puede observarse la distribución de un arreglo de compuertas sin canales, aqui solo algunas de las mascaras de interconexión pueden configurarse. La densidad lógica es mucho más alta para este tipo de construcción.


Ffigura 6: Esquema de un arreglo de compuertas no acanalado.

En la figura 7 puede observarse un arreglo de compuertas estructurado, también es conocido como "masterimage", combina algunas de las características de los CBIC's y los MGA's. Una de las desventajas de los MGA's es el diseño fijo de la celda base del arreglo de compuertas, esto hace que la implementación de memoria sea de gran dificultad e ineficiente. En un arreglo estructurado de compuertas puede destinarse un área dedicada a una función específica lo cual resulta más cómodo para el diseño de celdas de memoria. En este tipo de arreglos solo las interconexiones son configurables y los bloques configurables pueden ser integrados al diseño.


Figura 7: Arreglo de compuertas estructurado.

En este último tipo de arreglos puede incrementarse el desempeño de un CBIC pero a un menor costo comparado con un MGA. Una desventaja de un arreglo de compuertas empotrado o embebido es que la función del elemento embebido es fija, por ejemplo, en un arreglo de compuertas empotrado que contiene 32 Kb de memoria, pero solo son necesarios 16 Kb de memoria entonces se desperdicia la mitad de la memoria. En la figura 8 puede observarse un diseño de un ASIC con arreglo de compuertas optimizado hecho en un programa de diseño.


Figura 8: Diseño de un ASIC con arreglo de compuertas optimizado.

Los ASIC's basados en arreglo de compuertas y los basados en celdas utilizan celdas predefinidas, pero la diferencia es que en una celda estándar puede cambiarse el tamaño de los transistores para optimizar el desempeño y la velocidad, pero el tamaño de los componentes en un arreglo de compuertas es fijo. Esto puede resultar en una disyuntiva entre el área de un arreglo de compuertas en el silicio.

3.- Los ASIC´s Completamente Configurable

Un ASIC completamente configurable tiene probablemente todos los elementos lógicos configurables y adicionalmente todas sus capas son configurables. Un microprocesador es un ejemplo de un de un circuito integrado completamente configurable, en él los diseñadores invierten muchas horas de trabajo para configurar completamente una sección de no mas de una micra cuadrada.

En este tipo de ASIC's se pueden diseñar una o todas las celdas lógicas, la circuitería o layout especificamente para un ASIC [4]. Esto posibilidad permite al diseñador dejar de lado la facilidad de usar celdas probadas y precaracterizadas para todo o parte del diseño. Esto es de provecho solo en caso de que las celdas lógicas existentes en las librerías no tengan propiedades deseables tales como velocidad de cálculo o si la celda es muy grande y consume mucha energía, puede darse el caso de que simplemente ninguno de los diseños disponibles de las celdas de los archivos o librerías sirvan para el propósito deseado. Cada vez menos IC's completamente configurables son diseñados puesto que existen problemas con ciertas partes especiales del ASIC que son muy difíciles de manejar.

Históricamente la tecnología bipolar ha sido utilizada para la precisión en funciones analógicas. La razón fundamental de ello es que en todos los circuitos integrados el apareamiento de las características entre los componentes de distintos IC's es mala pero entre los componentes de un mismo IC's es excelente. Para mejorar la diferencia entre ellos se procesan obleas de silicio por lotes donde se producen varios miles de IC's al mismo tiempo con mínimas diferencias de apareamiento entre si.

El apareamiento entre los transistores es crucial para la operación de un circuito. Para el diseño de IC's se deben localizar pares de transistores uno junto al otro. La física del dispositivo dicta que un par de transistores bipolares podría siempre aparearse mucho más que los transistores de tecnología CMOS del mismo tamaño.

La tecnología bipolar es empleada para el diseño de los ASIC's completamente configurables analógicos porque proporciona mejor precisión. Aunque la realidad es otra, a pesar de las malas propiedades del uso de la tecnología CMOS para la electrónica analógica su empleo se ha incrementado, dos razones de ello son:

  • Es la tecnología mas disponible en el mercado para fabricar IC's, muchos ASIC's estan construidos en esta tecnología.
  • Permite mucho mayor nivel de integración ya que se requieren funciones analógicas y digitales dentro de un mismo IC.

Por este motivo lo diseñadores de ASIC's han encontrado maneras de implementar funciones analógicas utilizando tecnología CMOS con técnicas que aprovechan la exactitud de los diseños analógicos bipolares, la tecnología se denomina BiCMOS.

5.- Ruteos y Capas de Interconexión

En los ASIC's modernos se utilizan dos, tres o más niveles de capas de metal para interconexión, esto permite que los cables crucen diferentes capas en la misma forma en que utilizamos el cobre en diferentes capas de un circuito impreso. En un CMOS de dos niveles las conexiones a las entradas de una celda estándar y las salidas pueden hacerse utilizando el segundo nivel de metal de interconexión. En la tecnología de tres niveles las conexiones pueden ser para la misma celda lógica. De esta manera se puede hacer un enrutamiento mucho más sofisticado tomando la capa extra de metal de la capa, en la figura 9 se muestra un ejemplo de la distribución de capas de un ASIC de esta categoria.

Figura 9: Vista del perfil de un ASIC

Una conexión que requiere atravesar una columna de celdas estándar emplea una pieza de metal que es utilizada para pasar una señal a través de una celda o un espacio vacío de una celda, a esto se le llama "feedthrough" su ubicación puede observarse en la figura 10.

Figura 10: Ruteo de un CBIC através de una celda.

Los buses VDD y GND dentro de la celda estándar normalmente usan el nivel mas bajo de interconexión. El ancho de cada columna de celdas estándar, pueden ajustarse para que puedan alinearse utilizando espaciadores. Los buses de energía son interconectados a rieles verticales de energía adicionales que se encuentran en la segunda capa. Usualmente el diseñador puede controlar el número y el ancho de los rieles verticales de energía conectados a las celdas estándar durante el diseño físico del dispositivo. Un diagrama de distribución del esquema de energía de un CBIC puede verse en la figura 11.

Figura 11: Distribución de pistas para una celda.

Todas las mascaras de un CBIC pueden ser configuradas, estas pueden albergar megaceldas tales como SRAM, SCSI, decodificadores MPEG y ser ubicadas en el mismo IC junto con celdas estándar. Las megaceldas pueden ser suministradas mediante librerías de la compañía que fabrica el ASIC junto con modelos completos que son mucho mas avanzados y que están en prueba. Las librerías de ASIC también suministran compiladores para generar DRAM flexible SRAM o bloques de ROM.

Para lógica que opera sobre múltiples señales a través de un bus de datos el uso de celdas estándar puede no ser el estilo de diseño de ASIC más eficiente. Algunas librerías de ASIC's proveen compiladores de rutas de datos que automáticamente generan lógicas de rutas de datos. Una librería de ruta de datos típicamente contiene celdas tales como sumadores, substractores, multiplicadores y ALU's.

Las librerías de celdas estándar o arreglo de compuertas pueden contener cientos de celdas logicas diferentes, incluyendo funciones combinacionales con múltiples entradas, así como latches y flip-flops con diferentes combinaciones de reset, preset y opciones de reloj. Las librerías de las compañías de ASIC's, proveen a los diseñadores un libro de datos en formato electrónico con todas las descripciones funcionales junto con los diagramas de tiempo para cada elemento contenido en sus librerías.

6.- Dispositivos Lógicos Programables PLD´s

Son IC's estándar de la familia de ASIC´s que están disponibles en configuraciones estándar desde catálogos de partes y se venden en grandes volúmenes a muchos consumidores. Sin embargo, los PLD's pueden configurarse o programarse para crear partes configurables para una aplicación específica, los PLD's utilizan diferentes tecnologías para permitir la programación del dispositivo. Entre las principales características de los PLD's se puede destacar:

  • No poseen mascaras o capas ni celdas lógicas configurables.
  • Rápido diseño.
  • Un solo gran bloque de interconexiones programables.
  • Poseen una matriz de macroceldas lógicas que usualmente consiste de un arreglo programable lógico seguido por un flip-flop o latch.

7.- Field Programable Gate Arrays FPGA

Cuando la complegidad del arreglo de compuertas programable se incrementa entonces se le denomina al ASIC como FPGA, y esta es la unica diferencia entre los PLD´s y el FPGA, de hecho algunas de las compañias que fabrican ASIC´s FPGA denominan a sus productos PLD´s complejos [4]. El FPGA es uno de los más nuevos miembros de la familia de los ASIC´s, su importancia creció rápidamente reemplazando al uso de la familia TTL en los sistemas de microelectrónica. Algunas de las características de este tipo de ASIC´s son:

  • Ninguna de las máscaras son configurables por el consumidor.
  • Se emplea un metodo para programar las interconexiones y las celdas lógicas básicas.
  • El núcleo es un arreglo regular de celdas lógicas básicas que puede implementarse como una logica secuencial a base de flip-flop´s.
  • Una matriz de interconexiones programables rodea a las celdas lógicas.
  • Celdas programables rodean al núcleo del dispositivo.
  • El diseño solo tarda algunas horas.