Está en la página 1de 145

Introducción práctica a los FPGA

Ing. Roberto Simone - EDUDEVICES

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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 1 / 84
Itinerario de la presentación

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 2 / 84
Itinerario de la presentación

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 2 / 84
Itinerario de la presentación

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 2 / 84
Itinerario de la presentación

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 2 / 84
Implementación de un sistema dedicado

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 3 / 84
Implementación de un sistema dedicado
Opción con microprocesador

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 4 / 84
Implementación de un sistema dedicado
Opción con lógica discreta

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 5 / 84
Implementación de un sistema dedicado
Puntos a favor de los microprocesadores

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación de un sistema dedicado
Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación de un sistema dedicado
Puntos a favor de los microprocesadores

Un chip tiene resueltos buena parte del hardware:


CPU.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ón práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ón práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ódulos indispensables:

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ódulos indispensables:
Conversor A/D.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ódulos indispensables:
Conversor A/D.
Timers.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ódulos indispensables:
Conversor A/D.
Timers.
USART.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ódulos indispensables:
Conversor A/D.
Timers.
USART.
Es REPROGRAMABLE.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación 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ódulos indispensables:
Conversor A/D.
Timers.
USART.
Es REPROGRAMABLE.
Solo debemos preocuparnos del firmware y la periferia analógica.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 6 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 1 - DMA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 7 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 1 - DMA

La CPU puede ser un cuello de botella.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 8 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 1 - DMA

La CPU puede ser un cuello de botella. → DMA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 9 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: 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ón práctica a los FPGA August 16, 2012 10 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: 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ón práctica a los FPGA August 16, 2012 11 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: 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 1µs y direccionar mas
de 1MB externo.
Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 11 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: 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 1µs y direccionar mas
de 1MB externo.→RARO
Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 12 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 2 - PCI

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 13 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 2 - PCI

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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 14 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 2 - PCI

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


Difı́cil de atender para un microcontrolador.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 14 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 2 - PCI

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


Difı́cil de atender para un microcontrolador.
En el mejor de los casos no podrá realizar otra función.
Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 14 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

En los monitores los pı́xeles se encienden en secuencia.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 15 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Las señales analógicas de ROJO, VERDE y AZUL deben ingresar en


secuencia.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 16 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Para una resolución de 640 x 480 pı́xeles deben ser ingresados cada 40ns.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 17 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

El reloj adecuado es de 25,176MHz.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 18 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 19 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 20 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Los colores R, G, B de cada pı́xel se guardan en una memoria llamada


frame buffer.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 21 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

La memoria es leı́da a medida que se muestra la imagen.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 22 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 23 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 24 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 25 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 26 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 3 - Generación de video

Para dibujar una imagen guardamos datos en el frame buffer.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 27 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 28 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: Caso 4 - Analizadores de protocolo

Decodifican protocolos de mediana complejidad, como IIC.


O protocolos altamente sofisticados como USB.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 28 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: 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ñales.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 28 / 84
Implementación de un sistema dedicado
Situaciones problemáticas: 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ñales.
Tampoco tiene la memoria para almacenar todos los eventos.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 28 / 84
Chau compuertas, hola FPGA

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 29 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Partimos de la especificación de un circuito combinacional.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 30 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 31 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 32 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

S = D.B + D.B.A

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 32 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son prácticos hasta 4 variables.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son prácticos hasta 4 variables.


Con 5 variables, el método no es tan directo.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son prácticos hasta 4 variables.


Con 5 variables, el método no es tan directo.
Para mas de 5 variables es inviable.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son prácticos hasta 4 variables.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Lógica discreta: Mapas de Karnaugh

Los mapas de Karnaugh son prácticos hasta 4 variables.


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

Orientado a la implementación de circuitos con compuertas.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: AND-OR

Surge directamente del mapa de Karnaugh.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 34 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: OR-AND

Lo obtenemos agrupando ’0’s en el mapa.

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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 35 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: 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ón práctica a los FPGA August 16, 2012 36 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: 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ón práctica a los FPGA August 16, 2012 37 / 84
Chau compuertas, hola FPGA
Lógica discreta: Otros problemas

Un error en el PCB: PCB a la basura.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Lógica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB señales sensibles como el reloj.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Lógica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB señales sensibles como el reloj.
PCB tamaño baño: kilos y kilos de electrónica.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Lógica discreta: Otros problemas

Un error en el PCB: PCB a la basura.


Problemas para distribuir en el PCB señales sensibles como el reloj.
PCB tamaño baño: kilos y kilos de electrónica.
Diseños ultrarı́gidos: Difı́ciles de actualizar.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: FPGA

Los FPGA están repletos de tablas llamadas Look-Up Tables.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 39 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: FPGA

Los FPGA están repletos de tablas llamadas Look-Up Tables.


Las LUTs son SRAM de alta velocidad.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 39 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: FPGA

Los FPGA están repletos de tablas llamadas Look-Up Tables.


Las LUTs son SRAM de alta velocidad.
Las LUTs son reprogramables.
Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 39 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: FPGA

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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 40 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: FPGA

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


Nos permite construir circuitos secuenciales.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 40 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: FPGA

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


Nos permite construir circuitos secuenciales.
Surge el elemento lógico ( LE ).
Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 40 / 84
Chau compuertas, hola FPGA
Mapeo tecnológico: FPGA

Disponemos de autopistas ( ruteo ) para conectar las señales de los LE


entre sı́ y con los terminales del chip.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 41 / 84
Chau compuertas, hola FPGA
Configuración del FPGA

