Es posible aumentar la fpga con un simple pendrive?

Todo aquello que acompaña a la placa del ZX-Uno (carcasas, alimentadores, pegatinas para el teclado, etc) / Everything that goes with the ZX-Uno board (cases, AC adapters, stickers for keyboard, etc)
hikoki
Mensajes: 307
Registrado: 21 Feb 2016, 01:38

Es posible aumentar la fpga con un simple pendrive?

Mensaje por hikoki » 26 Nov 2016, 22:06

Me he encontrado con este artículo: http://www.computerworld.com/article/29 ... -data.html
Se podría utilizar memoria flash externa para aumentar la memoria de la fpga y así poder empepinarla de forma barata?
:zxuno: borrad este hilo si esto es un absurdo
Última edición por hikoki el 27 Nov 2016, 15:10, editado 1 vez en total.

Avatar de Usuario
carmeloco
Mensajes: 751
Registrado: 25 Dic 2015, 12:02

Re: Pregunta de copón: aumentar memoria con pendrive?

Mensaje por carmeloco » 26 Nov 2016, 23:03

Lo veo complicado. Un pendrive, no es SRAM, y no tiene pines para acceder a direcciones de memoria.

Avatar de Usuario
Alki
Mensajes: 129
Registrado: 13 Sep 2016, 17:50

Re: Pregunta de copón: aumentar memoria con pendrive?

Mensaje por Alki » 27 Nov 2016, 00:00

carmeloco escribió:Lo veo complicado. Un pendrive, no es SRAM, y no tiene pines para acceder a direcciones de memoria.
yo creo que se referirá más bien a usar la SD como ram para la fpga...

hikoki
Mensajes: 307
Registrado: 21 Feb 2016, 01:38

Re: Pregunta de copón: aumentar memoria con pendrive?

Mensaje por hikoki » 27 Nov 2016, 01:44

Me refiero a utilizar flash o sd como apoyo a la sram para ampliar la capacidad de almacenar lógica

Avatar de Usuario
yombo
Mensajes: 487
Registrado: 05 Oct 2015, 14:10

Re: Es posible aumentar la fpga con un simple pendrive?

Mensaje por yombo » 28 Nov 2016, 13:44

El tiempo de acceso no es suficiente ni de lejos, para lo que se usa la SRAM. Lo siento, no es viable.

El artículo que has enlazado al principio se refiere a servidores escalables de internet, este caso es muy diferente.

hikoki
Mensajes: 307
Registrado: 21 Feb 2016, 01:38

Re: Es posible aumentar la fpga con un simple pendrive?

Mensaje por hikoki » 28 Nov 2016, 14:05

yombo escribió:El tiempo de acceso no es suficiente ni de lejos, para lo que se usa la SRAM. Lo siento, no es viable.
Entonces coloca allí ciertos periféricos que no requieran tanta velocidad de comunicación con el resto de circuitos. Podría haber algún tipo de caché para sincronizar las diferentes velocidades de acceso. No corras!!! Todo esto para dar más espacio a algunos cores creados específicamente para el ZX-Uno. Barato-Barato aunque algunos cores grandes solo funcionen en el ZX-Uno :silbando:

Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Re: Es posible aumentar la fpga con un simple pendrive?

Mensaje por DistWave » 28 Nov 2016, 15:12

Estás mezclando churros con merinas y sugiriendo sinsentidos. Los recursos internos de la FPGA son los que son y no se pueden ampliar.

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Es posible aumentar la fpga con un simple pendrive?

Mensaje por mcleod_ideafix » 29 Nov 2016, 01:18

Distwave ha sido más expeditivo que yo, pero a efectos prácticos tiene razón, aunque me permito añadir un apunte: en realidad, sí que es posible meter lógica en memoria, pero el truco está en que esa memoria debería ser muy muy rápida, y una flash no estaría a la altura, ni es la más adecuada por su estructura y su forma de gestionarse.

