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 () Introduccion practica a los FPGA August 16, 2012 1 / 84
Itinerario de la presentacion

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 2 / 84
Itinerario de la presentacion

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 2 / 84
Itinerario de la presentacion

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 2 / 84
Itinerario de la presentacion

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 2 / 84
Implementacion de un sistema dedicado

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 3 / 84
Implementacion de un sistema dedicado
Opcion con microprocesador

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 4 / 84
Implementacion de un sistema dedicado
Opcion con logica discreta

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 5 / 84
Implementacion de un sistema dedicado
Puntos a favor de los microprocesadores

Ing. Roberto Simone () Introduccion practica 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 () Introduccion practica 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 () Introduccion practica 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 () Introduccion practica 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 () Introduccion practica 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.
Modulos indispensables:

Ing. Roberto Simone () Introduccion practica 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.
Modulos indispensables:
Conversor A/D.

Ing. Roberto Simone () Introduccion practica 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.
Modulos indispensables:
Conversor A/D.
Timers.

Ing. Roberto Simone () Introduccion practica 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.
Modulos indispensables:
Conversor A/D.
Timers.
USART.

Ing. Roberto Simone () Introduccion practica 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.
Modulos indispensables:
Conversor A/D.
Timers.
USART.
Es REPROGRAMABLE.

Ing. Roberto Simone () Introduccion practica 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.
Modulos indispensables:
Conversor A/D.
Timers.
USART.
Es REPROGRAMABLE.
Solo debemos preocuparnos del firmware y la periferia analogica.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 6 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 1 - DMA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 7 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 1 - DMA

La CPU puede ser un cuello de botella.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 8 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 1 - DMA

La CPU puede ser un cuello de botella. DMA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 9 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 1 - DMA

La CPU puede ser un cuello de botella. DMA


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

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 10 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: 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 () Introduccion practica a los FPGA August 16, 2012 11 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: 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 () Introduccion practica a los FPGA August 16, 2012 11 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: 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 () Introduccion practica a los FPGA August 16, 2012 12 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 2 - PCI

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 13 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 2 - PCI

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

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 14 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 2 - PCI

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


Difcil de atender para un microcontrolador.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 14 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: 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 () Introduccion practica a los FPGA August 16, 2012 14 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

En los monitores los pxeles se encienden en secuencia.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 15 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Las senales analogicas de ROJO, VERDE y AZUL deben ingresar en


secuencia.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 16 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

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

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 17 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

El reloj adecuado es de 25,176MHz.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 18 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 19 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 20 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

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


frame buffer.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 21 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

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

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 22 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 23 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 24 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 25 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 26 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 3 - Generacion de video

Para dibujar una imagen guardamos datos en el frame buffer.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 27 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 28 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.


O protocolos altamente sofisticados como USB.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 28 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: 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
senales.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 28 / 84
Implementacion de un sistema dedicado
Situaciones problematicas: 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
senales.
Tampoco tiene la memoria para almacenar todos los eventos.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 28 / 84
Chau compuertas, hola FPGA

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 29 / 84
Chau compuertas, hola FPGA
Logica discreta: Mapas de Karnaugh

Partimos de la especificacion de un circuito combinacional.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 30 / 84
Chau compuertas, hola FPGA
Logica discreta: Mapas de Karnaugh

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 31 / 84
Chau compuertas, hola FPGA
Logica discreta: Mapas de Karnaugh

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 32 / 84
Chau compuertas, hola FPGA
Logica discreta: Mapas de Karnaugh

S = D.B + D.B.A

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 32 / 84
Chau compuertas, hola FPGA
Logica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son practicos hasta 4 variables.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Logica 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 () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Logica 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 () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Logica 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 multiples salidas pueden compartir parte de sus
circuitos.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Logica 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 multiples salidas pueden compartir parte de sus
circuitos.

Orientado a la implementacion de circuitos con compuertas.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: AND-OR

Surge directamente del mapa de Karnaugh.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 34 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: OR-AND

Lo obtenemos agrupando 0s en el mapa.

S = (D + B).(B + A).(D + B)

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 35 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: NAND-NAND

Aplicamos De Morgan a la suma de productos

S = D.B + D.B.A = D.B.D.B.A


Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 36 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: 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 () Introduccion practica a los FPGA August 16, 2012 37 / 84
Chau compuertas, hola FPGA
Logica discreta: Otros problemas

Un error en el PCB: PCB a la basura.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Logica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB senales sensibles como el reloj.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Logica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB senales sensibles como el reloj.
PCB tamano bano: kilos y kilos de electronica.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Logica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB senales sensibles como el reloj.
PCB tamano bano: kilos y kilos de electronica.
Disenos ultrargidos: Difciles de actualizar.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: FPGA

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

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 39 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: FPGA

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


Las LUTs son SRAM de alta velocidad.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 39 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: 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 () Introduccion practica a los FPGA August 16, 2012 39 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: FPGA

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

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 40 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: FPGA

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


Nos permite construir circuitos secuenciales.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 40 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: 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 () Introduccion practica a los FPGA August 16, 2012 40 / 84
Chau compuertas, hola FPGA
Mapeo tecnologico: FPGA

Disponemos de autopistas ( ruteo ) para conectar las senales de los LE


entre s y con los terminales del chip.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 41 / 84
Chau compuertas, hola FPGA
Configuracion del FPGA

Armar un circuito con un FPGA consiste de

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 42 / 84
Chau compuertas, hola FPGA
Configuracion del FPGA

