Dudas sobre placas con FPGA

dragonet80
Mensajes: 120
Registrado: 28 Nov 2017 12:36
Agradecido : 69 veces
Agradecimiento recibido: 42 veces

Dudas sobre placas con FPGA

Mensajepor dragonet80 » 30 Nov 2017 10:23

Buenos días.

Hace tiempo que le doy vueltas a un proyecto para el cual necesitaré usar una FPGA, pero antes estoy intentando informarme bien de como funcionan. Voy mirando las placas que existen para ver cual me podría servir de base para empezar a desarrollar.

La primera duda que me surge es: ¿para que sirve la memoria flash por spi que llevan algunas placas? Entiendo que la memoria DRAM o SRAM que suelen llevar casi todas las placas es para ampliar la "poca" memoria interna de una FPGA, pero la memoria flash no veo cual es su utilidad. Además de que haya placas que no la tengan y eso me despista mas.

La segunda es: ¿para que sirve la ranura microSD? Como hay placas que no la tienen supongo que no es algo imprescindible, pero, para las que sí la tienen, ¿cual es su finalidad? ¿Programar la FPGA sin necesidad de conectarla a un ordenador? O, simplemente, ¿un almacenamiento de datos al que puede acceder FPGA?

La tercera seria: ¿se puede substituir una FPGA de la misma marca y gama por otra con número mayor de elementos lógicos siempre y cuando tenga el mismo número de pines? Por ejemplo, en la ZXUNO no hay posibilidad, ya que se eligió el encapsulado TQG144, pero si se hubiese elegido el CSG324, entonces ¿se podría cambiar la XC6SLX9 por la XC6SLX45 y que todo siguiese funcionando exactamente igual?

Y, por último, de momento, es si las herramientas que hay para diseñar, configurar y programar son libres o gratuitas. Veo que la marca mas utilizada es Xilinx, aunque hay otras como Altera o Lattice. ¿Es Xilinx la mas recomendada? ¿Hay cores y diseños disponibles para usarlos libremente y que uno no tenga que empezar desde cero?

Bueno, si me respondéis alguna de estas dudas ya me habréis ayudado bastante a entender este nuevo mundo.

Avatar de Usuario
carmeloco
Mensajes: 1254
Registrado: 16 Dic 2015 08:56
Agradecido : 5 veces
Agradecimiento recibido: 116 veces

Re: Dudas sobre placas con FPGA

Mensajepor carmeloco » 30 Nov 2017 11:04

La flash es para cargar el archivo de configuración de la FPGA, ya sea un core o lo que hayas programado para que corra en esa FPGA.

dragonet80
Mensajes: 120
Registrado: 28 Nov 2017 12:36
Agradecido : 69 veces
Agradecimiento recibido: 42 veces

Re: Dudas sobre placas con FPGA

Mensajepor dragonet80 » 30 Nov 2017 11:48

Hola carmeloco, gracias por tu interés.

No me acaba de quedar claro. Perdona mi ignorancia en este tema (las FPGAs) que acabo de conocer. Tengo un poco de experiencia programando microcontroladores (Microchip, Atmel, ST) para lo cual uso un programador o, si el micro ya tiene un bootloader (como Arduino) entonces le puedo enviar directamente la programación por cable usb sin necesidad del programador.
¿Quieres decir que el programa, sintetización o como se llame en la FGPA es una especie de memoria volátil y por eso necesita una flash externa? O sea, cada vez que se reseta o se enciende una FPGA, ¿ésta tiene que "reprogramarse"?

Quizá esté haciendo preguntas demasiado básicas y éste no sea el lugar.

Avatar de Usuario
carmeloco
Mensajes: 1254
Registrado: 16 Dic 2015 08:56
Agradecido : 5 veces
Agradecimiento recibido: 116 veces

Re: Dudas sobre placas con FPGA

Mensajepor carmeloco » 30 Nov 2017 11:57

dragonet80 escribió:Hola carmeloco, gracias por tu interés.

No me acaba de quedar claro. Perdona mi ignorancia en este tema (las FPGAs) que acabo de conocer. Tengo un poco de experiencia programando microcontroladores (Microchip, Atmel, ST) para lo cual uso un programador o, si el micro ya tiene un bootloader (como Arduino) entonces le puedo enviar directamente la programación por cable usb sin necesidad del programador.
¿Quieres decir que el programa, sintetización o como se llame en la FGPA es una especie de memoria volátil y por eso necesita una flash externa? O sea, cada vez que se reseta o se enciende una FPGA, ¿ésta tiene que "reprogramarse"?

Quizá esté haciendo preguntas demasiado básicas y éste no sea el lugar.

Yo te hablo de la experiencia que he tenido hasta ahora con las FPGA, que son el ZX-Uno, el cartucho Carnivore2 para MSX y la Zemmix Neo. Todas ellas, llevan un chip flash que lleva el código a cargar en la FPGA. En el ZX-Uno, incluso he llegado a cargar código en la FPGA directamente, sin usar la flash, pero se pierde al apagar, ya que no tiene ningún tipo de almacenamiento propio, de forma que si, cada vez que se enciende, se auto-programa desde el contenido de esa flash externa.

Avatar de Usuario
gflorez
Mensajes: 1130
Registrado: 12 Sep 2014 19:58
Agradecido : 33 veces
Agradecimiento recibido: 205 veces

Re: Dudas sobre placas con FPGA

Mensajepor gflorez » 30 Nov 2017 12:33

Desde mi ignorancia, yo creo que la flash se usa para almacenar las opciones específicas de la máquina emulada, ya que cada core emula una familia de micros con variadas posibilidades de memoria y ampliaciones.

