Autor Tema: Libro Diario con la Spartan-3AN (FPGA)  (Leído 61804 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Libro Diario con la Spartan-3AN (FPGA)
« en: 26 de Octubre de 2008, 16:48:22 »
Hola amigos y amigas.

Quiero empezar a escribir sobre mis primeros pasos en la odisea de aprender a trabajar con las FPGA y en general con dispositivos lógicos programables.

1.   Por que es importante trabajar con Dispositivos Lógicos Programables?

Actualmente, los avances tecnológicos en semiconductores y por ende de los dispositivos programables son impresionantes. La gran competencia entre diferentes marcas de fabricantes de Microcontroladores por sacar al mercado dispositivos más potentes, con más periféricos, con menos consumo de energía, y cada vez más pequeños, son una muestra de ello.  El nacimiento de los microcontroladores permitió una de las revoluciones tecnológicas más grandes de todos los tiempos. Sus bajos costos, altas prestaciones y gran flexibilidad los hacen los dispositivos por excelencia en muchos de los productos electrónicos que hay actualmente en el mercado. Pero por mas potentes que sean los microcontroladores actuales, por mas veloces que los fabriquen, siempre hay una limitación.

Los Microcontroladores (MCUs), al igual que los procesadores digitales de señales (DSPs) y los controladores digitales de señales (DSCs). Son circuitos integrados diseñados para interpretar y ejecutar un programa de forma secuencial. El procesador lee y ejecuta una por una las instrucciones programadas por el usuario y toma decisiones de forma secuencial dependiendo de la respuesta del circuito que lo acompañe externamente. El gran problema llega cuando se necesitan ejecutar dos o más instrucciones al mismo tiempo, cuando se necesitan leer 2 o mas señales al mismo tiempo, cuando se quieren obtener varias señales muy importantes en el mismo instante de tiempo.   Esto se denomina “Paralelismo” o capacidad de realizar tares en forma paralela.  Es en este preciso instante que el diseñador electrónico debe tomar una decisión y abandonar la idea de seguir trabajando con MCUs, y/o DSPs, y/o DSCs.  Los dispositivos Lógicos Programables, solucionan este gran problema.

2.   Diferencia entre los MCUs, DSPs, DSCs y los PLDs.

En los Dispositivos Lógicos Programables (PLDs), no se programa el comportamiento del chip creando un “Software” para que sea ejecutado de forma secuencial. Acá se programa es el comportamiento del “Hardware” para que responda de forma instantánea según las entradas programadas.

Para entenderlo mejor podemos ver este ejemplo:

Si usáramos un PIC para que lo que entre por un PIN salga por otro pero negado, seria necesario hacer esto:

Repetir:
     Btfss   porta,0
     Goto    Sacar0
Sacar1:
     Bsf     porta,1
     Goto    repetir
Sacar0:
     Bcf     porta,1
     Goto    repetir
      
Vemos que el MCU en este caso un PIC, debe primero preguntar por el estado de un PIN (pin_a0), luego según el valor leído decide si salta o no para colocar un 1 o un 0 a la salida (pin_a1), luego salta atrás para repetir este proceso.  Si habláramos en tiempo necesitado para realizar esta tarea, serian más de 6 ciclos de instrucción que se convierten en 6x4 ciclos de reloj. Así tengamos un PIC corriendo a 12MIPS (Con cristal de 48MHz), existirá un instante de tiempo en el que el procesador estará ejecutando lo de abajo (Sacando un 1 o un 0) o saltando para regresar y no podrá ver si existió un cambio a la entrada. Ahora imaginemos un proceso mucho mas largo después de leer la entrada…

Ahora bien, en un dispositivo lógico programable (PLD) como se haría este proceso:

 
No hay retardo alguno, es hardware realizando esta tarea, no hay que leer instrucción alguna, no hay pérdida de tiempo. Bueno el único tiempo es el que nunca se podrá evitar y es el del cambio de estado a la salida.

Con lo anterior podríamos decir que cuando programamos un PLD no programamos Software sino Hardware, es por esto que los lenguajes para programar estos dispositivos se les llaman lenguajes de descripción de hardware.



Una Petición:
Este Subforo, no debería llamarse VHDL (Lenguaje para Descripción), ya que VHDL hace referencia un lenguaje específico para programar los PLDs. También existe Verilog y otra forma de programar que es descripción grafica. 
Debería llamarse Dispositivos Lógicos Programables (PLDs y FPGAs).

Tampoco creo que deba estar entre Entornos de Programación para PC, ya que no es un PC al que se programa.
« Última modificación: 26 de Octubre de 2008, 21:42:17 por PICmouse »

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #1 en: 26 de Octubre de 2008, 16:53:40 »
Buena iniciativa,Ernesto.
¿Cual es tu plan de ataque? ¿ModelSim? ¿Ise?
¿Ejemplos para poner en práctica sobre una placa de pruebas?


Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #2 en: 26 de Octubre de 2008, 17:00:13 »
Hola amigo Modulay, la idea es mostrar los proyectos que empezare a trabajar con el entrenador que recién compre y me llego ayer :).

