Download Introducción práctica a los FPGA

Document related concepts
no text concepts found
Transcript
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
Cyclone
Cyclone
Cyclone
Cyclone
Ing. Roberto Simone ()
I
II
III
IV
V
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
Cyclone
Cyclone
Cyclone
Cyclone
I
II
III
IV
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
Cyclone
Cyclone
Cyclone
Cyclone
I
II
III
IV
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