Avatar de Usuario
Jinks
Mensajes: 1314
Registrado: 09 Oct 2013 16:47
Agradecido : 60 veces
Agradecimiento recibido: 123 veces
Contactar:

Re: Dudas sobre placas con FPGA

Mensajepor Jinks » 30 Nov 2017 12:41

Para ignorancia la mía, comparto creo que todas las dudas de dragonet80 (salvo la SD, que supongo que los sistemas basados en FPGA utilizan tanto para los cores a cargar como para el almacenamiento externo de los sistemas emulados) y muchas más, por lo que echo en falta una buena introducción. He intentado leer varias cosas sobre el tema, pero ninguna me ha servido. O son muy genéricas y no explican nada, o son demasiado específicas para un determinado chip de un determinado fabricante y los conceptos se dan por sabidos. Necsitaría que alguien me dijese por dónde empezar.

Avatar de Usuario
carmeloco
Mensajes: 1254
Registrado: 16 Dic 2015 08:56
Agradecido : 5 veces
Agradecimiento recibido: 116 veces

Re: Dudas sobre placas con FPGA

Mensajepor carmeloco » 30 Nov 2017 14:48

Olvidaros del concepto "core" que tenemos del ZX-Uno y de las "máquinas emuladas". Una FPGA se puede usar para hacer muchísimas más cosas.
En el ZX-Uno, se carga inicialmente una configuración de la FPGA, que se basa en el core de Spectrum, que arranca la BIOS. Cuando le decimos que cargue el core de una máquina específica, carga otra configuración en la FPGA, que es el core que le hemos dicho que cargue. Todo ello, está almacenado en el chip de flash, y cada core, es una configuración completa de la FPGA.
En el caso del Carnivore2, se carga el firmware que maneja todos los dispositivos que tiene implementados (SCC+, FMPAC, FLASHROM...) que no es más que una configuración específica de la FPGA, y se carga también desde la flash que lleva, pero no es una implementación de un ordenador, si no que es una implementación de un periférico.
En el caso de la Zemmix, es una implementación MSX2+, y se carga la configuración de la FPGA desde la flash, cada vez que lo encendemos o le hacemos un "hard reset" que consiste en mantener pulsado el botón de reset hasta que se apaga el led de abajo de todo, de todos los que se encienden.

Avatar de Usuario
Kyp
Mensajes: 330
Registrado: 03 Oct 2013 17:13
Agradecido : 5 veces
Agradecimiento recibido: 46 veces

Re: Dudas sobre placas con FPGA

Mensajepor Kyp » 30 Nov 2017 16:50

dragonet80 escribió:La primera duda que me surge es: ¿para que sirve la memoria flash por spi que llevan algunas placas? Entiendo que la memoria DRAM o SRAM que suelen llevar casi todas las placas es para ampliar la "poca" memoria interna de una FPGA, pero la memoria flash no veo cual es su utilidad. Además de que haya placas que no la tengan y eso me despista mas.

La FPGA es volátil, su programación solo dura mientras está alimentada. La flash sirve para almacenar esa programación y que se cargue automáticamente al encender.

dragonet80 escribió:La segunda es: ¿para que sirve la ranura microSD? Como hay placas que no la tienen supongo que no es algo imprescindible, pero, para las que sí la tienen, ¿cual es su finalidad? ¿Programar la FPGA sin necesidad de conectarla a un ordenador? O, simplemente, ¿un almacenamiento de datos al que puede acceder FPGA?

El conector SD y cualquier otro que lleve la placa esta ahí por comodidad, para que esté a mano en el caso de que se sintetize algo que pueda usarlo. Hay placas que llevan un micro además de la FPGA y el micro también puede acceder a la SD de forma que el micro puede leer el bitstream y cargarlo en la FPGA (en vez de usar una flash spi).

dragonet80 escribió:La tercera seria: ¿se puede substituir una FPGA de la misma marca y gama por otra con número mayor de elementos lógicos siempre y cuando tenga el mismo número de pines?

Si además de tener el mimo nº de pines coinciden los de alimentación, jtag, etc... supongo que sí. No se si será el caso.

dragonet80 escribió:Y, por último, de momento, es si las herramientas que hay para diseñar, configurar y programar son libres o gratuitas. Veo que la marca mas utilizada es Xilinx, aunque hay otras como Altera o Lattice. ¿Es Xilinx la mas recomendada? ¿Hay cores y diseños disponibles para usarlos libremente y que uno no tenga que empezar desde cero?

Yo solo conozco las de Xilinx y si, es gratuito hasta cierto punto. Y por lo que he oído, los demás también.

La descripción (el código VHDL o Verilog) en teoría es independiente de la FPGA pero en la práctica se usan características especiales de cada fabricante y no siempre son intercambiables.

El core, si llamamos a eso al bitstream que se carga en la FPGA, es específico, no solo del fabricante, sino del modelo de chip.

dragonet80
Mensajes: 120
Registrado: 28 Nov 2017 12:36
Agradecido : 69 veces
Agradecimiento recibido: 42 veces

Re: Dudas sobre placas con FPGA

Mensajepor dragonet80 » 30 Nov 2017 19:46

Muchas gracias por las respuestas Kyp.

Voy a ver si empiezo a practicar un poco con la Icezum Alhambra y los fantásticos tutoriales que he encontrado de Obijuan:
https://github.com/Obijuan/digital-electronics-with-open-FPGAs-tutorial/wiki
Después ya veré por cual tiro, esa se ve muy bien para aprender, pero es muy corta para cosas mas serias.


Volver a “Emulaciones software, FPGA y otras soluciones”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados