Está en la página 1de 145

Introduccion practica a los FPGA

Ing. Roberto Simone - EDUDEVICES

August 16, 2012 - www.edudevices.com.ar

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

1 / 84

Itinerario de la presentacion

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

2 / 84

Itinerario de la presentacion

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

2 / 84

Itinerario de la presentacion

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

2 / 84

Itinerario de la presentacion

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

2 / 84

Implementacion de un sistema dedicado

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

3 / 84

Implementacion de un sistema dedicado


Opci
on con microprocesador

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

4 / 84

Implementacion de un sistema dedicado


Opci
on con l
ogica discreta

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

5 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.
Puertos de E/S.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.
Puertos de E/S.
M
odulos indispensables:

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.
Puertos de E/S.
M
odulos indispensables:
Conversor A/D.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.
Puertos de E/S.
M
odulos indispensables:
Conversor A/D.
Timers.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.
Puertos de E/S.
M
odulos indispensables:
Conversor A/D.
Timers.
USART.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.
Puertos de E/S.
M
odulos indispensables:
Conversor A/D.
Timers.
USART.

Es REPROGRAMABLE.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.
Memorias de programa y de datos.
Puertos de E/S.
M
odulos indispensables:
Conversor A/D.
Timers.
USART.

Es REPROGRAMABLE.
Solo debemos preocuparnos del firmware y la periferia analogica.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

6 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 1 - DMA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

7 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 1 - DMA

La CPU puede ser un cuello de botella.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

8 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 1 - DMA

La CPU puede ser un cuello de botella. DMA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

9 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 1 - DMA

La CPU puede ser un cuello de botella. DMA


Para fsamp > 1MSPS el A/D suele ser externo.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

10 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 1 - DMA

La CPU puede ser un cuello de botella. DMA


Para fsamp > 1MSPS el A/D suele ser externo.
Para capacidad > 1MB la RAM suele ser externa.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

11 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 1 - DMA

La CPU puede ser un cuello de botella. DMA


Para fsamp > 1MSPS el A/D suele ser externo.
Para capacidad > 1MB la RAM suele ser externa.
El MCU debe ejecutar varias instrucciones en 1s y direccionar mas
de 1MB externo.
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

11 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 1 - DMA

La CPU puede ser un cuello de botella. DMA


Para fsamp > 1MSPS el A/D suele ser externo.
Para capacidad > 1MB la RAM suele ser externa.
El MCU debe ejecutar varias instrucciones en 1s y direccionar mas
de 1MB externo.RARO
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

12 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 2 - PCI

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

13 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 2 - PCI

El reloj es de 33MHz, tCLK = 30, 3ns.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

14 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 2 - PCI

El reloj es de 33MHz, tCLK = 30, 3ns.


Difcil de atender para un microcontrolador.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

14 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 2 - PCI

El reloj es de 33MHz, tCLK = 30, 3ns.


Difcil de atender para un microcontrolador.
En el mejor de los casos no podra realizar otra funcion.
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

14 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

En los monitores los pxeles se encienden en secuencia.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

15 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Las se
nales analogicas de ROJO, VERDE y AZUL deben ingresar en
secuencia.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

16 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Para una resolucion de 640 x 480 pxeles deben ser ingresados cada 40ns.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

17 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

El reloj adecuado es de 25,176MHz.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

18 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

19 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

20 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Los colores R, G, B de cada pxel se guardan en una memoria llamada


frame buffer.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

21 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

La memoria es leda a medida que se muestra la imagen.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

22 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

23 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

24 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

25 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

26 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 3 - Generaci
on de video

Para dibujar una imagen guardamos datos en el frame buffer.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

27 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

28 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.


O protocolos altamente sofisticados como USB.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

28 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.


O protocolos altamente sofisticados como USB.
Un microcontrolador no puede registrar todas las transiciones de las
se
nales.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

28 / 84

Implementacion de un sistema dedicado


Situaciones problem
aticas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.


O protocolos altamente sofisticados como USB.
Un microcontrolador no puede registrar todas las transiciones de las
se
nales.
Tampoco tiene la memoria para almacenar todos los eventos.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

28 / 84

Chau compuertas, hola FPGA

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

29 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Partimos de la especificaci
on de un circuito combinacional.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

30 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

31 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

32 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

S = D.B + D.B.A

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

32 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son practicos hasta 4 variables.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

33 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son practicos hasta 4 variables.


Con 5 variables, el metodo no es tan directo.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

33 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son practicos hasta 4 variables.


Con 5 variables, el metodo no es tan directo.
Para mas de 5 variables es inviable.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

33 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son practicos hasta 4 variables.


Con 5 variables, el metodo no es tan directo.
Para mas de 5 variables es inviable.
No considera que m
ultiples salidas pueden compartir parte de sus
circuitos.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

33 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son practicos hasta 4 variables.


Con 5 variables, el metodo no es tan directo.
Para mas de 5 variables es inviable.
No considera que m
ultiples salidas pueden compartir parte de sus
circuitos.

