La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a los dispositivos FPGAs. Análisis y ejemplos de diseño. Bozich, Eduardo Carlos Director: Ing. Sergio Noriega Modificada por Ing. F. Videla.

Presentaciones similares


Presentación del tema: "Introducción a los dispositivos FPGAs. Análisis y ejemplos de diseño. Bozich, Eduardo Carlos Director: Ing. Sergio Noriega Modificada por Ing. F. Videla."— Transcripción de la presentación:

1 Introducción a los dispositivos FPGAs. Análisis y ejemplos de diseño. Bozich, Eduardo Carlos Director: Ing. Sergio Noriega Modificada por Ing. F. Videla

2 Realización de un kit de implementación en FPGA, para la cátedra de Introducción a los sistemas lógicos y digitales mediante la plaqueta experimental UPx10K10, con el dispositivo FLEX10K10experimental UPx10K10FLEX10K10 Objetivo

3 Tipos de lógica programada Estudio de implementación en AHDL: Medidor de frecuencia y período Adquisisdor autónomo de datos.Adquisisdor autónomo de datos Implementación en FLEX10K10 Contenido

4 PLD (Programmable Logic Device) características modificadas y almacenadas mediante programación Características de fabricación: Funcionabilidad completa Celdas de funciones universales PLD: SPLD CPLD FPGA PLD

5 SPLD (Simple Programmable Logic Device) Matrices de conexiones matriz de compuertas AND (intersección). matriz de compuertas OR (unión). PLDs mas pequeños y de menor costo SPLD: PLA PAL GAL SPLD

6 CPLD (Complex Programmable Logic Device) Bloques lógicos similares a un SPLD Matriz de interconexión programable Tecnologías de programación idem SPLD CPLD

7 FPGA (Field Programmable Gate Array) Mayor transferencia de datos y registros Tecnología de programación: antifusible, SRAM y flash FPGA

8 FLEX: Flexible Logic Element matriX Basados en LUT Programación SRAM 576 a elementos lógicos (LEs) (LUT de 4 entradas, flip-flop y lógica adicional) LABs de 8 LEs c/u 3 a 20 EABs de 2kbits por bloque de RAM interna Interconexión (Fast Track) de LEs, EABs e IOEs FPGA: FLEX10K

9 Medidor de frecuencias y períodos Entradas de medición compatibles con lógica TTL Rango en modo frecuencia: 1Hz a 100MHz. Rango en modo período: 100ns a 10s. Representación mediante 6 dígitos. Comunicación con PC a través de puerto paralelo en modo SPP. Adquisidor autónomo de datos Controlado desde PC a través de puerto paralelo en modo SPP. Control directo del proceso de adquisición de datos del conversor analógico digital ADC0820. Capacidad de almacenamiento de hasta 500 muestras. Dispositivo FPGA FLEX10K10 de Altera Implementaciones

10 Diagrama en bloques AHDL frecuencímetro

11 Señal de salida del Acondicionador Pulsos a contar por el contador Salida del Generador de base de tiempo Displays de 7 segmentos Acondicionador de señal Contador Generador de base de tiempo Latch y drive de LEDs Control de latch y drive Señal de entrada Frecuencímetro

12 6 Contadores sincrónicos 6 Latchs de 4bits c/u Cuádruple MUX 6:1 Decodificador BCD a 7 segmentos Displays de segmentos Bloque combinatorio Señal de entrada 10 MHz Selección de base base de tiempos babase de tiempos w z Generador de base de tiempos base de tiempos 10 MHz Ubicación del punto dp dp a, b, c, d, e, f, g tiempo Z W BT tiempo de conteo 0 0 S 0 / 0 S 1 / 1 S 2 / Señal Z: Maquina de Moore (puesta a cero) D Q clk clrn Vcc Z W base_tiempos Señal W: flip-flop tipoD carga Frecuencímetro en AHDL

13 selec_base[1..0]Duración del nivel alto de la base de tiempos 00 = ms 01 = ms 10 = 2100 ms 11 = 310 ms Bases de tiempos selec_base[1..0]Duración del nivel alto de la base de tiempos dígito que contiene el punto 00 = ms5 01 = ms4 10 = 2100 ms3 11 = 310 ms2 Ubicación del punto dp Frecuencímetro en AHDL

14 Displays de 7 segmentos Acondicionador de señal Contador Generador de pulsos de período definido Latch y drive de LEDs Control de latch y drive Señal de entrada Medidor de períodos