« Última modificación: 26 de Octubre de 2008, 21:33:35 por PICmouse »

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #3 en: 26 de Octubre de 2008, 17:03:08 »
Ise...estupendo.
Yo te puedo colaborar con algunos ejemplos si te parece bien: registros,contadores,decodificadores y esas cosas

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #4 en: 26 de Octubre de 2008, 18:15:40 »
Me suscribo al hilo. Gracias por la idea, Ernesto.

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #5 en: 26 de Octubre de 2008, 20:18:54 »
Hola amigo Manolo, Ten por seguro que estaré metido en este tema tiempo completo, ya que es uno de los temas que mas me han interesado y que me han llevado a ingresar nuevamente a la U.

Amigo Modulay, Claro que si, es un gusto que todos aportemos al tema, así se enriquece el hilo.

3.   Utilidad real de los dispositivos programables.

Los PLDs nacieron desde 1970 cuando TEXAS Instrument desarrollo un C.I que fue denominado de Mascara programable basados en memorias ROAM. Mas adelante en 1971 nacieron las PLA creados por Nacional Instruments,  después General Electric saco los primeros PLD, basados en memorias EPROM. En 1978 nacieron las PAL (Programmable Array Logic). En 1985 Lattice Semiconductors desarrollo las GAL, con las cuales se podían diseñar circuitos con más de 100 puertas lógicas, con la ventaja que ahora su memoria podía ser borrada eléctricamente y reutilizada. Las GAl fue la solución durante mucho tiempo cuando se necesitaban implementar circuitos digitales combinacionales y secuenciales no muy complejos.  Con la necesidad de implementar circuitos cada vez más complejos, nacieron las CPLDs que no es más que PLDs Complejos, que pueden llegar a incorporar cientos de miles de compuertas lógicas.  Ya su hermano mayor son las FPGA, que es el máximo dispositivo lógico programable que existe, en la cual se pueden implementar diseños en los que se necesitan un alto grado de paralelismo y procesamiento de datos en tiempo real. Las FPGA actualmente las podríamos encontrar en pantallas RGB gigantes, ya que se pueden generar la cantidad de señales PWM que se deseen, todas totalmente sincronizadas y sin ningún tipo de restricción de tiempo. Los Televisores gigante de plasma o LCD del mercado necesitan de esto para poder controlar todos los píxeles sin ningún problema.

Actualmente las FPGA están siendo combinadas con DSPs y con MCUs en una misma pastilla, es decir lo mejor de todos los mundos en una sola pastilla. ATMEL es uno de estos fabricantes, XILINX es líder de ventas a nivel mundial de PLDs. En mi caso, seleccione la SPARTAN-3AN que es una FPGA con FLASH interna de 16MBytes, con mas de 1.400.000 compuertas. 2816 Bloques lógicos, y 502 pines I/O.

Este es un video que hago para que vean una practica de demostración que trae la FPGA pre-programada de fabrica en el entrenador. Podemos ver algu muy muy importante.




Una FPGA es capas de:

Generar señal de VIDEO VGA para el monitor.
Genera señal de audio con mensajes y musica que es amplificada por los parlantes externos.
Leer un teclado o un Mouse PS2.
Envia y recibe datos RS232.
Controla pantalla LCD 2x16 alfanumerica
Lee 4 interruptores on/off y uno rotatorio, 4 pulsadores
8 Leds.

Y todo lo anterior al tiempo!
« Última modificación: 26 de Octubre de 2008, 21:43:44 por PICmouse »

Desconectado jpernesto_666

  • PIC10
  • *
  • Mensajes: 13
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #6 en: 04 de Noviembre de 2008, 03:12:19 »
 :shock: wooooooorales,esa aplicacion del vidoe que pusiste se ve mega interesante,tengo muchas ganas de experimentar con un fpga,habia oido de sus capacidades pero ahora no me queda duda de su potencial,ya haz realizado alguna aplicacion tuya para estos dispositivos???,saludos!.

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #7 en: 05 de Noviembre de 2008, 00:42:47 »
Hola jpernesto_666-