Orientado a la implementaci
on de circuitos con compuertas.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

33 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: AND-OR

Surge directamente del mapa de Karnaugh.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

34 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: OR-AND

Lo obtenemos agrupando 0s en el mapa.


S = (D + B).(B + A).(D + B)
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

35 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: NAND-NAND

Aplicamos De Morgan a la suma de productos


S = D.B + D.B.A = D.B.D.B.A
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

36 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: NOR-NOR

Aplicamos De Morgan al producto de sumas


S = (D + B).(B + A).(D + B) = (D + B) + (B + A) + (D + B)
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

37 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Otros problemas

Un error en el PCB: PCB a la basura.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

38 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB se
nales sensibles como el reloj.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

38 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB se
nales sensibles como el reloj.
PCB tama
no ba
no: kilos y kilos de electr
onica.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

38 / 84

Chau compuertas, hola FPGA


L
ogica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB se
nales sensibles como el reloj.
PCB tama
no ba
no: kilos y kilos de electr
onica.
Dise
nos ultrargidos: Difciles de actualizar.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

38 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: FPGA

Los FPGA estan repletos de tablas llamadas Look-Up Tables.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

39 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: FPGA

Los FPGA estan repletos de tablas llamadas Look-Up Tables.


Las LUTs son SRAM de alta velocidad.
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

39 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: FPGA

Los FPGA estan repletos de tablas llamadas Look-Up Tables.


Las LUTs son SRAM de alta velocidad.
Las LUTs son reprogramables.
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

39 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: FPGA

Podemos usar o no un flip-flop junto con la LUT.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

40 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: FPGA

Podemos usar o no un flip-flop junto con la LUT.


Nos permite construir circuitos secuenciales.
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

40 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: FPGA

Podemos usar o no un flip-flop junto con la LUT.


Nos permite construir circuitos secuenciales.
Surge el elemento logico ( LE ).
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

40 / 84

Chau compuertas, hola FPGA


Mapeo tecnol
ogico: FPGA

Disponemos de autopistas ( ruteo ) para conectar las se


nales de los LE
entre s y con los terminales del chip.
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

41 / 84

Chau compuertas, hola FPGA


Configuraci
on del FPGA

Armar un circuito con un FPGA consiste de

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

42 / 84

Chau compuertas, hola FPGA


Configuraci
on del FPGA

Armar un circuito con un FPGA consiste de

Llenar las tablas de verdad.


Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

42 / 84

Chau compuertas, hola FPGA


Configuraci
on del FPGA

Armar un circuito con un FPGA consiste de

Determinar si usamos o no cada flip-flop.


Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

43 / 84

Chau compuertas, hola FPGA


Configuraci
on del FPGA

Armar un circuito con un FPGA consiste de

Determinar si usamos o no cada flip-flop.


Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

44 / 84

Chau compuertas, hola FPGA


Configuraci
on del FPGA

Armar un circuito con un FPGA consiste de

Conectas las entradas y salidas de los LE.


Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

45 / 84

Chau compuertas, hola FPGA


Tecnica de dise
no

No tienen sentido minimizar funciones con los mapas de Karnaugh

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

46 / 84

Chau compuertas, hola FPGA


Tecnica de dise
no

No tienen sentido minimizar funciones con los mapas de Karnaugh


S = D.B + D.B.A

Debemos llenar los 16 casilleros de cada LUT.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

46 / 84

Chau compuertas, hola FPGA


Tecnica de dise
no

Si llenamos las LUT a mano volvemos a la antigua tecnica de dise


no.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

47 / 84

Chau compuertas, hola FPGA


Tecnica de dise
no

Si llenamos las LUT a mano volvemos a la antigua tecnica de dise


no.
Actualmente se trabaja a nivel RTL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

47 / 84

El FPGA no muerde

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

48 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 1: Especificacion del dise


no Al tocar 2 botones simultaneamente se
encedera el LED.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

49 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 1: Especificacion del dise


no Al tocar 2 botones simultaneamente se
encedera el LED.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

49 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

50 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


Fabricantes de FPGA:

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

50 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

FPGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

FPGA
Cyclone - bajo costo

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

FPGA
Cyclone - bajo costo
Cyclone
Cyclone
Cyclone
Cyclone
Cyclone

Ing. Roberto Simone ()

I
II
III
IV
V

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

FPGA
Cyclone - bajo costo
Cyclone
Cyclone
Cyclone
Cyclone
Cyclone

I
II
III
IV
V

Arria - gama media

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

FPGA
Cyclone - bajo costo
Cyclone
Cyclone
Cyclone
Cyclone
Cyclone

I
II
III
IV
V

Arria - gama media


Stratix - tecnologa de punta

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

51 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

52 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

52 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos logicos

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

52 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos logicos
EP1C3: 2910 LE.
EP1C4: 4000 LE.
EP1C6: 5980 LE.
EP1C12: 12060 LE.
EP1C20: 20060 LE.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

