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