15 6 Contadores sincrónicos 6 Latchs de 4bits c/u Cuádruple MUX 6:1 Decodificador Decodificador BCD a 7 segmentos Displays de 7 segmentos Bloque combinatorio Señal de entrada 10 MHz Selección de base pulsos w z Generador de pulsos 10 MHz Ubicación del punto dp dp a, b, c, d, e, f, g Divisor base de tiempos Medidor de períodos en AHDL

16 selec_base[1..0]Período de la señal de pulsos 00 = 00.1us 01 = 11us 10 = 210us 11 = 3100us Pulsos de período definido selec_base[1..0]Período de la señal de pulsos dígito que contiene el punto 00 = 00.1us5 01 = 11us4 10 = 210us3 11 = 3100us2 Ubicación del punto dp Medidor de períodos en AHDL

17 Error de base de tiempos Error de pulsos contados Medidor de frecuencias selec_base[1..0]Duración del nivel alto de la base de tiempos Rango de frecuencias a medir [Hz] error [Hz] 00 = ms0.1 a = ms1 a = 2100 ms10 a = 310 ms100 a Medidor de períodos selec_base[1..0]PeríodoRango de períodos a medir [ms] error [us] 00 = 00.1 us a = 11us0.001 a = 210 us0.01 a = 3100 us0.1 a Nº pulsos contados: 1 – pulsos Error y rango de mediciones

18 Solución Prescaler que divida por 10 la señal de entrada Medidor de frecuencias con prescaler selec_base[1..0]Duración del nivel alto de la base de tiempos Rango de frecuencias a medir [Hz] error [Hz] 00 = ms1 a = ms10 a = 2100 ms100 a = 310 ms1000 a Medidor de períodos con prescaler selec_base[1..0]PeríodoRango de períodos a medir [ms] error [us] 00 = 00.1 us a = 11us a = 210 us0.001 a = 3100 us0.01 a Error y rango de mediciones

19 Rangos de medición teóricos para un error máximo del 10% Sin activación de prescaler Frecuencia: 0.1Hz a MHz Período : 1us a seg. Con activación de prescaler Frecuencia: 1Hz a MHz Período: 100ns a seg Limitación de la frecuencia máxima de la FPGA Rango de mediciones

20 Por puerto paralelo en modo SPP D7 a D0 como salidas y S6 a S3 como entradas pinpuertosentidoFunción D7datossalida activa_prescaler D6datossalida FoP D5datossalida selec_base[1] D4datossalida selec_base[0] D3datossalidacongela latchs (D2..D0)datossalidaselección dígito (S6..S3)estadoentradaoverflow y valor dígito (D2..D0)(S6..S3) 000 = 0Overflow 001 = 1valor dígito = 2valor dígito = 3valor dígito = 4valor dígito = 5valor dígito = 6valor dígito 6 Secuencia programa de PC: 1.(D7..D4) activo prescaler, modo frec o period., selec. base en forma contínua. 2.Activo carga mediante congelamiento de latch (D3). 3.Secuencia 0-6 en (D2..D0) para cargar overflow y dígitos 4.Se desactiva carga (D3) para refresco de latchs 5.Repeticion de 2-4 de forma necesaria. Comunicación con PC

21 FPGA ADC0820 /WR /RD /CS /INT DB[7..0] 10MHz datos[3..0] full clear cargar_fifo leer_fifo HoL_nibble clk_PC FIFO con palabras de 8 bits ADC0820 en modo WR-RD Adquisidor autónomo de datos

22 x100ns /WR /RD t WR t RD t P t IINTH máximomínimo t WR 50us600ns t RD 600ns tPtP 500ns t INTH 225ns Adoptamos t WR = 800ns t RD = 800ns t P = 800ns t INTH = 300ns Adquisidor autónomo de datos

23 Por puerto paralelo en modo SPP D4 a D0 como salidas y S7 a S3 como entradas pinpuertosentidonodo D0datossalida clear D1datossalida cargar_fifo D2datossalida leer_fifo D3datossalida HoL_nibble D4datossalida clk_PC S7estadoentrada full (S6..S3)estadoentrada datos[3..0] nibble HoL_nibbledatos[3..0] High0 q[7..4] Low1 q[3..0] Secuencia programa de PC: 1.D0 en 1 para limpiar memoria 2.Activo carga de FIFO mediante D1 hata que S7=1(full). 3.Activo lectura de FIFO con D2. 4.Con D3 en bajo, genero pulso de reloj en D4 y cargo high nibble en (S6..S3). 5.D3 en alto y cargo low nibble en (S6..S3). 6.Repito pasos 3 – 5 hasta cargar totalidad de muestras en PC. Adquisidor autónomo de datos con PC