52 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos logicos
EP1C3: 2910 LE.
EP1C4: 4000 LE.
EP1C6: 5980 LE.
EP1C12: 12060 LE.
EP1C20: 20060 LE.

Encapsulados

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

52 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos logicos
EP1C3: 2910 LE.
EP1C4: 4000 LE.
EP1C6: 5980 LE.
EP1C12: 12060 LE.
EP1C20: 20060 LE.

Encapsulados
EP1CxT100: 100 pines TQFP.
EP1CxT144: 144 pines TQFP.
EP1CxQ240: 240 pines PQFP.
EP1CxF256: 256 pines FBGA.
EP1CxF324: 324 pines FBGA.
EP1CxF400: 400 pines FBGA.
Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

52 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

53 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 2: Elegir un FPGA


Kit de entrenamiento EDUDEVICES: PLUGIN_CYCLONE + BASE FPGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

53 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 3: Dibujar el circuito

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

54 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 3: Dibujar el circuito

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

54 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 4: Asignar pines

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

55 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 4: Asignar pines

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

55 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 5: Sntesis

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

56 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 5: Sntesis

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

56 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 6: Programar el chip

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

57 / 84

El FPGA no muerde
Dise
no de ejemplo

Paso 6: Programar el chip


"PLD_POD" Programador de Edudevices ( USB Blaster compatible )

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

57 / 84

Ejemplos en VHDL

Implementacion de un sistema dedicado.

Chau compuertas, hola FPGA.

El FPGA no muerde.

Ejemplos en VHDL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

58 / 84

Ejemplos en VHDL
Lenguajes descriptores de hardware

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

59 / 84

Ejemplos en VHDL
Lenguajes descriptores de hardware

se
nalC es se
nal A AND se
nal B

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

59 / 84

Ejemplos en VHDL
Lenguajes descriptores de hardware

se
nalC es se
nal A AND se
nal B
conectar se
nal A a pin 1

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

59 / 84

Ejemplos en VHDL
Lenguajes descriptores de hardware

se
nalC es se
nal A AND se
nal B
conectar se
nal A a pin 1
conectar se
nal B a pin 2

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

59 / 84

Ejemplos en VHDL
Lenguajes descriptores de hardware

se
nalC es se
nal A AND se
nal B
conectar se
nal A a pin 1
conectar se
nal B a pin 2
conectar se
nal C a pin 3

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

59 / 84

Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

60 / 84

Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.


Sintaxis semejante a PASCAL.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

60 / 84

Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.


Sintaxis semejante a PASCAL.
Descripto en el estandar IEEE 1164.

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

60 / 84

Ejemplos en VHDL
Primer dise
no

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

61 / 84

Ejemplos en VHDL
Uso de WITH SELECT

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

62 / 84

Ejemplos en VHDL
Uso de PROCESS

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

63 / 84

Ejemplos en VHDL
Uso de PROCESS

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

64 / 84

Ejemplos en VHDL
Destello de un LED

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

65 / 84

Ejemplos en VHDL
Vista RTL

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

66 / 84

Ejemplos en VHDL
Vista RTL - MUX

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

67 / 84

Ejemplos en VHDL
Vista RTL - Comparador

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

68 / 84

Ejemplos en VHDL
Vista RTL - Incrementador

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

69 / 84

Ejemplos en VHDL
Vista RTL - Reinicio del conteo

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

70 / 84

Ejemplos en VHDL
Vista RTL - L
ogica de salida

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

71 / 84

Ejemplos en VHDL
Contador BCD - Contador con ENABLE

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

72 / 84

Ejemplos en VHDL
Contador BCD - Uso de componentes

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

73 / 84

Ejemplos en VHDL
Contador BCD - Ticks

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

74 / 84

Ejemplos en VHDL
Generador VGA

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

75 / 84

Ejemplos en VHDL
Generador VGA - Sincronismo horizontal

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

76 / 84

Ejemplos en VHDL
Generador VGA - Sincronismo vertical

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

77 / 84

Ejemplos en VHDL
Generador VGA - VGA sync

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

78 / 84

Ejemplos en VHDL
Generador VGA - Sincronismos

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

79 / 84

Ejemplos en VHDL
Displays 7 segmentos multiplexados

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

80 / 84

Ejemplos en VHDL
Displays 7 segmentos multiplexados - Diagrama de estados

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

81 / 84

Ejemplos en VHDL
Displays 7 segmentos multiplexados - M
aquina de estados

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

82 / 84

Ejemplos en VHDL
Displays 7 segmentos multiplexados - Transiciones de estados

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

83 / 84

Ejemplos en VHDL
Conversor A/D por contador

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

84 / 84

Ejemplos en VHDL
Conversor A/D por contador

Ing. Roberto Simone ()

Introducci
on pr
actica a los FPGA

August 16, 2012

85 / 84

También podría gustarte