Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo
Realizacin de un kit de implementacin en FPGA, para la ctedra de Introduccin a los
Contenido
Tipos de lgica programada
Estudio de implementacin en AHDL: Medidor de frecuencia y perodo Adquisisdor autnomo de datos. Implementacin en FLEX10K10
PLD
PLD (Programmable Logic Device) caractersticas modificadas y almacenadas mediante programacin Caractersticas de fabricacin: Funcionabilidad completa Celdas de funciones universales PLD: SPLD CPLD FPGA
SPLD
SPLD (Simple Programmable Logic Device) Matrices de conexiones matriz de compuertas AND (interseccin). matriz de compuertas OR (unin). PLDs mas pequeos y de menor costo SPLD:
CPLD
CPLD (Complex Programmable Logic Device) Bloques lgicos similares a un SPLD
FPGA
FPGA (Field Programmable Gate Array)
Mayor transferencia de datos y registros
FPGA: FLEX10K
FLEX: Flexible Logic Element matriX
Basados en LUT Programacin SRAM 576 a 12160 elementos lgicos (LEs) (LUT de 4 entradas, flip-flop y lgica adicional) LABs de 8 LEs c/u 3 a 20 EABs de 2kbits por bloque de RAM interna Interconexin (Fast Track) de LEs, EABs e IOEs
Implementaciones
Medidor de frecuencias y perodos
Entradas de medicin compatibles con lgica TTL Rango en modo frecuencia: 1Hz a 100MHz. Rango en modo perodo: 100ns a 10s. Representacin mediante 6 dgitos. Comunicacin con PC a travs de puerto paralelo en modo SPP.
Frecuencmetro
Generador de base de tiempo
Seal de entrada
Acondicionador de seal
Contador
f seal
Displays de 7 segmentos
Frecuencmetro en AHDL
Bloque combinatorio
Seal de entrada
BT
base de tiempos
10 MHz
Seleccin de base
10 MHz
base de tiempos
6 Contadores sincrnicos
tiempo de conteo
tiempo
w
Ubicacin del punto dp
tiempo
S1/ 1
0
1
S2/ 0
Decodificador
S0/ 0
a, b, c, d, e, f, g
carga
Vcc D
clrn
Displays de segmentos
clk
Frecuencmetro en AHDL
Bases de tiempos
selec_base[1..0] 00 = 0 01 = 1 10 = 2 11 = 3 Duracin del nivel alto de la base de tiempos 10000 ms 1000 ms 100 ms 10 ms
f seal
Medidor de perodos
Generador de pulsos de perodo definido
Seal de entrada
Acondicionador de seal
Contador
Displays de 7 segmentos
pulsos
10 MHz
Seleccin de base
10 MHz
base de tiempos
pulsos
Generador de pulsos
6 Contadores sincrnicos
z
6 Latchs de 4bits c/u
dp
Decodificador
a, b, c, d, e, f, g
Displays de 7 segmentos
Medidor de frecuencias
selec_base[1..0] 00 = 0
01 = 1
10 = 2 11 = 3
1000 ms
100 ms 10 ms
1 a 999999
10 a 9999990 100 a 99999900
1
10 100
Medidor de perodos
selec_base[1..0] 00 = 0 01 = 1 10 = 2 11 = 3
Rango de perodos a medir [ms] 0.0001 a 99.9999 0.001 a 999.999 0.01 a 9999.99 0.1 a 99999.9
Rango de mediciones
Rangos de medicin tericos para un error mximo del 10% Sin activacin de prescaler
Comunicacin con PC
Por puerto paralelo en modo SPP
(S6..S3) Overflow valor dgito 1 valor dgito 2 valor dgito 3 valor dgito 4 valor dgito 5 valor dgito 6
FPGA
DB[7..0]
ADC0820
/CS
/WR
Adoptamos
tWR = 800ns
tRD = 800ns tP = 800ns tINTH = 300ns
tWR
/WR
tRD
tP
tIINTH
/RD
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
x100ns
HoL_nibble
0 1
Implementacin en FLEX10K10
Plaqueta UPx10K10
Implementacin en FLEX10K10
Implementacin en FLEX10K10
Plaqueta FPGA con puerto paralelo de PC
Implementacin en FLEX10K10
Plaqueta Frecuencmetro
Implementacin en FLEX10K10
Plaqueta Adquisidor
AHDL monoestable
AHDL decodificadores
BCD 7 SEG
AHDL punto
Medidor de periodos
Funcin
activa_prescaler FoP selec_base[1] selec_base[0]
Programacin de la FPGA
4.6.1.3 Programacin de la FPGA. Posteriormente vamos a proceder a programar la FPGA. Para esto vamos a programar la EPC2 de la UPx10K10 a travs de la interfase ByteBlaster. Los pasos a seguir son los siguientes: 1.Verificamos que la EPC2 est en su zcalo, y que el jumper J1-EPC2 no est colocado. 2. Como no hay plaquetas enchufadas en CON1 o CON2, verificamos que tambin los jumpers J1-CON1 y J1-CON2, respectivamente, estn colocados. 3. Conectamos el cable de impresora entre la PC y la UPx10K10, y conectamos la fuente comprobando que tiene energa (LED encendido). 4. Generamos el archivo .pof de programacin de la EPC2. Para ello: Con la ventana del Compiler abierta, vamos a la opcin File de la lnea 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. An en el Programmer en el MAX+PLUS II, colocamos en ON la opcin 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 programacin en la ventana Programming File Name (para esta tarea tambin podemos usar el botn Select Programming File). Este archivo puede tener la extensin .pof, aunque tambin .jam o .jbc. 10. Una vez elegidos el dispositivo y el archivo de programacin, apretamos el botn 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 botn 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 <none>. 13. Si todo se ha realizado correctamente, en la ventana Device Names & Programming File Names debe estar en el puesto 1 la EPF10K10 (con <none>) y en 2 lugar la EPC2 (con su archivo .pof) como muestra la figura 4.32. 14. Apretamos el botn Detect JTAG Chain Info para verificar si todo funciona bien. A travs del ByteBlaster interno de la UPx10K10 el MAX+PLUS II debe detectar la EPF10K10 y la EPC2. 15. Archivamos estas opciones mediante el botn Save .JCF (JTAG Configuration File). 16. Finalmente volvemos al Programmer en el MAX+PLUS II, y eligimos Program.
FIN