
Llevamos un par de años hablando de las FPGA y de lo que son, para que sirven y como se usan.- Lo que no recuerdo es si hemos debatido y hablado sobre lo que ofrecen, por cuanto, como y que implica.
¿ Podrían ser las FPGA el futuro de la emulación y preservación de sistemas retro ?
Una respuesta muy rápida sería que si, de forma generalista podrían, pero no todo el mundo es partidario del uso de FPGA.
No es más que un debate nuevo que viene a refrescar todo lo conocido. Ya siento no tocar más en profundidad la cuestión de las consolas, pero para mi no resultan atractivas ya que no dejan de ser micros capados y no quiere decir que para otros usuarios no sean muy importantes y a ser consideradas, por eso dejo abierta la posibilidad de que quien quiera hacer lo suyo con las consolas tenga todas las posibilidades a su alcance.
Partimos de una base donde nos encontramos con cuatro posibles escenarios.
1- El usuario desconoce el micro, físico, emulado, etc...
2- El usuario poseé el micro físico (ya sea usuario de la plataforma o coleccionista)
3- El usuario utiliza emuladores para recrear el micro
4- El usuario utiliza FPGA, sin micro físico y sin emuladores.
y un último estadio o #5 - El usuario lo tiene y lo quiere TODO.

Como usuarios de micros, más o menos casi todos tenemos el anhelo de poder usar una gran variedad de sistemas, pero sin tener que lidiar con la lucha diaria de no solo de poseer y mantener un hardware antiguo, sino también de tenerlos constantemente preparados y conectados a nuestras pantallas y accesibles de forma limpia y rápida, sin necesidad de intermediarios como un PC de por medio.
Muchos de nosotros no podemos evitar soñar con la posibilidad de un dispositivo que pueda generar señales de video tanto genéricas como modernas y reproducir de manera confiable nuestra biblioteca de software completa tan bien como el hardware original.
A medida que los micros y sistemas aumentan de precio y de valor de reventa, el hardware envejece y finalmente muere sin los correspondientes cuidados y mantenimientos, comenzamos a buscar alternativas para equilibrar nuestro deseo de cacharrear a través de la historia y administrar nuestra cordura.
La gran mayoría de usuarios involucrados con la retro-informática viene desde hace más de 20 años usando emuladores. Fueron y siguen siendo la gran puerta de acceso a este mundo, por decirlo de algún modo la más rápida, casi instantánea. Estamos acostumbrados a usar ROM, formatos preservados de Casstte como TAP, CAS, TZX, etc... , formatos de imagen de disco/floppy como DSK, IMG e incluso imágenes de HD de discos duros. Con la llegada hace unos años de soluciones económicas y potentes como Raspberry Pi y el abaratamiento de precios hizo que se involucrara aún mucha más gente. Todo esto hizo mucho para reavivar un gran interés en el mundo de la emulación. Sin embargo, los usuarios retro más exigentes buscan cada vez más en el mundo de la FPGA oportunidades para llevar las comodidades de la emulación a un hardware más cercano al hierro original.
¿ FPGA o EMULACIÓN ?
Para aquellos que están relativamente contentos con sus configuraciones de emulación y la flexibilidad que les brinda, podría ser fácil preguntarse cuál podría ser el problema con las configuraciones FPGA. La respuesta corta es que la FPGA es hardware programable que, cuando se utiliza bien, generalmente proporciona una replicación más precisa y eficiente del hardware original en comparación con la emulación de software. Luego extendemos los conceptos de "feeling" y "accurate".
Vamos con la letanía... y las explicaciones.
El procesamiento basado en FPGA es extremadamente eficiente para realizar la tarea de imitación-replicación-simulación de hardware, ya que permite que sucedan múltiples operaciones simultáneamente en tiempo real. Todo se ejecuta y funciona a la vez y debe estar perfectamente sincronizado. Los micros originales están repletos de diferentes chips y circuitos que operan en conjunción con temporizaciones o "timmings" extremadamente precisos "accurate".
Realizar una emulación perfecta de hardware real, incluso de sistemas sencillos como un ZX Spectrum, requiere cada día del uso de ordenadores de sobremesa más potentes, a veces auténticos pepinos tan solo para obtener resultados similares a los que proporciona una simple FPGA de gama baja. ¿ Entonces ? , si, los emuladores tradicionales usualmente tiran de atajos donde la FPGA no lo hace.
EMULACION BAREMETAL
Este es un apartado que cambia significativamente el concepto de emulación, extrayendo las capas intermedias en un ordenador, como el sistema operativo y los programas auxiliares. El emulador se convierte en " el sistema operativo de la máquina anfitrión ". Un gran ejemplo es el ZX BareMetal para RPi de nuestro colega zx81 ( jspeccy ).
¿ Pero sin un PC de por medio ?
Si, el PC tiene memoria, tarjeta de video, sonido, etc... las soluciones basadas en Raspberry Pi son lo mismo, ya que las Pi en realidad son ordenadores completos, hechos y derechos. ¿ No necesito nada ?. La respuesta es que no, ya que las placas FPGA incluyen TODO.
En la actualidad , desde la más simple de las placas FPGA te derás enseguida cuenta que tienen memorias SRAM y SDRAM, interfaces USB y SD, Video por HDMI, DVI, VGA, RGB, Compuesto, Componentes, entrada y salida de audio, tanto para cargar como para salvar y sonar, puetos de teclado, ratón, joysticks y otros addons. Aparte del chip FPGA en cuestión, que en función de su tamañó y capacidad determinará que sistemas podrá soportar con total cobertura.
¿ Cuestión de elección para desarrollo y ejecución ?
En el mundo de los emuladores existen varios tipos de desarrollos para llegar al mismo punto, emulación en bajo nivel, emulación de alto nivel HLE, emulación por interpretación o por fuerza bruta. Al final al usuario no le importa lo que lleva el emulador dentro, lo que le interesa es el resultado final, independientemente de como esté diseñado y programado el emulador. Con las FPGA todas estás disquisiciones no existen, no hay forma de trucar o atajar, es un cara a cara contra una implementación basada en descripciones de Hardware y no te las puedes saltar.
Aquella frase de... - no hay malos emuladores, sino buenos y menos buenos...., en FPGA no es aplicable. O todo es exacto y preciso o ya te puedes ir olvidando. Es duro, pero la recompensa es sublime.
Para aquellos usuarios que desean disfrutar de una experiencia de usuario retro más idealizada, las configuraciones basadas en FPGA son muy atractivas. Actualmente todavía existen muchas limitaciones debido a que se encuentra en una fase de desarrollo temprana, pero las posibilidades son muy emocionantes y estamos solo a las puertas, cuando se establezca como algo más común se va a producir una mejora acorde al paso del tiempo, en cualquier caso solo puede ir a mejor. Ha venido para quedarse, en eso que nadie tenga ya dudas. Hay que aceptarlo pese a lo que lo que algunos puristas pretendan. Es una batalla perdida.
No depender de un sistema intermedio hace que la experiencia sea más plausible. Todo esto además significa que el audio y el video se pueden usar exactamente como lo haría el sistema físico real, y con una FPGA eso equivale a una salida de video analógico de latencia cero, o escalado de latencia extremadamente baja utilizando scandoublers, escaladores, y otras opciones disponibles en constante evolución sobre las FPGA. Poco a poco, las FPGA están evolucionando hacia la plataforma de replicación-simulación definitiva, dejando de lado las incógnitas de una configuración en un ordenador donde las tasas de sondeo del controlador varían y donde diferentes procesadores y tarjetas de video producen resultados muy diferentes.
Cada nueva implementación de hardware en FPGA también ofrece un creciente arsenal de "partes, código, integrados, cpus, asics, etc.." que pueden ser aprovechadas y usadas en otros cores, conocidos como soft-cores. Pueden tomarse de un sistema y conectarse a otro porque un core FPGA es esencialmente un modelo para una PCB. Los avances como los vistos en el core T80 ( Z80 ) o con el TG68 (Motorola 68000) con precisión de ciclo le dan a cualquier sistema basado en esas CPUs una gran ventaja, y a medida que haya más y más chips y circuitos disponibles, los sistemas más complejos serán más fáciles de portar e implementar. Cuando se diseña un nuevo core ( se debe sondear físicamente la lógica del PCB del micro real ), con lo que no se tendrá reinventar nada, ni el procesador , ni los chips de video o audio desde cero, ya que van a estar disponibles. Esto ofrece una versalitidad y flexibilidad estupenda y muy de agradecer.
¿ Y QUÉ PASA CON LA PRESERVACIÓN ?
Considerando que vale la pena enfatizar que la tecnología FPGA ya está siendo también una de nuestras mejores formas de preservar, posiblemente se establezca antes más pronto que tarde , la "encarnación" de los micros retro durante las próximas décadas ya no quedará vacía o desierta, llena varios planos cubriendo perfectamente las carencias que se puedan ir produciendo y descubriendo.
La razón por la que algunos estamos interesados en la implementación de hardware basada en FPGA, tiene gran parte en sus fundamentos basados en el código FPGA. Verilog y VHD, que son lenguajes de descripción de hardware que fueron diseñados originalmente para documentar chips, tanto para la fabricación como para la investigación.
Entonces, en lugar de planos y esquemáticos para los circuitos electrónicos, los fabricantes los estandarizan en Verilog y VHDL. Se puede describir un solo chip o un sistema completo. Por ejemplo, si tienes un chip personalizado para un micro y se encuentra documentado perfectamente en Verilog, puedes enviarlo a la fábrica y producir el chip real. Verilog y VHDL son los lenguajes más utilizados para escribir cores FPGA y ofrecen un nivel teórico de precisión perfecta al hardware original.
Por supuesto, esto siempre se reduce a la calidad de una implementación y a otras restricciones técnicas, y actualmente no todos los cores logran una verdadera "precisión de ciclo". Pero ese es el objetivo final de cualquier core, aunque pudiera llevar una década o más de desarrollo, contribuciones e investigación de código abierto para llegar a ese punto, por tanto es un desarrollo continuo basado siempre en la mejora. Los cores FPGA de código abierto son una preservación permanente del hardware, por lo que los proyectos de placas FPGA soncasi siempre a largo plazo, independientemente de la FPGA utilizada, a la que será relativamente simple portar sus cores a dispositivos futuros. Cuando todo el hardware original y los chips personalizados han muerto, las recreaciones FPGA se pueden usar para reemplazar o incluso producir reemplazos físicos y esto ya está sucediendo ahora mismo.
Además de lo importante de que la orquesta suene en perfecta armonía, quedan los periféricos como cassettes, controladoras de disco, unidades de disco, discos duros y otros elementos que hacen que la suma de todo sea la que te permita disfrutar plenamente de una máquina que está sintetizada, simplemente son puertas lógicas pero que una vez se ponen en marcha, producen una MAGIA que no es de este mundo.
¿ Y el FEELLING y las sensaciones ?
Para que nos entendamos, a pesar de lo que los usuarios puedan esperar, siempre es conveniente "advertir" en contra de declarar la sensación de uso basada en FPGA como algo superior a la emulación "tradicional", ya que es una aseveración demasiado vaga para concluir en cualquier sentido. Habrá de todo, como en botica, pero no estoy comparando, estoy informando.
Así que dicho todo esto, la realidad es patente si se analiza una buena implementación de un micro en FPGA en comparación con un emulador de software tradicional y a su vez el micro físico, es la prueba del algodón y los resultados siempre son sorprendentes. Y probablemente sentirás una gran diferencia, sobre todo cuando un core está hecho correctamente.
¿ Y qué nos vamos a ENCONTRAR ?
Gran pregunta, ¿ pero no querías la FPGA para usar un micro ?. Eso es lo que te vas a encontrar, ese micro que buscabas. Piensa en una mesa en donde hay un micro físico y una fpga, pero tu solo vas a ver dos pantallas. Una corresponderá a la FPGA y la otra al micro físico, ¿ vamos a ver quién es capaz de determinar quien es quien ?, ¿ te atreves ?, ojo, que yo se lo he hecho a unos cuantos comparando fpga y micro físico y nadie se ha atrevido a decir quien es quien.
Para poner un ejemplo, el core de MSX es una implementación híbrida de MSX que admite MSX, MSX2, MSX2 + y Turbo-R / MSX3.
Admite discos duros virtuales de hasta 4 GB, donde el hardware original estaba limitado a una simple porción. Por lo tanto, es un MSX extremadamente preciso, con un menú que puede incluir todos los juegos o programas a lanzar, puede usar cualquier controlador o teclado que desees y puedes reproducirlo desde un simpleme monitor compuesto o en un televisor grande a través de HDMI, en un monitor a través de VGA (cero retraso), o en un televisor CRT o PVM a través de RGB o componentes (cero retrasos de nuevo). En algunas placas FPGA el audio es simplemente una delicia, pero por eso mismo el debate quedaría en elegir la fpga correcta para cubrir las necesidades que tenga cada uno.
Lo mismo sucede con el core de ZX Spectrum, aglutina todas sus versiones y varianes, y así en general. Un core no tiene que representar específicamente un micro, sino que puede contener toda la familia de modelos. No hay un único core de Amiga o de un solo ST, son varios modelos con diferentes configuraciones y algunas bien diferenciadas. Pensad que en FPGA, todo es posible. Tambien hay cores que son monosistema y solo implementan un micro.
Al final cada usuario elije que joysticks , ratones, teclados o simplemente otros meten las fpga en réplicas o en carcasas de micros originales, cada usuario decide en que formato de video le gusta más y sobre todo una cosa, las FPGA son poco más que un paquete de cigarrillos, con lo que debido a su tamaño, metes un espacio necesario en la palma de la mano.
Bueno, fin de ladrillo efepegero, ahora tus comentarios son bienvenidos, un buen momento para reflexionar con perspectiva y ver como ve este mundo cada usuario. Al final si no hay usuarios no hay nada, es como todo. Buen momento para comentar.