You are on page 1of 58

APPLICATION SPECIFIC

INTEGRATED CIRCUITS
(ASIC)
Ph.D. Alex Cartagena Gordillo
Microelectrnica Universidad Catlica de Santa Mara

Introduccin

Es posible alojar un gran nmero de dispositivos


en un rea de chip
Es posible la integracin de un sistema completo
en un chip (SOC) consistente en cientos de
millones a pocos billones de transistores
No slo se ensamblan un gran nmero de
compuertas lgicas
El problema es: cmo manejar la complejidad
del diseo? y cmo lidiar con los efectos de
escalamiento y parsitos que reducen el
rendimiento dramaticamente?

Introduccin

Tales CIs combinan la capacidad del


procesamiento de seales con microprocesadores
o microcontroladores y memorias
El procesamiento de seales cuida de la potencia
computacional
El microprocesador controla el proceso y puede
realizar pequeos clculos
Las memorias almacenan cdigos del programa y
muestras de datos
El desarrollo de estos sistemas heterogneos
requiere el trabajo de cientos de aos-hombre

Introduccin

Gran cantidad de las ganancias en IC viene del


mercado de bajo fin, consistente en IC de baja
complejidad, originalmente controlado por los
grandes vendedores de IC
En los 80s y 90s ocurri un cambio y el mercado
de bajo fin es ahora dominado por los ASICs
Los ASICs son hechos para un usuario final nico
y dedicados a una aplicacin particular
Los ASICs implementan funciones especificas del
cliente hay varias maneras de lograrlo. Puede ser
parte del CI o puede ser hecho programando
dispositivos especiales

Introduccin

Los ASICs no incluyen CIs cuya funcionalidad es


determinada slo por el fabricante. Estos se
llaman Application Specific Standard Products
(ASSPs), por ejemplo convertidores D/A en
reproductores de DVD
Los ASICs son motivados por el cliente y son
hechos segn los requerimientos de un solo
ciente
User Specific Integrated Circuits sera un mejor
nombre

Introduccin

1.

El tiempo de fabricacin de un ASIC es el perodo


entre el momento cuando el cliente entrega la
descripcin lgica del CI y el momento que el
vendedor entrega las primeras muestras
Los ASICs son esenciales para el desarrollo de
muchos sistemas en tiempo real, donde el diseo
slo puede verificarse en el hardware fabricado
Hay muchos segmentos de mercado donde se
pueden distinguir diferentes tipos de ASIC
Automotriz: redes, infotainment, GPS, monitoreo
de presin de neumticos, electrnica de
carrocera

Introduccin
2.

3.

4.
5.

6.
7.
8.
9.

Comunicaciones mviles: telfonos mviles


(GSM, UMTS), modems, bucles inalmbricos
Mdicos: monitoreo de pacientes, diagnstico,
ultrasonido
Displays: LCD TV, flat panel, proyeccin de TV
Cliente digital: CD/DVD, MP3, audio, TV, set-top
box, codificador/decodificador
Conectividad: WLAN, Bluetooth, USB, FireWire
Identificacin: smart cards y RFID
Industrial: robtica, control de motor/servo
Militar: imagen, radar y sonar, navegacin

Introduccin

Herramientas adecuadas de computer aided


design (CAD) son esenciales para la realizacin
de los ASICs por la complejidad del diseo y la
oportunidad de mercado
Estn basados en libreras de clulas estndares,
propiedad intelectual y herramientas de mapeo de
aplicacin
La convergencia de los dominios de consumo,
computacin y comunicacin acelera la
introduccin de nuevas caractersticas en un solo
chip, requiriendo un mayor rango de estndares y
funciones para el incremento del mercado

Introduccin

Adicionalmente, hay un crecimiento dramtico en


la complejidad del software embebido, el cual
puede tomar ms del 50% del costo total,
particularmente en diseo multi-procesador
Esto pone altas demandas en la flexibilidad y reusabilidad de una plataforma a lo largo de varias
aplicaciones derivadas
Requiere herramientas de depuracin y anlisis,
IPs de compilacin rpida y verificacin eficiente

Circuitos Integrados Digitales

Los ASICs se clasifican de acuerdo a la tcnica


