https://youtu.be/O9pGl8LpQok?t=4376
me animo a escribir unas pequeñas líneas.
1.- ¿Qué es una FPGA? ¿Qué es un core?
Las FPGAs son unos chips que nos permiten describir un circuito digital usando un lenguaje específico (los dos más comunes son VHDL y Verilog), y que internamente es como si fuesen un folio en blanco hasta que se les carga un bitstream o core -un archivo binario generado a partir de la descripción del circuito –, momento en que es creado físicamente en la FPGA.
El flujo de trabajo con las FPGAs
Etapas del diseño para una FPGA (Fuente: FPGA wars)
Las placas FPGAs que se usan en el retro son unos dispositivos configurables que permiten recrear todo el hardware de las computadoras de los 80 y principios de los 90, pudiendo las FPGA ser reprogramadas tantas veces como se necesite.
Lo más parecido a su funcionamiento sería la carga de un programa en la RAM de un ordenador, siendo que la carga de un core en una FPGA lo que hace es recrear el ordenador de forma física, no por emulación ejecutando un programa.
Fuentes:
- https://github.com/mist-devel/mist-board/wiki/FaQ
- https://planetachatbot.com/qu%C3%A9-es-una-fpga-y-por-qu%C3%A9-jugar%C3%A1n-un-papel-clave-en-el-futuro-e76667dbce3e
2.- Diferencias entre FPGA y emuladores
El emulador necesita de todo un sistema con su CPU, RAM, etc, lo suficientemente potente como para simular el comportamiento del sistema emulado, lo que significa que dicho sistema irá a mucha más velocidad que el sistema que se pretende emular (emulador con CPU a 1GHz para emular un ordenador cuya máxima frecuencia interna son 14MHz)
Un emulador necesita llegar a una serie de compromisos, para que la emulación sea factible sin necesitar de un supercomputador. Uno de ellos es que las cosas no ocurren dentro del emulador a la misma vez que el usuario las ve en pantalla. El invento funciona, pero el emulador ahí no está mimetizando la máquina original, sino que mimetiza el efecto que produce en pantalla dicha máquina original para que nosotros nos lo traguemos.
En la FPGA si la descripción del hardware es precisa va a ser una emulación más elegante... no imitas el comportamiento, sino que lo replicas.
Por otra parte, en la FPGA hay un problema, y es que es enteramente digital, y hay chips que contiene componentes analógicos, por lo que dentro de las FPGA también hay ciertas cosas que se emulan. No tiene sentido decir que la FPGA son “puras” y los emuladores no, ya que, por ejemplo, las FPGA también permiten generar “scanlines” ficticias a imitación de las TV de tubo en las salidas de video VGA.
Conclusiones:
1ª Si la emulación o la recreación son extremadamente fieles al original las dos opciones son válidas.
2ª La emulación de sistemas retro lleva muchos más años de ventaja a la recreación por medio de FPGA, por lo que muchas veces el emulador funciona mejor que la FPGA, pero estas diferencias se irán acortando con el tiempo según se vayan puliendo los cores,
3ª La recreación por FPGA te da unas sensaciones mucho más cercanas a la máquina original, aunque para conseguir eso a veces es necesario disponer de ciertos periféricos de la época, como joysticks norma Atari, teclados y ratones PS/2, o monitores y televisiones CRT que soporten sincronismos y frecuencias de refresco que no funcionan en monitores más modernos.
Fuentes:
3.- ¿Es mejor un emulador o una FPGA? Depende del uso que le des
Hay emuladores que implementan ordenadores, consolas o dispositivos que no han sido recreados en FPGA, luego para poder probarlos sin tenerlos físicamente es necesario usar un emulador.
El uso de emuladores es más cómodo si se está desarrollando software para estas máquinas que el uso de una máquina real o una FPGA. Ya con las versiones “candidatas” o “finales” se debe usar máquinas reales para verificar que el software funcione bien en las máquinas para las que se ha creado.
Si tu uso es como usuario (cacharreador o gamer), pero no tanto como desarrollador, las FPGA dan una experiencia más cercana a la sensación de estar usando una máquina real que los emuladores. Además permitan pasar de una máquina a otra en cuestión de segundos.
Hay diversas placas FPGA que implementan microordenadores o consolas de los 80’s y 90’s, que además de permitir trabajar con dispositivos de la época como cassettes, joysticks DB9 o monitores y TV’s CRT, también permiten trabajar con versiones más modernas como gamepads USB o monitores HDMI.
Por último, el coste también puede ser importante. Los emuladores suelen ser gratuitos, y no se suele tener en cuenta el precio del ordenador en que los ejecutamos, ya que se supone que se usan para otras tareas además de emulación. Las FPGA no son extremadamente caras, y son una solución muchísimo más barata que lo que costaría tener los equipos y dispositivos reales que recrean.
4.- ¿Es más fiel un emulador o una FPGA? Depende de lo bien que esté hecho el core o el emulador.
Ambas soluciones pueden ser igualmente fieles a una máquina real, aunque por regla general, para aumentar el grado de perfección en la emulación de la máquina o en sus dispositivos, como pueden ser chips de sonido, salida de video simulando monitores CRT o TV’s, se necesitan equipos cada vez de mayor potencia.
La perfección en la recreación de una máquina por medio de FPGA se basa más en poder disponer de la información más detallada posible de todos los dispositivos que la componen, más que una cuestión de fuerza bruta o potencia, aunque según se van recreando máquinas más complejas también es necesario que las FPGA sean más grandes en número de celdas lógicas, velocidad y concurrencia de acceso a la memoria, inclusión de chips de apoyo en operaciones de entrada / salida, etc.
Y por supuesto, está la habilidad, el arte o el buen hacer del creador del emulador o del core de la FPGA. Aunque hay muchos emuladores que están hechos por una sola persona desde cero, normalmente los cores de las FPGA reutilizan, y muchas veces mejoran, muchos componentes realizados anteriormente por diversas personas, combinándolos para crear una implementación cada vez mejor de la máquina o dispositivo. Por eso, es muy importante en el mundo de las FPGA disponer de las fuentes de las implementaciones en formato VHDL o Verilog, y no solo de los binarios, para poder avanzar y mejorar de una forma colaborativa.
5.- EPÍLOGO
¿Sabes? Sé que el refresco de pantalla no es exacto. Sé que cuando veo esas scanlines, es el emulador el que le está diciendo a mi cerebro: es entrelazado. Se ve como en una CRT...
Después de tantos años, sintonizando la señal RF y agotando las entradas de euroconector. ¿Sabes de qué me doy cuenta?
La ignorancia es la felicidad.
Fuente: https://twitter.com/Jon_Cortazar/status ... 4291446784