Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Introduccion practica a los FPGA
Ing. Roberto Simone
August 16, 2012
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 dedicadoOpcion con microprocesador
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 4 / 84
Implementacion de un sistema dedicadoOpcion con logica discreta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 5 / 84
Implementacion de un sistema dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoPuntos 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 dedicadoSituaciones problematicas: Caso 1 - DMA
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 7 / 84
Implementacion de un sistema dedicadoSituaciones 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 dedicadoSituaciones 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 dedicadoSituaciones 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 dedicadoSituaciones 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 1µs y direccionar masde 1MB externo.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 11 / 84
Implementacion de un sistema dedicadoSituaciones 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 1µs y direccionar masde 1MB externo.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 11 / 84
Implementacion de un sistema dedicadoSituaciones 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 1µs y direccionar masde 1MB externo.→RARO
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 12 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 2 - PCI
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 13 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: 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 podra realizar otra funcion.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 14 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: 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 podra realizar otra funcion.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 14 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: 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 podra realizar otra funcion.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 14 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
En los monitores los pıxeles se encienden en secuencia.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 15 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Las senales analogicas de ROJO, VERDE y AZUL deben ingresar ensecuencia.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 16 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Para una resolucion de 640 x 480 pıxeles deben ser ingresados cada 40ns.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 17 / 84
Implementacion de un sistema dedicadoSituaciones 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 dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 19 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 20 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Los colores R, G, B de cada pıxel se guardan en una memoria llamadaframe buffer.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 21 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
La memoria es leıda a medida que se muestra la imagen.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 22 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 23 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 24 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 25 / 84
Implementacion de un sistema dedicadoSituaciones problematicas: Caso 3 - Generacion de video
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 26 / 84
Implementacion de un sistema dedicadoSituaciones 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 dedicadoSituaciones 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 lassenales.
Tampoco tiene la memoria para almacenar todos los eventos.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 28 / 84
Implementacion de un sistema dedicadoSituaciones 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 lassenales.
Tampoco tiene la memoria para almacenar todos los eventos.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 28 / 84
Implementacion de un sistema dedicadoSituaciones 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 lassenales.
Tampoco tiene la memoria para almacenar todos los eventos.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 28 / 84
Implementacion de un sistema dedicadoSituaciones 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 lassenales.
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 FPGALogica 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 FPGALogica discreta: Mapas de Karnaugh
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 31 / 84
Chau compuertas, hola FPGALogica 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 FPGALogica 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 FPGALogica 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 suscircuitos.
Orientado a la implementacion de circuitos con compuertas.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGALogica 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 suscircuitos.
Orientado a la implementacion de circuitos con compuertas.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGALogica 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 suscircuitos.
Orientado a la implementacion de circuitos con compuertas.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGALogica 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 suscircuitos.
Orientado a la implementacion de circuitos con compuertas.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGALogica 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 suscircuitos.
Orientado a la implementacion de circuitos con compuertas.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 33 / 84
Chau compuertas, hola FPGAMapeo 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 FPGAMapeo tecnologico: OR-AND
Lo obtenemos agrupando ’0’s 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 FPGAMapeo 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 FPGAMapeo 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 FPGALogica 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 ultrarıgidos: Difıciles de actualizar.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGALogica 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 ultrarıgidos: Difıciles de actualizar.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGALogica 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 ultrarıgidos: Difıciles de actualizar.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGALogica 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 ultrarıgidos: Difıciles de actualizar.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 38 / 84
Chau compuertas, hola FPGAMapeo 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 FPGAMapeo 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 FPGAMapeo 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 FPGAMapeo 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 FPGAMapeo 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 FPGAMapeo 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 FPGAMapeo tecnologico: FPGA
Disponemos de autopistas ( ruteo ) para conectar las senales de los LEentre sı y con los terminales del chip.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 41 / 84
Chau compuertas, hola FPGAConfiguracion 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 FPGAConfiguracion 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 FPGAConfiguracion 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 FPGAConfiguracion 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 FPGAConfiguracion 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 FPGATecnica 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 FPGATecnica 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 FPGATecnica 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
Chau compuertas, hola FPGATecnica 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 muerdeDiseno de ejemplo
Paso 1: Especificacion del diseno Al tocar 2 botones simultaneamente seencedera el LED.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 49 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 1: Especificacion del diseno Al tocar 2 botones simultaneamente seencedera el LED.
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 49 / 84
El FPGA no muerdeDiseno 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 muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAFabricantes de FPGA:
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 50 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGA
ALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGA
Cyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama media
Stratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAALTERA: Familias de FPGA
CPLD
MAX 7000MAX II
FPGACyclone - bajo costo
Cyclone ICyclone IICyclone IIICyclone IVCyclone V
Arria - gama mediaStratix - tecnologıa de punta
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 51 / 84
El FPGA no muerdeDiseno 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 muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAFPGA 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 muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAFPGA 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 muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAFPGA 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 muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAFPGA 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 muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAFPGA 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 muerdeDiseno de ejemplo
Paso 2: Elegir un FPGA
Kit de entrenamiento EDUDEVICES
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 53 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 2: Elegir un FPGAKit de entrenamiento EDUDEVICES
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 53 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 3: Dibujar el circuito
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 54 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 3: Dibujar el circuito
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 54 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 4: Asignar pines
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 55 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 4: Asignar pines
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 55 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 5: Sıntesis
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 56 / 84
El FPGA no muerdeDiseno de ejemplo
Paso 5: Sıntesis
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 56 / 84
El FPGA no muerdeDiseno 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
El FPGA no muerdeDiseno de ejemplo
Paso 6: Programar el chipPLD 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 VHDLLenguajes descriptores de hardware
senalC es senal A AND senal Bconectar senal A a pin 1conectar senal B a pin 2conectar senal C a pin 3
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDLLenguajes descriptores de hardware
senalC es senal A AND senal B
conectar senal A a pin 1conectar senal B a pin 2conectar senal C a pin 3
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDLLenguajes descriptores de hardware
senalC es senal A AND senal Bconectar senal A a pin 1
conectar senal B a pin 2conectar senal C a pin 3
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDLLenguajes descriptores de hardware
senalC es senal A AND senal Bconectar senal A a pin 1conectar 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 VHDLLenguajes descriptores de hardware
senalC es senal A AND senal Bconectar senal A a pin 1conectar senal B a pin 2conectar senal C a pin 3
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 59 / 84
Ejemplos en VHDLVHDL
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 VHDLVHDL
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 VHDLVHDL
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 VHDLPrimer diseno
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 61 / 84
Ejemplos en VHDLUso de WITH SELECT
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 62 / 84
Ejemplos en VHDLUso de PROCESS
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 63 / 84
Ejemplos en VHDLUso de PROCESS
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 64 / 84
Ejemplos en VHDLDestello de un LED
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 65 / 84
Ejemplos en VHDLVista RTL
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 66 / 84
Ejemplos en VHDLVista RTL - MUX
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 67 / 84
Ejemplos en VHDLVista RTL - Comparador
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 68 / 84
Ejemplos en VHDLVista RTL - Incrementador
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 69 / 84
Ejemplos en VHDLVista RTL - Reinicio del conteo
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 70 / 84
Ejemplos en VHDLVista RTL - Logica de salida
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 71 / 84
Ejemplos en VHDLContador BCD - Contador con ENABLE
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 72 / 84
Ejemplos en VHDLContador BCD - Uso de componentes
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 73 / 84
Ejemplos en VHDLContador BCD - Ticks
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 74 / 84
Ejemplos en VHDLGenerador VGA
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 75 / 84
Ejemplos en VHDLGenerador VGA - Sincronismo horizontal
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 76 / 84
Ejemplos en VHDLGenerador VGA - Sincronismo vertical
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 77 / 84
Ejemplos en VHDLGenerador VGA - VGA sync
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 78 / 84
Ejemplos en VHDLGenerador VGA - Sincronismos
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 79 / 84
Ejemplos en VHDLDisplays 7 segmentos multiplexados
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 80 / 84
Ejemplos en VHDLDisplays 7 segmentos multiplexados - Diagrama de estados
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 81 / 84
Ejemplos en VHDLDisplays 7 segmentos multiplexados - Maquina de estados
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 82 / 84
Ejemplos en VHDLDisplays 7 segmentos multiplexados - Transiciones de estados
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 83 / 84
Ejemplos en VHDLConversor A/D por contador
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 84 / 84
Ejemplos en VHDLConversor A/D por contador
Ing. Roberto Simone () Introduccion practica a los FPGA August 16, 2012 85 / 84