Pregunta FPGA y múltiples cores

Responder
sromero
Mensajes: 72
Registrado: 20 Mar 2016, 12:57

Pregunta FPGA y múltiples cores

Mensaje por sromero » 19 Sep 2016, 12:35

Hola a todos...

Tengo curiosidades sanas sobre el zxuno y los cores, y como no he tenido la necesidad/oportunidad nunca de trabajar con FPGAs (lo máximo las prácticas con el OrcadPLD en la carrera para hacer la típica ALU), pues pregunto por si alguien quiere iluminarme...

¿Cómo están implementados los cores en la FPGA? Me refiero al tener más de un core en la misma placa... ¿están, digamos, en diferentes "partes" de la "superficie" de la FPGA y se "alimenta" uno u otro según el seleccionado? ¿Se flashea en cada arranque el core del sistema elegido?

Gracias :)

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Pregunta FPGA y múltiples cores

Mensaje por Quest » 19 Sep 2016, 12:44

sromero escribió: ¿Cómo están implementados los cores en la FPGA? Me refiero al tener más de un core en la misma placa... ¿están, digamos, en diferentes "partes" de la "superficie" de la FPGA y se "alimenta" uno u otro según el seleccionado? ¿Se flashea en cada arranque el core del sistema elegido?
La FPGA se "programa" toda entera de una vez. Por defecto siempre está vacía (su "contenido" se borra cuando deja de tener corriente).

La FPGA tiene incorporado un sistema de carga del bitstream (el archivo, o "chorizo" de bits que necesita la FPGA para configurarse, o "llenarse" de un diseño de hardware), mediante un bus SPI. Nada más proporcionarle corriente, la FPGA se configura con el contenido (parte de el) de la FLASH SPI que hay incorporada en la placa.

La flash que nosotros hemos puesto, es de 4 Megabytes (32Mbits), y el tamaño de los bitstreams es de 336K. Hemos organizado la Flash de tal manera que, entre otras cosas, podemos tener 9 cores grabados en la misma, y desde uno de los cores (en nuestro caso el de Spectrum, que es el primero en arrancar, y el primero que encuentra la FPGA cuando se enciende), cuando queremos cambiar de core, le decimos a la FPGA que lea de X offset de la Flash y se reconfigure con su contenido, y luego haga un reboot. Entonces la FPGA se "llena" con el contenido del nuevo bitstream y empieza a comportarse como una nueva máquina.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

sromero
Mensajes: 72
Registrado: 20 Mar 2016, 12:57

Re: Pregunta FPGA y múltiples cores

Mensaje por sromero » 19 Sep 2016, 13:58

Gracias por el detalle.

¿La FPGA tiene un número limitado de "grabaciones"? (¿o eso es la flash?). La duda es si el zxuno tiene un número limitado de "arranques", por alto que éste sea...

PD: Por cierto, voy a aprovechar para agradeceros todo el curro con el ZXUNO, estoy encantado con el cacharro :)

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Pregunta FPGA y múltiples cores

Mensaje por Quest » 19 Sep 2016, 14:04

sromero escribió:Gracias por el detalle.

¿La FPGA tiene un número limitado de "grabaciones"? (¿o eso es la flash?). La duda es si el zxuno tiene un número limitado de "arranques", por alto que éste sea...
Pues te doy datos oficiales de los fabricantes:

- Según Xilinx, la FPGA puede grabarse un número ilimitado de veces :)
- Según Winbond, la SPI Flash que montamos, aguanta más de 100.000 ciclos de escritura/borrado.

Así que como veis, hay ZX-UNO "pa rato" :D :D

PD: Por cierto, voy a aprovechar para agradeceros todo el curro con el ZXUNO, estoy encantado con el cacharro :)
Gracias a vosotros, los que apoyasteis el proyecto! Si no, el crowdfunding no hubiera sido posible :maestro:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

BCH
Mensajes: 170
Registrado: 01 May 2016, 10:55

Re: Pregunta FPGA y múltiples cores

Mensaje por BCH » 19 Sep 2016, 14:33

Se podria poner una flash mas grande para tener mas cores disponibles?

azesmbog
Mensajes: 319
Registrado: 17 Feb 2016, 23:07

Re: Pregunta FPGA y múltiples cores

Mensaje por azesmbog » 19 Sep 2016, 14:41

BCH escribió:Se podria poner una flash mas grande para tener mas cores disponibles?
на 8 Mb бывает флеш память ( 8 Megabytes (64Mbits) - поставить можно, но тогда надо менять в BIOS программное обеспечение))

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Pregunta FPGA y múltiples cores

Mensaje por Quest » 19 Sep 2016, 14:41

BCH escribió:Se podria poner una flash mas grande para tener mas cores disponibles?
Sí, de hecho ya se hizo cuando pasamos del prototipo v2 al v3, teníamos una de 1 Mbyte en v2 (y de v1 a v2, se pasó si no recuerdo mal de 512Kb a 1Mbyte). Eso sí, para adecuar todo al nuevo tamaño, hay que hacer bastantes cambios, en el propio mapa de la flash (que contiene muchas otras cosas a parte de los cores), el código de la BIOS (para que lea y escriba en las nuevas ubicaciones, tenga en cuenta el nuevo número de cores tanto para el arranque, como para el listado, actualización, etc).

No obstante si no me equivoco (hablo de memoria) la flash más grande disponible en formato SOIC8 con capacidades SPI QUAD de Winbond es la familia W25Q128, con 16 Mbytes de capacidad. De ese modo se podrían alojar unos 40 cores teóricamente...
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

BCH
Mensajes: 170
Registrado: 01 May 2016, 10:55

Re: Pregunta FPGA y múltiples cores

Mensaje por BCH » 19 Sep 2016, 15:02

Una de 8MB ya estaria muy bien. unos 20 cores disponibles es bastante

Responder