de procesamiento o programacin usada en su
realizacin.

Figura 1. CIs digitales

Definiciones

ASSP: Application Specific Standard Products,


son adecuados para una sola aplicacin pero su
disponibilidad no es un solo cliente
Core: Bloque de construccin pre-diseado por la
industria, RAM, ROM, microprocesador, etc
Custom: Todas las mscaras son nicas para la
aplicacin de un cliente
HDL: Hardware description language, lenguaje
usado para la descripcin formal del
comportamiento y especificacin de los circuitos
integrados

Definiciones

1.
2.
3.

IP: Intellectual property, asociado a componente


virtual introducido por la Virtual Socket Interface
Alliance (VSI) para estandarizar el re-uso de
conceptos, interfaces, conceptos de prueba y
soporte, etc. Los cores o IP pueden ser
Soft core
Firm core
Hard core

Definiciones

Figura 2. Comparacin de cores soft, firm y hard

Definiciones
o

o
o

Ejemplos de IP son:
Microprocesadores, usan software para controlar el
resto del sistema, Intel, Sparc, PowerPC, etc
Digital signal processors (DSP), manipulan audio,
video y secuencias de datos, TMS320, DSP 56000,
DSP16000, etc
(F)PGA- aceleradores, decodificadores, correctores
de errores, encriptacin, grficas, etc
Memorias, Virage, Artisan, embebidas, etc
Interfaces, conexiones externas, USB, FireWire,
UART, etc
Anloga, A/D, D/A, PLL, etc

Definiciones

PLD: Programmable Logic Devices, son CIs que


se personalizan volando fusibles dentro del chip o
programando clulas de memoria en el chip.
Pueden ser permanentes o revesibles
Re-uso
RTL: Register transfer level
Semi-custom: no todas las mscaras son nicas
para la aplicacin de un cliente
Standard product: incluye microprocesadores,
memorias, compuertas lgicas, etc

Definiciones

Usable gates: el nmero de compuertas que


pueden ser interconectadas en un diseo medio
Utilisation factor: la razn entre la parte de un
rea que esta ocupada por clulas lgicas
funcionales y el rea total

Nivel de Abstraccin para VLSI

Hoy, la mayora de los diseos complejos de VLSI


y ASICs son sncronos, en el cual una o ms
seales de reloj controlan el flujo de datos hacia y
desde el chip.
En el chip, los datos son sincronizados a travs
de flip-flops que estn controlados por un reloj
Los flip-flops almacenan temporalmente los datos
y los liberan a demanda
En cualquier tiempo las posiciones y valores de
los datos son conocidos (por simulaciones)

Nivel de Abstraccin para VLSI

Figura 3. Representacin del camino lgico de un diseo sncrono

Nivel de Abstraccin para VLSI

La implementacin de un sistema completo en


uno o ms CIs comienza con una especificacin a
nivel de abstraccin del sistema
Luego es analizada y transformada en un grupo
de algoritmos u operaciones.
A continuacin, una arquitectura ptima que
ejecuta eficientemente estas operaciones debe
elegirse
Un ejemplo es un procesador de seales, quien
toma nmeros de la memoria, los procesa y los
vuelve a almacenar en memoria.

Nivel de Abstraccin para VLSI

El diseo de un CI comprende la transformacin


de una especificacin en un esquema
El esquema debe ser adecuado para la derivacin
de todos los pasos del proceso requeridos para la
construccin de los mdulos funcionales del CI y
sus interconexiones
Claramente el camino del diseo comienza arriba
y termina abajo. El proceso top-down se aprecia
en la figura 4

Nivel de Abstraccin para VLSI

Figura 4. Niveles de abstraccin en los caminos de diseo e


implementacin/verificacin de circuitos VLSI

Nivel de Abstraccin para VLSI

Las fases de diseo se acompaan por diferentes


niveles de abstraccin, que limitan la complejidad
de del diseo
El diseo top-down permite tomar decisiones a
travs de los niveles y realimenta acerca de las
especificaciones
El camino bottom-up demuestra la viabilidad de la
implementacin de bloques (crticos). Este
proceso comienza en el nivel de esquema de una
sola parte y termina con la verificacin de todo el
esquema IC