Armar un circuito con un FPGA consiste de

Llenar las tablas de verdad.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 42 / 84
Chau compuertas, hola FPGA
Configuracion del FPGA

Armar un circuito con un FPGA consiste de

Determinar si usamos o no cada flip-flop.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 43 / 84
Chau compuertas, hola FPGA
Configuracion del FPGA

Armar un circuito con un FPGA consiste de

Determinar si usamos o no cada flip-flop.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 44 / 84
Chau compuertas, hola FPGA
Configuracion del FPGA

Armar un circuito con un FPGA consiste de

Conectas las entradas y salidas de los LE.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 45 / 84
Chau compuertas, hola FPGA
Tecnica de diseno

No tienen sentido minimizar funciones con los mapas de Karnaugh

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 46 / 84
Chau compuertas, hola FPGA
Tecnica de diseno

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 () Introduccion practica a los FPGA August 16, 2012 46 / 84
Chau compuertas, hola FPGA
Tecnica de diseno

Si llenamos las LUT a mano volvemos a la antigua tecnica de diseno.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 47 / 84
Chau compuertas, hola FPGA
Tecnica de diseno

Si llenamos las LUT a mano volvemos a la antigua tecnica de diseno.


Actualmente se trabaja a nivel RTL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 47 / 84
El FPGA no muerde

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 48 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 1: Especificacion del diseno Al tocar 2 botones simultaneamente se


encedera el LED.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 49 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 1: Especificacion del diseno Al tocar 2 botones simultaneamente se


encedera el LED.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 49 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 50 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


Fabricantes de FPGA:

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 50 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II
FPGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II
FPGA
Cyclone - bajo costo

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II
FPGA
Cyclone - bajo costo
Cyclone I
Cyclone II
Cyclone III
Cyclone IV
Cyclone V

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II
FPGA
Cyclone - bajo costo
Cyclone I
Cyclone II
Cyclone III
Cyclone IV
Cyclone V
Arria - gama media

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II
FPGA
Cyclone - bajo costo
Cyclone I
Cyclone II
Cyclone III
Cyclone IV
Cyclone V
Arria - gama media
Stratix - tecnologa de punta

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos logicos

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseno 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 () Introduccion practica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseno 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 () Introduccion practica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseno 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 () Introduccion practica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 53 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 2: Elegir un FPGA


Kit de entrenamiento EDUDEVICES: PLUGIN_CYCLONE + BASE FPGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 53 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 3: Dibujar el circuito

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 54 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 3: Dibujar el circuito

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 54 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 4: Asignar pines

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 55 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 4: Asignar pines

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 55 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 5: Sntesis

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 56 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 5: Sntesis

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 56 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 6: Programar el chip

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 57 / 84
El FPGA no muerde
Diseno de ejemplo

Paso 6: Programar el chip


"PLD_POD" Programador de Edudevices ( USB Blaster compatible )

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 57 / 84
Ejemplos en VHDL

1 Implementacion de un sistema dedicado.


2 Chau compuertas, hola FPGA.
3 El FPGA no muerde.
4 Ejemplos en VHDL.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 58 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

senalC es senal A AND senal B

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

senalC es senal A AND senal B


conectar senal A a pin 1

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

senalC es senal A AND senal B


conectar senal A a pin 1
conectar senal B a pin 2

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

senalC es senal A AND senal B


conectar senal A a pin 1
conectar senal B a pin 2
conectar senal C a pin 3

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 60 / 84
Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.


Sintaxis semejante a PASCAL.

Ing. Roberto Simone () Introduccion practica 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 () Introduccion practica a los FPGA August 16, 2012 60 / 84
Ejemplos en VHDL
Primer diseno

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 61 / 84
Ejemplos en VHDL
Uso de WITH SELECT

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 62 / 84
Ejemplos en VHDL
Uso de PROCESS

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 63 / 84
Ejemplos en VHDL
Uso de PROCESS

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 64 / 84
Ejemplos en VHDL
Destello de un LED

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 65 / 84
Ejemplos en VHDL
Vista RTL

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 66 / 84
Ejemplos en VHDL
Vista RTL - MUX

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 67 / 84
Ejemplos en VHDL
Vista RTL - Comparador

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 68 / 84
Ejemplos en VHDL
Vista RTL - Incrementador

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 69 / 84
Ejemplos en VHDL
Vista RTL - Reinicio del conteo

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 70 / 84
Ejemplos en VHDL
Vista RTL - Logica de salida

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 71 / 84
Ejemplos en VHDL
Contador BCD - Contador con ENABLE

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 72 / 84
Ejemplos en VHDL
Contador BCD - Uso de componentes

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 73 / 84
Ejemplos en VHDL
Contador BCD - Ticks

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 74 / 84
Ejemplos en VHDL
Generador VGA

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 75 / 84
Ejemplos en VHDL
Generador VGA - Sincronismo horizontal

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 76 / 84
Ejemplos en VHDL
Generador VGA - Sincronismo vertical

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 77 / 84
Ejemplos en VHDL
Generador VGA - VGA sync

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 78 / 84
Ejemplos en VHDL
Generador VGA - Sincronismos

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 79 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 80 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados - Diagrama de estados

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 81 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados - Maquina de estados

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 82 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados - Transiciones de estados

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 83 / 84
Ejemplos en VHDL
Conversor A/D por contador

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 84 / 84
Ejemplos en VHDL
Conversor A/D por contador

Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 85 / 84

También podría gustarte