Armar un circuito con un FPGA consiste de

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 42 / 84
Chau compuertas, hola FPGA
Configuración del FPGA

Armar un circuito con un FPGA consiste de

Llenar las tablas de verdad.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 42 / 84
Chau compuertas, hola FPGA
Configuración del FPGA

Armar un circuito con un FPGA consiste de

Determinar si usamos o no cada flip-flop.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 43 / 84
Chau compuertas, hola FPGA
Configuración del FPGA

Armar un circuito con un FPGA consiste de

Determinar si usamos o no cada flip-flop.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 44 / 84
Chau compuertas, hola FPGA
Configuración del FPGA

Armar un circuito con un FPGA consiste de

Conectas las entradas y salidas de los LE.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 45 / 84
Chau compuertas, hola FPGA
Técnica de diseño

No tienen sentido minimizar funciones con los mapas de Karnaugh

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 46 / 84
Chau compuertas, hola FPGA
Técnica de diseño

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ón práctica a los FPGA August 16, 2012 46 / 84
Chau compuertas, hola FPGA
Técnica de diseño

Si llenamos las LUT a mano volvemos a la antigua técnica de diseño.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 47 / 84
Chau compuertas, hola FPGA
Técnica de diseño

Si llenamos las LUT a mano volvemos a la antigua técnica de diseño.


Actualmente se trabaja a nivel RTL.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 47 / 84
El FPGA no muerde

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 48 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 1: Especificación del diseño Al tocar 2 botones simultáneamente se


encederá el LED.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 49 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 1: Especificación del diseño Al tocar 2 botones simultáneamente se


encederá el LED.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 49 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 50 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


Fabricantes de FPGA:

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 50 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


ALTERA: Familias de FPGA
CPLD
MAX 7000
MAX II
FPGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño 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 () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño 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 () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño 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 - tecnologı́a de punta

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 51 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos lógicos

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos lógicos
EP1C3: 2910 LE.
EP1C4: 4000 LE.
EP1C6: 5980 LE.
EP1C12: 12060 LE.
EP1C20: 20060 LE.
Encapsulados

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


FPGA Cyclone I
Elementos lógicos
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ón práctica a los FPGA August 16, 2012 52 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 53 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 2: Elegir un FPGA


Kit de entrenamiento EDUDEVICES: PLUGIN_CYCLONE + BASE FPGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 53 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 3: Dibujar el circuito

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 54 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 3: Dibujar el circuito

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 54 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 4: Asignar pines

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 55 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 4: Asignar pines

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 55 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 5: Sı́ntesis

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 56 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 5: Sı́ntesis

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 56 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 6: Programar el chip

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 57 / 84
El FPGA no muerde
Diseño de ejemplo

Paso 6: Programar el chip


"PLD_POD" Programador de Edudevices ( USB Blaster compatible )

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 57 / 84
Ejemplos en VHDL

1 Implementación de un sistema dedicado.


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

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 58 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

señalC es señal A AND señal B

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

señalC es señal A AND señal B


conectar señal A a pin 1

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

señalC es señal A AND señal B


conectar señal A a pin 1
conectar señal B a pin 2

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
Lenguajes descriptores de hardware

señalC es señal A AND señal B


conectar señal A a pin 1
conectar señal B a pin 2
conectar señal C a pin 3

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 60 / 84
Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.


Sintáxis semejante a PASCAL.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 60 / 84
Ejemplos en VHDL
VHDL

VHSIC Hardware Description Language.


Sintáxis semejante a PASCAL.
Descripto en el estándar IEEE 1164.

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 60 / 84
Ejemplos en VHDL
Primer diseño

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 61 / 84
Ejemplos en VHDL
Uso de WITH SELECT

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 62 / 84
Ejemplos en VHDL
Uso de PROCESS

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 63 / 84
Ejemplos en VHDL
Uso de PROCESS

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 64 / 84
Ejemplos en VHDL
Destello de un LED

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 65 / 84
Ejemplos en VHDL
Vista RTL

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 66 / 84
Ejemplos en VHDL
Vista RTL - MUX

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 67 / 84
Ejemplos en VHDL
Vista RTL - Comparador

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 68 / 84
Ejemplos en VHDL
Vista RTL - Incrementador

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 69 / 84
Ejemplos en VHDL
Vista RTL - Reinicio del conteo

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 70 / 84
Ejemplos en VHDL
Vista RTL - Lógica de salida

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 71 / 84
Ejemplos en VHDL
Contador BCD - Contador con ENABLE

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 72 / 84
Ejemplos en VHDL
Contador BCD - Uso de componentes

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 73 / 84
Ejemplos en VHDL
Contador BCD - Ticks

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 74 / 84
Ejemplos en VHDL
Generador VGA

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 75 / 84
Ejemplos en VHDL
Generador VGA - Sincronismo horizontal

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 76 / 84
Ejemplos en VHDL
Generador VGA - Sincronismo vertical

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 77 / 84
Ejemplos en VHDL
Generador VGA - VGA sync

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 78 / 84
Ejemplos en VHDL
Generador VGA - Sincronismos

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 79 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 80 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados - Diagrama de estados

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 81 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados - Máquina de estados

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 82 / 84
Ejemplos en VHDL
Displays 7 segmentos multiplexados - Transiciones de estados

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 83 / 84
Ejemplos en VHDL
Conversor A/D por contador

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 84 / 84
Ejemplos en VHDL
Conversor A/D por contador

Ing. Roberto Simone () Introducción práctica a los FPGA August 16, 2012 85 / 84

También podría gustarte