No, hasta ahora estoy empezando con este mundo de las FPGAs. La idea es lograr lo mismo del vídeo, pero haciéndolo desde cero y entendiendo como se hace.}

SALUDOS!

Desconectado pato

  • PIC10
  • *
  • Mensajes: 12
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #8 en: 04 de Diciembre de 2008, 23:23:10 »
amigos que paso me parece muy interesante este tema ...porfaaa colaboren qe me gustaria aprender sobre ello

pato :-)
Pato

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #9 en: 05 de Diciembre de 2008, 00:43:28 »
Tranquilo pato, que estoy preparando una demostración del potencial de estos dispositivos lógicos programables con algo que todos estamos intentando lograr con PIC, pero que se hace un poco complicado.

Específicamente es sobre lo que estamos tratando en este hilo. Un Giroplay es lo que estoy construyendo y gobernado por un PIC16F628 para controlar los datos a ver en la pantalla, y una CPLD seria el generador PWM para los led RGB.

Como comentaba antes una CPLD es:
Citar
las CPLDs que no es más que PLDs Complejos, que pueden llegar a incorporar cientos de miles de compuertas lógicas

Ya veremos que resulta de este esfuerzo..

SALUDOS!!



Desconectado manutek

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 555
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #10 en: 05 de Diciembre de 2008, 01:01:48 »
TRE-MEN-DO! :shock: :shock: :shock: :shock:
No es la conciencia del hombre la que determina su ser, sino, por el contrario, es su ser social el que determina su conciencia

Desconectado joshdaniel

  • PIC10
  • *
  • Mensajes: 7
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #11 en: 21 de Diciembre de 2008, 01:28:44 »
hola, estoy aprendiendo un poco sobre fpga y decidi pedir el SPARTAN 3AN y bueno fue un erro mio supongo ya que ni bien me llego decidi probarlo y por la impaciencia no lei la guia de inicio rapido lo encendi y vi que los leds  parpadeaban, bueno yo esperaba como vi en un video un mensaje de inicio en el LCD, pero no aparecio ninguno. Luego despues de modificar sin sentido los jumpers y sin obtener resultados encontre la guia de inicio rapido y bueno hice todo lo que dice, consegui muchas cosas como por ejemplo del conector vga yel audio pero no los mensajes en el lcd y tampoco poder cambiar el item de configuracion que sale en la pantalla de video, cuando presionaba uno de los cuatro botones me aparecia en la pantalla "terminal" o sino una imagen rara. Bueno solo quisiera saber el cambio irracional que hice de los jumpers pudieron afectar esas funciones. Gracias de antemano y prometo no ser tan tonto para hacer lo mismo otra vez aqui le dejo mi blog con imagenes de la prueba!!!!!!!!. http://josh-disenio.blogspot.com/

Atte Joshdaniel
« Última modificación: 21 de Diciembre de 2008, 01:34:13 por joshdaniel »

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #12 en: 22 de Diciembre de 2008, 10:58:01 »
Que buena noticia!! De seguro lograremos practicas interesantes con esta tarjeta!.

Esta SPARTAN es barata pero potente..Ahora que estoy en Vacaciones, entraremos de lleno con este tema.

SALUDOS!

PD: Bienvenido al FORO!

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #13 en: 23 de Diciembre de 2008, 12:25:31 »
hola PICmouse, yo tambien estaba viendo si me compraba una tarjeta digilent, y ahora no me queda mas claro, la voy a adquirir, una pregunta, como se programan? ya tiene el programador JTAG integrado en la tarjeta? o tengo que adquirirlo aparte? saludos
mas preguntas, donde la pediste? directo de la pagina? estuve buscando el modelo que tienes y no aparece, solo la Spartan 3E Starter Board que es la que mas se le parece, saludos
« Última modificación: 23 de Diciembre de 2008, 12:29:57 por scientist »
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Libro Diario con la Spartan-3AN (FPGA)
« Respuesta #14 en: 23 de Diciembre de 2008, 12:44:13 »
Hola scientist!

NO COMPRES LA 3E!

La 3AN es la ultima que salio de XILINX, entre sus mejoras, esta en que tiene la memoria FLASH interna y ademas es de mayor capacidad que la que trae la 3E externa.

Lo del JTAG, efectivamente ya trae el programador interno en la tarjeta. comprando el sistema de desarrollo tienes todo para trabajar con ella.

La compra fue directa a XILINX.. Acá la tienes.

El tipo de lenguaje de descripción que usare es VERILOG y SCHEMATIC. Este ultimo estoy trabajando por ratos en un proyecto con CPLD y asi empezamos por lo mas bajo.

SALUDOS!