Sistemas Embebidos FPGA
Sistemas Embebidos FPGA
Sistemas Embebidos FPGA
Temario y Planificacin
Introduccin las FPGA (1) Modelado de Sistemas Combinacionales. Verilog. Entorno de desarrollo de xilinx. (5) Modelado de Sistemas Secuenciales. (5) Co-Diseo software hardware con Picoblaze (5) Proyectos (11)
Hardware y Software
La ctedra cuenta con los siguientes placas de desarrollo:
Spartan-3E Starter Kit (3 unidades, Digilent) donada por XUP (Xilinx University Program) Spartan-3 Starter Board (Digilent) donada por XUP Xilinx Spartan-3A EVALUATION KIT (Avnet) (propio) Virtex-II Pro Development System (Xilinx University Program) (Digilent) Virtex4 FX12 Evaluation Board (Avnet) con Audio/Visual Card (Avnet) (Propiedad del Grupo de Investigacin: Embebidos) Virtex-5 OpenSPARC Evaluation Platform (University Program OpenSparc) NetFPGA con VirtexII Pro 50 FPGA. Donado por empresa proveedora de Internet, interesada en el prototipo.
Hardware y Software
El software que utilizamos es : ISE Webpack 11.1 (xilinx.com) ModelSim PE Student Edition (model.com) Pueden bajarla directamente de xilinx, pues es gratuita, ojo! Bajar el webpack, ya que la herramienta completa (ISE Design Suite) NO es gratuita. (y pesa mucho mas)
Cuestiones Administrativas
Usaremos 27 clases, terico-prcticas. Comenzamos hoy, 28 de marzo y terminamos el 6 de julio. No se puede faltar mas de cinco veces.
Cuestiones Administrativas
Los docentes de la materia somos:
Patricia Borensztejn (Profesora): [email protected] Matias Lpez : [email protected]
La pgina de la materia es: http://www.dc.uba.ar/materias/disfpga/2012/c1 El material de la pgina se ir subiendo de clase en clase, versiones anteriores en: http://www.dc.uba.ar/materias/disfpga/2011/c2
Empecemos.
Introduccin
Sistemas Embebidos Que son los FPGA? En que se diferencian de un microprocesador? Origen de los FPGA: PLDs ASICs FPGA
Donde estamos?
Sistemas Embebidos
El mundo est lleno de ellos. Se pueden definir como todo sistema que NO es una PC de escritorio , ni un servidor, ni una workstation, ni una supercomputadora, ni un cluster distribuido, en fin, NO es un sistema programable de propsito general.
Sistemas Embebidos
El mercado de los productos embebidos es enormemente mas grande que el mercado de las PCs que lidera Intel, por ejemplo. Jim Turley, asesor de la industria de los embebidos, dice que aproximadamente el 0% de los microprocesadores que se fabrican, se usan en el mercado de las PC de escritorio. El 100% restante, se usan en el mercado de los embebidos. En los ltimos aos, se vendieron alrededor de 500 millones de microprocesadores para el mercado de las PCs y 10 mil millones para el mercado de los embebidos.
Es este artculo de Jim Turley, asesor de la industria de los embebidos, escrito en el ao 1999, el deca:
About zero percent of the world's microprocessors are used in computers. Yup. Every PC, Macintosh, engineering workstation, Cray supercomputer, and all the other general-purpose computers put together account for less than 1% of all the microprocessors sold every year. If you round off the fractions, embedded systems consume 100% of the worldwide production of microprocessors.
Jim Turley
En1999 se vendieron para el mercado de embebidos:
250 millones de microprocesadores de 32 bits 1000 millones de microprocesadores de 16 bits 1000 millones de microprocesadores de 8 bits 1000 millones de microprocesadores de 4 bits
Contra 100 millones para el mercado de computadoras (PCs, MACs, workstations y supercomputadoras)
Hoy, 10 aos despus, se vendieron 10 mil millones de procesadores para el mercado de los embebidos!
Sistemas Embebidos
Son sistemas de hardware y software, de propsito especfico embebidos en algn producto del mercado. Por ejemplo: Embebidos de la industria automotriz : navegador GPS, de la aviacin: control de aterrizaje automtico Embebidos de la industria de las telecomunicaciones: routers, modems Embebidos de la industria de las comunicaciones: telfonos celulares, palms, e-books Embebidos de la industria del hogar: control de heladeras, microondas, robots Etc, pero muchos etcteras.
es muy codiciado.
FPGA ISP
ASIC OTP
Microprocesadores y FPGA
Ninguno de los dos son circuitos dedicados. (no full custom) No estn diseados para una funcin especfica, sino que el usuario los programa. Los microprocesadores implementan funciones por software. Los FPGA lo hacen por hardware. (pero un procesador es, desde el punto de vista del diseador de procesadores (Intel, por ejemplo), un full custom ASIC!!)
Microprocesadores y FPGA
bits de configuracin instrucciones bits de configuracin
lgica
lgica
CPU
memoria
bits de configuracin
bits de configuracin
Programacin CPU:
lgica
lgica
Configuracin FPGA: Bits permanecen en el dispositivo que programan Un bit de configuracin controla un switch o un bit de lgica
Tecnologas de Programacin
Para poder programarlos necesitamos algn mecanismo que nos permita programar o configurar un chip de silicio preconstruido. Vamos a ver entonces las tecnologas de fabricacin que nos van a permitir programar (configurar) estos dispositivos.
Tecnologas de Programacin
Logic 1 Potential links a Pull-up resistors
NOT b
&
AND
y = 1 (N/A)
NOT
En la ausencia de links, todas las entradas a la puerta AND estan conectadas al valor lgico 1. Los pull-up resistors mantienen dbilmente el valor lgico 1. Para realizar una funcin hay que buscar un mecanismo que permita establecer uno o mas links.
Fbt
&
AND
y = 0 (N/A)
El dispositivo se fabrica con todos los enlaces en su lugar. Un enlace es un fusible. O sea que, en su forma no programada, la funcin valdr siempre 0 . Para remover los fusibles se aplican pulsos de un voltaje alto a las entradas.
&
AND
y = a & !b
Removiendo los fusibles sealados, la funcin implementada es y=a & !b Este proceso de remover los fusibles se llama programacin (tambin se llama blowing o burning) Los dispositivos son OTP, porque el fusible no puede recuperarse despus de haberse quemado.
Pull-up resistors
NOT b
&
AND
y = 1 (N/A)
NOT
En su estado no programado, el antifusible tiene una resistencia tan grande que puede considerarse un circuito abierto. Cuando se programa, (se dice que ha sido crecido (grown)) , aplicando pulsos de alto voltaje y corriente a las entradas del dispositivo.
Pull-up resistors
NOT b
&
AND
y = !a & b
NOT
Transistor Logic 0
Consiste de array de filas (row) y columnas Cada columna tiene un nico pull-up que intenta mantener a 1 esa columna Cada interseccin fila/columna tiene un transistor y una conexin potencial La ROM se preconstruye y la misma arquitectura puede usarse para mltiples clientes.
Transistor Logic 0
Se pre-construyen y, para adaptarlas a los requerimientos del cliente se utiliza una mscara fotogrfica para definir cuales celdas tendrn o no una conexin programada. Si la lnea de fila se activa, el transistor se activa y :
Si hay conexin, en la columna aparece el valor lgico 0 Si no hay conexin, en la columna sigue el valor 1del pullup.
Problema con las tecnologas basadas en fusible links y mscaras son OTP. Erasable Programmable EPROM (1971) : los transistores tienen una puerta adicional de polisilicio : puerta flotante En su estado no programado, la puerta flotante no est cargada y no afecta el normal funcionamiento del transistor. Al programar el transistor, se carga la puerta flotante, inhibiendo la normal operacin del transistor, y distinguiendo aquellas celdas que han sido programadas, de las que no lo han sido.
Para borrar la EPROM hay que quitarla del circuito. Problemas: mucho tiempo para ser borradas (20). Cuanta mas integracin, se necesita mas radiacin mas tiempo de exposicin.
En este caso, no es necesario el fusible. En su estado no programado, tal como se compra, todas las puertas flotantes estn descargadas. O sea, si la lnea se activa, se activa el transistor y la columna conduce 0. La programacin, al cargar la puerta flotante, inhibe la operacin del transistor, por lo tanto la columna conduce 1. Para descargar esa puerta, se utiliza radiacin ultravioleta.
Electrically Erasable Programmable ROM Necesita dos transistores, el normal se utiliza para el borrado. Son 2,5 veces mas grandes que los EPROM.
E2PROM Cell
FLASH: borran mas rpido que EPROM. Usan diversas arquitecturas, pero todas permiten ser borradas elctricamente. Estas arquitecturas con similares de las EEPROM.
SRAM
Tecnologas de Programacin
Technology Fusible-link Antifuse EPROM E2PROM/ FLASH SRAM
SRAM
Symbol
Predominantly associated with ... SPLDs FPGAs SPLDs and CPLDs SPLDs and CPLDs (some FPGAs) FPGAs (some CPLDs)
Tecnologas de Programacin
Feature
Technology node Reprogrammable Reprogramming speed (inc. erasing) Volatile (must be programmed on power-up) Requires external configuration file Good for prototyping Instant-on IP Security Size of configuration cell Power consumption Rad Hard
SRAM
State-of-the-art Yes (in system) Fast
Antifuse
One or more generations behind No
E2PROM / FLASH
One or more generations behind Yes (in-system or offline) 3x slower than SRAM No (but can be if required) No Yes (reasonable) Yes Very Good Medium-small (two transistors) Medium Not really
----
Yes
No
PLDs
SPLDs
CPLDs
PROMs
PLAs
PALs
GALs
etc.
PROMs (1970)
a b c Predefined link Programmable link
& & & & & & & &
!a & !b & !c !a & !b & c !a & b & !c !a & b & c a & !b & !c a & !b & c a & b & !c a & b & c
l l l
La programacin se puede realizar con cualquiera de las tecnologas vistas (fusibles, EPROM, EEPROM). Solo es configurable la matriz OR. tiles para ecuaciones con pocas entradas y muchos trminos producto.
Programmable OR array
&
w x
0 0 0 0 1 1 1 1
!a & !b & !c !a & !b & c !a & b & !c !a & b & c a & !b & !c a & !b & c a & b & !c a & b & c
l l l
Programmable OR array
& &
N/A N/A
l l l
Disponible a partir de 1975, se pueden programar los dos arrays. Se hicieron algunas variantes: arrays AND con arrays NOR. No mucho xito en el mercado Son tiles cuando diversas funciones usan o comparten trminos producto. Son mas lentas que las PROMS
Programmable OR array
&
N/A
& &
a & c !b & !c
l l l
a !a b !b c !c Predefined AND array w = (a & c) | (!b & !c) x = (a & b & c) | (!b & !c) y = (a & b & c)
Programmable OR array
&
a & b & c
Predefined OR array
l l l
Al revs de las PROM, la parte programable es la matriz AND Las GAL (Generic Array Logic) son variaciones de las PAL, mas sofisticados (EE) Todos estos dispositivos, aparecen en el mercado con una variedad de opciones: inversin de las salidas, salidas triestado, salidas registradas, etc. Adems de tener un nmero mas grande de entradas y salidas.
a !a b !b c !c
A finales de los 70, los inventores de la PAL, introducen el Mega-Pal, dispositivo con 4 Standard Pals interconectadas de alguna manera. No funcion. Consuma mucho. 1984: Altera (nueva empresa) introduce el CPLD basado en tecnologa CMOS y EPROM.
Proceso de Diseo
Como se diseaba un circuito usando PLDs?
Se realizaba un esquemtico o bien un diagrama de estados, todo en papel porque no existan las herramientas que hoy conocemos. El esquemtico se converta del papel a una tabla (con un formato especial, requerido por el dispositivo programador). Esta tabla indicaba que conexiones se deban programar. La tabla se tipeaba en un computadora y se bajaba luego al dispositivo programador. Cada vendedor de PLDs, obviamente, haba desarrollado su propio formato para el archivo, que solo serva para sus dispositivos.
PALASM
PALASM
opcional
TITLE Example PATTERN Simple REVISION A AUTHOR ECEN 220 COMPANY BYU DATE March 1, 1995 CHIP Example PAL2OL8 ;PINS ; 1 2 3 4 5 6 7 8 B A C D NC NC NC NC
obligado
9 10 11 12 NC NC NC GND
; 13 14 15 16 17 18 19 20 21 22 23 24 NC NC NC NC NC NC NC NC Z /X NC VCC
Equaciones booleanas Trace define que seales mostrar el simulador. SETF define el valor de las variables en cada simulacin.
EQUATIONS X=/A*B + A*B + A*/B + /A*/B*C Z=/A*B + A*B + A*/B + /A*/B*C SIMULATION TRACE-ON A B C /X Z SETF /A /B /C SETF /A /B C SETF /A B /C SETF /A B C SETF A /B /C SETF A /B C SETF A B /C SETF A B C TRACE-OFF
PAL20L8
Entradas (20) : 1..11; 13-14; 16..23 Salidas (8): 15..22 Algunas salidas (16..22) son triestado. Es decir, pueden ser configuradas tanto como entradas como salidas. Todas las salidas son negadas. Pin 12 es ground, Pin 24 es Vcc.
Esquema de la PAL
PAL 20 L 8
ASIC
Application Specific IC
Diseado para una funcin especfica. Contienen cientos de millones de puertas lgicas y pueden ser usados para crear funciones complejas. El proceso de diseo y construccin de un ASIC es largo y caro, y finaliza en su realizacin en silicio. No puede ser usado ni testeado antes de su fabricacin.
Fabricacin de un IC
Los transistores y sus conexiones se construyen mediante muchas capas (typical 10 to 15 in CMOS) puestas unas sobre las otra Cada capa tiene una forma especial definida por una mscara. Algunas de las capas o niveles forman transistores, otras los planos de conexin. Un aspecto importante de un IC es el tamao del mas pequeo transistor que puede ser fabricado: Este es medido en micrones (mm, 10-6 meter) Por ejemplo, decimos que un IC est construido con un proceso de 0.50 mm Tal cual como profetiz Moore, el proceso contina mejorando, o sea haciendose mas pequeo. En este momento, el proceso de miniaturizacin es menor que 0.1 mm (deep sub-micron)
ASICs
ASICs
Gate Arrays
Structured ASICs
Standard Cell
Full Custom
Increasing complexity
ASIC: Es un chip (circuito integrado, IC) diseado para una determinada aplicacin y para una determinada compaa. Full custom: hecho enteramente por encargo (a medida): desde componentes pequeos, a microprocesadores diseados y fabricados para una compaa especfica.
Gate Array
Gate Array: (1975) basado en la idea de celdas bsicas formadas por transistores y resistencias sin conexin. Cada fabricante de ASIC determina que incluir en una celda bsica, y construye chips presiliconados formados por arrays de celdas. (sea of cells). Los fabricantes definen una librera funciones lgicas (puertas primitivas, multiplexores, y registros) que son los que usan los ingenieros de la aplicacin. Los ingenieros disean hasta llegar a nivel de netlist. Luego se hace el mapeo, ubicacin y routing con las herramientas provistas por el fabricante. El resultado de este proceso son las mscaras con las cuales se crean los niveles de metalizacin que unirn las celdas bsicas entre s, as como los componentes dentro de las celdas bsicas.
Gate Level: el diseo se representa como una coleccin de puertas lgicas y funciones y conexiones entre ellas. Netlist: para poder usar el simulador, el diseo debe describirse de forma textual (archivos de texto)
BEGIN CIRCUIT=TEST INPUT SET_A, SET-B, DATA, CLOCK, CLEAR_A, CLEAR_B; OUTPUT Q, N_Q; WIRE SET, N_DATA, CLEAR; GATE GATE GATE GATE G1=NAND G2=NOT G3=OR G4=DFF (IN1=SET_A, IN2=SET_B, OUT1=SET); (IN1=DATA, OUT1=N_DATA); (IN1=CLEAR_A, IN2=CLEAR_B, OUT1=CLEAR); (IN1=SET, IN2=N_DATA, IN3=CLOCK, IN4=CLEAR, OUT1=Q, OUT2=N_Q);
END CIRCUIT=TEST;
Structured ASIC
(2002) Cada vendedor tiene su arquitectura. Cada dispositivo est formado por elemento bsico llamado mdulo (tiles) que contiene una mezcla de lgica prefabricada (multiplexores, puertas, lookup table) junto con uno o mas registros y posiblemente algo de RAM Un array (sea) de estos elementos se prefabrica sobre la superficie del chip. Adems, en los bordes de este mar de tiles (tejas, baldosas, ladrillo) hay bloques de RAM, generadores de reloj, etc. Cada dispositivo se particulariza mediante niveles de metalizacin, aunque muchos de estos niveles ya estn tambin predefinidos. Solo 2 o 3 niveles se deben aplicar. Reduccin de costos. Consumen mas que un standard cell. Tambien ocupan mas. (dos o tres veces mas).
LUT
Standard Cell
Como en el caso de Gate Arrays, el fabricante define un conjunto de bloques bsicos (multiplexores, registros, puertas, etc) que ofrece al ingeniero en forma de libreras. Tambin ofrece libreras que pueden incluir microprocesadores, elementos de comunicacin, funciones de ROM y RAM. Adems hay IP que los ingenieros pueden reusar. IP: Intellectual Property: bloques funcionales creados por algun otro. Se compran. Los ingenieros, con todos esos elementos hacen el diseo hasta llegar a nivel de netlist, que describe las puertas lgicas que usarn y sus conexiones. Las herramientas de diseo son, incluso hoy, muy sofisticadas) La diferencia con las Gate Arrays es que no hay nada prefabricado. Cada funcin se crea con el mnimo nmero de transistores necesarios, sin componentes redundantes. Mas eficiente uso del silicio que Gate Arrays.
FPGA
Hacia 1980, es evidente que hay un GAP entre el mundo de los IC. Por un lado, los dispositivos programables, muy sencillos pero muy configurables. Por el otro, los ASICs, soportando funciones complejas, pero muy caros, y muy costosos en tiempo de disear. Adems, una vez el diseo estaba hecho, quedaba congelado en el silicio. Para salvar ese GAP, Xilinx lanza al mercado en 1984, una nueva clase de IC: FPGA.
PLDs
ASICs
SPLDs CPLDs
The GAP
FPGA
Basados en el concepto de bloque lgico programable, que contiene una LUT, un registro y un multiplexor. Cada FPGA contendr un nmero grande de estos bloques. Utilizando SRAM todos los bloques se pueden programar para que realicen una funcin diferente.
a b c
3-input LUT
y mux flip-flop q
d clock
FPGA
Required function a b c & | y = (a & b) | !c y Truth table a b c 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 y 1 0 1 1 1 0 1 1 Programmed LUT
SRAM cells
1 0 1 1 1 0 1 1
8:1 Multiplexer
abc
Un FPGA est compuesto por un gran nmero de bloques lgicos islas rodeados por un mar de interconexiones programables. Adems, suele haber interconexiones globales de alta velocidad que atraviesan todo el chip. Y, entradas/salidas. Los FPGA son el puente entre los ASICs y los PLDs porque son altamente configurables, y, pueden ser utilizados para implementar funciones complejas. Pueden ser utilizados en diseos hbridos, junto con ASIcs. Los FPGA son arquitecturas de grano medio porque utilizan bloques lgicos, a diferencia de los ASIC que son grano fino porque se programan a nivel de transistor
ASIC FPGA
Anexos
Rendimiento y Consumo en microprocesadores y ASICs Moore High End Reconfigurable Computing
Consumo y rendimiento
Consumo:
Eficiencia requerida para un embebido: 25pJ/op (para el receptor 3G)
Un ASIC , diseado cuidadosamente, puede conseguir una eficiencia de 5pJ/op en la tecnologa CMOS de 90-nm. Un procesador embebido muy eficiente o un DSP requieren 250pJ/op Un laptop requiere 20nJ/op (4000 veces la de un ASIC) Conclusin: las eficiencias de los procesadores programables son inadecuadas para las aplicaciones embebidas, obligando a los ingenieros a usar hardware. (caro, muy caro!!! En dinero y en tiempo de desarrollo )
Ley de Moore
Moore di un discurso en el ao 1965, donde predijo que en el ao 1970 (cinco aos mas adelante) el costo por componente sera la dcima parte del actual costo. Y adems predijo que esa tendencia se mantendra por 10 aos.
Sin embargo
Miremos este cuadro. Muestra que si tomamos como medida la densidad computacional que relaciona el nmero de operaciones por segundo, la frecuencia de operacin y el rea ocupada, vemos que sta ha ido descendiendo con los aos Esto muestra que los microprocesadores no estn siendo capaces de traducir en un aumento equivalente en el rendimiento (MOPS) al aumentar la frecuencia y el rea ocupada. Sin embargo, en el mismo perodo de tiempo, los FPGA, han sobrepasado la Ley de Moore.
Referencia: BEE2: A High-End Reconfigurable Computing System. Chen Chang, John Wawrzynek, and Robert W. Brodersen. University of California, Berkeley. IEEE Design & Test of Computers, MarchApril 2005.
Referencias
BEE2: A High-End Reconfigurable Computing System Chen Chang, John Wawrzynek, and Robert W. Brodersen. University of California, Berkeley IEEE Design & Test of Computers, 0740-7475/05/$20.00 2005 IEEE The Law of Accelerating Returns by Ray Kurzweil The Landscape of Parallel Computing Research: A View from Berkeley. David Paterson et al.