24 Plaqueta UPx10K10 Implementación en FLEX10K10

25

26 Plaqueta FPGA con puerto paralelo de PC Implementación en FLEX10K10

27 Plaqueta Frecuencímetro Implementación en FLEX10K10

28 Plaqueta Adquisidor Implementación en FLEX10K10

29 Estructura de un elemento lógico. LE (logic element)

30 Modos de operación de los LEs

31 AHDL Base de tiempo

32 AHDL monoestable

33 AHDL salida W reset contador

34 AHDL Bloque cuenta (6 contadores)

35 AHDL Bloque de latchs Caso general

36 AHDL Bloque MPX

37 AHDL decodificadores BCD 7 SEG

38 AHDL punto

39 Medidor de periodos

40 Pines de control y datos FPGA ADC0820

41 Lectura escritura FIFO pinpuertosentidoFunción D7datossalida activa_prescaler D6datossalida FoP D5datossalida selec_base[1] D4datossalida selec_base[0] D3datossalidacongela latchs (D2..D0)datossalidaselección dígito (S6..S3)estadoentradaoverflow y valor dígito AHDL Visual Basic

42 Programación de la FPGA Programación de la FPGA. Posteriormente vamos a proceder a programar la FPGA. Para esto vamos a programar la EPC2 de la UPx10K10 a través de la interfase ByteBlaster. Los pasos a seguir son los siguientes: 1.Verificamos que la EPC2 está en su zócalo, y que el jumper J1-EPC2 no está colocado. 2. Como no hay plaquetas enchufadas en CON1 o CON2, verificamos que también los jumpers J1-CON1 y J1-CON2, respectivamente, estén colocados. 3. Conectamos el cable de impresora entre la PC y la UPx10K10, y conectamos la fuente comprobando que tiene energía (LED encendido). 4. Generamos el archivo.pof de programación de la EPC2. Para ello: Con la ventana del Compiler abierta, vamos a la opción File de la línea superior y elija Convert SRAM Object File. Elegimos el archivo.sof a convertir y lo ingresamos mediante Add a la lista 5. Elegimos el Programmer en el MAX+PLUS II, vamos a OPTIONSHardware Setup, y seleccionamos como programador el ByteBlaster. 6. Aún en el Programmer en el MAX+PLUS II, colocamos en ON la opción MultiDevice JTAG Chain en el sub-menú JTAG. 7. Elegimos MultiDevice JTAG Chain Setup en ese submenú. 8. Seleccionamos EPC2 en la ventana Device Name. 9. Escribimos el nombre del archivo de programación en la ventana Programming File Name (para esta tarea también podemos usar el botón Select Programming File). Este archivo puede tener la extensión.pof, aunque también.jam o.jbc. 10. Una vez elegidos el dispositivo y el archivo de programación, apretamos el botón Add para incorporar ambos a la ventana Device Names & Programming File Names. 11. Seleccionamos ahora EPF10K10 en la ventana Device Name. 12. Borramos el contenido de la ventana Programming File Name y apretamos el botón Add para incorporar ambos a la ventana Device Names & Programming File Names. En la zona correspondiente al archivo asociado a la EPF10K10 aparecerá como texto. 13. Si todo se ha realizado correctamente, en la ventana Device Names & Programming File Names debe estar en el puesto 1º la EPF10K10 (con ) y en 2º lugar la EPC2 (con su archivo.pof) como muestra la figura Apretamos el botón Detect JTAG Chain Info para verificar si todo funciona bien. A través del ByteBlaster interno de la UPx10K10 el MAX+PLUS II debe detectar la EPF10K10 y la EPC Archivamos estas opciones mediante el botón Save.JCF (JTAG Configuration File). 16. Finalmente volvemos al Programmer en el MAX+PLUS II, y eligimos Program.

43 Comandos en VB para carga y descarga de memoria FIFO

44 FIN


Descargar ppt "Introducción a los dispositivos FPGAs. Análisis y ejemplos de diseño. Bozich, Eduardo Carlos Director: Ing. Sergio Noriega Modificada por Ing. F. Videla."

Presentaciones similares


Anuncios Google