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