Nivel de Abstraccin para VLSI

Los niveles de abstraccin usados en el diseo


estn en la tabla 1 mostrando su complejidad

TABLA 1. Complejidad del diseo a diferentes niveles de


abastraccin

Nivel de Sistema

Est definido por la especificacin de su


comportamiento requerido
Puede ser multi-procesador o un sistema
heterogneo compuesto por microprocesador,
DSP, analgico, control, memoria y perifricos
Hoy en da las arquitecturas heterogneas
incluyen Graphical Processing Unit (GPU) para
incrementar la velocidad de procesamiento de
grficos en uno o dos rdenes de magnitud.

Nivel de Sistema

Figura 4. System on Chip; un ejemplo de sistema heteroneo.

Nivel de Sistema

Hoy en da hay una tendencia a arquitecturas con


cores multi-procesador e incluso arquitecturas
construdas de un limitado nmero de cores
El ltimo caso es una arquitectura construida de
multiples cores iguales (tiles) para crear sistemas
homogeneos.
La figura 5 muestra el esquema de un procesador
masivamente paralelo para anlisis de escenas de
video como un diseo homogneo, opuesto a un
sistema heterogneo (derecha)

Nivel de Sistema

Figura 5. Ejemplo de un diseo, consistente de un mltiples idnticos cores y


un chip heterogeneo consistente de varios cores diferentes.

Nivel de sistema

Decisiones del sistema tomadas en el nivel ms


alto tiene mayor impacto en el rea y parmetros
de rendimiento
A nivel de sistema se toman decisiones de si
implementar funciones en hardware o software
Los filtros frecuentemente se hacen en software
Es deseable subdividir cada chip en sub-blocks
Se distinguen buses de datos y de control
Cada bloque en el bus de datos debera poseer
su propia unida de control

Nivel de Sistema

Figura 7. Diagrama de bloques de un procesador de seal

La estructura de doble bus permite el


procesamiento paralelo de datos, para alto
rendimiento

Nivel Funcional

Comprende el comportamiento de diferentes


elementos de procesamiento y otros cores del
sistema
En la figura 7 tenemos un ALU, un potencimetro
digital, una RAM, una ROM y elemento de I/O
RAMs, ROMs y elementos I/O usualmente no son
muy complejos en su comportamiento
Hay algunas herramientas, principalmente en el
desarrollo, que permiten una descripcin de
bloques complejos a nivel funcional

Nivel RTL (Register Transfer Language)

La mayora de sistemas se pueden considerar


como registros que almacenan datos binarios
operados por circuitos lgicos entre stos
Las operaciones pueden describirse en RTL y
puede incluir manipulaciones aritmticas
complejas. La descripcin RTL no necesariamente
est relacionada con la realizacin final
Describir una funcin en este nivel es difcil
Un lnea en las especificaciones (codificacin
MPEG4) tomar muchas lneas de cdigo RTL y
su verificacin es extremadamente difcil

Nivel RTL (Register Transfer Language)

La simulacin lgica y/o emulacin puede ayudar


durante la verificacin pero no garantiza
totalmente su funcionalidad
Para describir un potencimetro digital
Z=kA+(1-k)B
cuando k=0, Z ser igual a B, cuand k=1, Z ser
igual a A. No hay informacin acerca del nmero
de bits en los cuales A, B y k se realizarn
Esto debe decidirse a este nivel
Otra eleccin debe ser que clase de multiplicador
debe realizar las multiplicaciones

Nivel RTL (Register Transfer Language)

1.

Hay muchas alternativas para los multiplicadores


Multiplicador Serie-Paralelo: La entrada Ra es bitserial y la entrada Rb es bit-paralelo

Figura 8: Multiplicador iterativo bit serial

Nivel RTL (Register Transfer Language)

2.

Durante la ejecucin, el producto parcial aparece


en Rc, El cual fue inicialmente cero
Si ai=1, Rb bits deben ser sumados al Rc
existente y luego desplazados una posicin a la
izquierda. Es una operacin de desplaza y suma
Si ai=0 y los Rb bits slo tienen que desplazarse
una posicin a la izquierda en una operacin de
desplazamiento y un cero LSB aadido a ste
Multiplicador paralelo, Los bits de ambas
entradas Ra y Rb se procesan simultneamente
Esta operacin bit-paralelo tiene otra
realizacin