O sea: dado un diseño lógico, parte de él puede estar en memoria, si eres capaz de modelar tu lógica como una máquina de estados. Hay técnicas para codificar una máquina de estados completa (estado actual, salidas de la máquina, y estado próximo) en memoria, estando únicamente el secuenciador en lógica de la FPGA "de verdad". Estas técnicas se usan para poder hacer diseños complejos en FPGA sin gastar LUTs (una LUT es algo así como la unidad mínima de procesador lógico en la FPGA). De hecho, basado en esta técnica hay otra que se denomina de "microsecuenciamento" que ha permitido meter cores de procesadores complejos como el 8086 en muy poco espacio (cabría de sobra en nuestra Spartan 6 LX9)
http://www.eetimes.com/author.asp?secti ... id=1328967

Ciñéndonos a lo que tenemos en el ZX-UNO, leyendo ese enlace podeis ver que es posible meter un core microsecuenciado de 8086 en la LX9 (tenemos 5720 LUTs en ella, y según el artículo bastan 308, cuando un core "tradicional" no cabe ni de coña. Para el microsecuenciamento se usa la memoria BRAM, que es interna a la FPGA, muy rápida (280 MHz), ancho variable y de doble puerto.

La única RAM que puede estar más o menos a la altura de la BRAM es la SRAM externa, que va a 10ns (100 MHz), ancho fijo y simple puerto. Volcando de alguna forma el microcódigo de la máquina de estados cuando la FPGA arranca, y si el diseño lógico no usa una frecuencia de reloj alta (es de sólo unos pocos megahercios), se pueden realizar varios accesos a la SRAM para leer dado un estado (dirección de la SRAM), todas las salidas de ese estado y el próximo estado.

También se ha hablado de "caché": curiosamente estas técnicas tambien preveen el uso de caché: como la SRAM es más lenta y menos flexible que la BRAM, la BRAM se usaría como caché, para ejecutar la parte de máquina de estados más inmediata, y a medida que ésta progresa, la BRAM se va actualizando con datos de nuevas transiciones que vendrían de la SRAM. A partir de aquí puedes establecer una jerarquía de memoria al uso y acabar teniendo en una tarjeta SD toda la tabla de transiciones de una gran máquina de estados.

El microsecuenciamento y otras técnicas, lo que en realidad hacen es hacer funcionar a la FPGA como un gran emulador de máquinas de estado: es decir, la FPGA se encarga poco menos que de ejecutar mediante el secuenciador un "programa" (microprograma en realidad) que es lo que se guarda en la memoria como salidas y transiciones de la máquina de estados. No son técnicas novedosas. Datan al menos de los años 80. Hay un libro titulado "Mmicroprocessor Logic Design", de 1987, donde ya se habla de todo esto, y de hecho creo recordar que uno de sus autores es, o fue uno de los diseñadores del Motorola 68000, que implementa en sí mismo el microsecuenciamento y nanosecuenciamiento (tiene dos secuenciadores: uno de ellos lee microinstrucciones de una memoria interna del M68K, que en realidad son interpretadas por otro secuenciador que tiene otra memoria, con nanoinstrucciones, que son las que realmente disparan toda la lógica del procesador)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Es posible aumentar la fpga con un simple pendrive?

Mensaje por Uto » 29 Nov 2016, 11:07

¿Estaríamos hablando entonces de emulacion y no implementacion? (al menos parcialmente)

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Es posible aumentar la fpga con un simple pendrive?

Mensaje por jepalza » 29 Nov 2016, 11:17

mcleod_ideafix escribió: De hecho, basado en esta técnica hay otra que se denomina de "microsecuenciamento" que ha permitido meter cores de procesadores complejos como el 8086 en muy poco espacio (cabría de sobra en nuestra Spartan 6 LX9)
http://www.eetimes.com/author.asp?secti ... id=1328967
Haciendo un inciso y aprovechando el comentario, logré meter el 80x86 en el Papilio Pro (un poco con la ayuda de su autor al que pedí sopitas por el tema de la velocidad, que no lograba ajustarla), y funcionó (no tengo fotos para poner). Entró el 8086, el lector de SD y la VGA, pero sin sonido. Y el manejo de la BIOS y del HD virtual son muy complejos e incómodos, es necesario sobreescribir los sectores de la SD con un editor de sectores a mano, por ejemplo, el HxD. Me pareció tan "soso" y complicado de implementar, que no me he preocupado de pasarlo al ZXUNO, y aparte, que el Papilio lleva SDRAM y el ZXUNO no....
Imagen
Última edición por jepalza el 31 Dic 2016, 18:47, editado 1 vez en total.

Responder