Nivel RTL (Register Transfer Language)

Una opcin es el multiplicador de arreglo o


paralelo

Figura 9. Un multiplicador paralelo

I.
II.

Este multiplicador necesita la eleccin para la


suma de productos parciales. Este puede ser:
El rbol Wallace
Arreglo Carry-Save

Nivel RTL (Register Transfer Language)

Figura 10. rbol de adicin


Wallace

Figura 11. Arreglo multiplicador con


arreglo carry-save

Nivel RTL (Register Transfer Language)

Figura 12. Descripcin RTL-VHDL del potencimetro

Nivel Lgico-Compuerta

Descripcin RTL puede especificarse en VHDL o


Verilog
Luego es mapeado a bibliotecas de clulas
(compuertas lgicas). Esto se hace una
herramienta de sntesis que transforma cdigo
VHDL a una netlist
Una netlist contiene una lista de las clulas de
biblioteca usadas y como estn conectadas
Ejemplos de las clulas de biblioteca son: AND,
NAND, flip-flop, full-adder, etc.

Nivel Lgico-Compuerta

Figura 13. Netlist del potencimetro despus de la sntesis con lmite de 14 s

Nivel Lgico-Compuerta

1.

Como ejemplo, un full adder realiza la adicin


binaria de tres bits de entrada (x, y, z) y produce
una suma (S) y lo que lleva (C).
Funciones Booleanas que realizan esto incluyen
Generacin de S y C directamente de x, y, z
C = xy + xz + yz
S = xyz + xyz + xyz + xyz

2.

Generacin de S de C

3.

Generacin de S y C con OR exclusiva

C = xy + xz + yz
S= C ( x + y + z ) + xyz

Nivel Lgico-Compuerta

Figura 13. Implementacin lgico-compuerta bsica de un full-adder

Nivel Transistor

A este nivel, el full adder elegido debe ser


mapeado a transistores
En algunos diseos el nivel lgico-compuerta se
obvia y el cdigo se sintetiza directamente a
transistores
La descripcin a nivel de transistor depende de la
tecnologa elegida y estilo de lgica elegida, por
ejemplo CMOS
El nivel transistor de la compuerta lgica depende
de la velocidad, rea y pontencia

Nivel Transistor

Figura 14. Realizacin de CMOS esttica del full adder seleccionado

Nivel de Esquema

La implementacin a transistores elegida debe


ser trasladada a una descripcin a nivel de
esquema en el nivel de abstraccin ms bajo del
diseo
La mayora de veces este esquema lo hacen
especialistas, quienes desarrollan bibliotecas
completas de diferentes clulas en cierta
tecnologa
Para tolerar aplicaciones con alto rendimiento,
baja potencia y pocas prdidas, hoy en da una
librera puede consistir en 1500 clulas distintas

Metodologa de Diseo ASIC Basado en Clulas

Mayores Tareas y Personal Requerido


en un Proyecto de Diseo de un Chip

1.
2.
3.
4.

Un proyecto de un chip ASIC comprende


Investigacin de mercado
Definicin del producto y anlisis a nivel de sistema
Validacin a nivel de sistema
Implementacin del Chip
El flujo ASIC comienza con comienza con
codificacin RTL y la verificacin funcional
Continua con la sntesis lgica y ubicacin y ruteo
Termina con verificacin lgica final, verificacin de
temporizacin, verificacin fsica y grabado en
silicio

Mayores Tareas y Personal Requerido


en un Proyecto de Diseo de un Chip

1.
2.

La implementacin de un chip es complicado y


requiere muchas iteraciones entre los varios
pasos antes que sea aceptable
Se requieren grandes recursos: licencias de
herramientas CAD, potentes CPUs con grandes
memorias y espacio de disco adems de
trabajadores talentosos y dedicados
Los ingenieros deben
Definir el chip a nivel de sistema
Ingenieros de diseo de IC que compongan el
cdigo RTL para los bloques digitales y diseen
los circuitos de componentes anlogos

Mayores Tareas y Personal Requerido


en un Proyecto de Diseo de un Chip
3.

4.

5.
6.

7.
8.

9.

Verificar la funcionalidad tanto a nivel de bloque


como de chip
Asegurar que el chip es probable para produccin
en volumen
Convertir el plano en papel en hardware real
Hacer que un chip de silicio sea un dispositivo
electrnico til
Hacer diseos de referencia para clientes
Escribir programas de prueba para pruebas de
produccin
Coordinar las operaciones entre el diseo y
fabricacin y asegurar el flujo suave de la
produccin de un chip

Paso en la Construccin de un Chip

La codificacin RTL es traducir la intencin de


diseo, descrito en Ingls o Chino en un lenguaje
de computador simulable
Simulaciones pueden realizarse para verificar la
intencin de diseo
Debe ser posible que el cdigo RTL sea
convertido en hardware exitosamente en pasos
posteriores
El cdigo RTL debe ser sintetizable
Los mayores lenguajes usados son Verilog y
VHDL

Paso en la Construccin de un Chip

La funcin de verificacin es el proceso de


verificar que el cdigo RTL pueda realizar las
funciones definidas en las especificaciones del
producto
Para esto se usan simulaciones con la ayuda de
bancos de prueba, los que tambin deben ser
creados que cubran la mayor cantidad de
escenarios de operacin del chip posibles
La idea de verificacin es encontrar errores
La sntesis lgica convierte el cdigo RTL en
hardware de circuito real por medio de
sofisticados algoritmos

Paso en la Construccin de un Chip

La tarea principal en proceso anterior es mapear


las funciones lgicas definidas en el cdigo RTL a
clulas estndar en la librera ASIC, donde una
clula estndar tiene una funcin predefinida. El
resultado es un netlist que tiene las referencias de
las clulas usadas en cualquier diseo
Despus de la ubicacin y ruteo, debe verificarse
funcionalmente que la entidad fsica resultante
pueda an conseguir la funcionalidad definida en
el cdigo RTL
Esta entidad fsica debe ser revisada si cumple
con las reglas de manufacturabilidad

Paso en la Construccin de un Chip

El paso final es el grabado, en el cual los datos de


diseo son generado en cierta forma y enviados a
la fbrica para su fabricacin

Flujo de Diseo de un ASIC

Dos requerimientos crticos en el proceso de


creacin de un chip es crearlo correctamente y
rpido
Se sabe que hacer un ASIC de varios millones de
compuertas cuesta millones, y hacerlo
incorrectamente es intolerable
Debe estar hecho en un tiempo requerido, de otra
manera perder la oportunidad de mercado
Afortunadamente existe un flujo de diseo en el
que los ingenieros de implementacin de CIs
pueden confiar

Flujo de Diseo de un ASIC

1.
2.

Un flujo de diseo es una secuencia de


operaciones que transforman la intencin del
diseador de IC (usualmente en RTL) a un
esquema GDSII de datos.
Como un flujo de diseo es una envoltura que
une muchos programas de software juntos. La
ejecucin de estos softwares se arreglan de
acuerdo a la creacin fsica de hardware
Las tareas detalladas son:
Sntesis lgica
Insercin de diseo para pruebas

Flujo de Diseo de un ASIC


3.

4.
5.
6.
7.
8.
9.
10.
11.

Revisin de reglas elctricas en el netlist a nivel


de compuertas
Planeamiento de piso
Tamao del chip de silicio
Estructura I/O
Particin de diseo
Ubicacin macro
Estructura de la distribucin de potencia
Estructura de la distribucin de reloj
Revisin preliminar (descarga electrosttica, etc)

Flujo de Diseo de un ASIC


Ubicacin y ruteo
Extraccin y reduccin parsita
Generacin del formato de retardo estndar
Revisiones varias

12.
13.
14.
15.

Anlisis de la temporizacin esttica


Anlisis del eco
Anlisis de migracin electrnica
Integridad del xido de compuerta
Descarga electrosttica
Antena

Flujo de Diseo de un ASIC


16.
17.

18.

Generacin del esquema final


Revisin de las reglas de fabricacin, revisin
LVS
Generacin del patrn

GDSII Gerber Data Stream Information Interchange