stormlord escribió:Entiendo por donde quieres ir, pero estás equivocado porque un FPGA no es nada sin programación como lo es un programa que arranca y no hace nada.
Un símil a lo que dices podría ser programar en BASIC en vez de programar en código máquina. Mientras BASIC es un intérprete como lo puede ser un emulador bajo un sistema operativo en una arquitectura diferente, el código máquina sería programar directamente en el lenguaje nativo de la máquina como lo sería esa programación del FPGA. Por lo tanto un emulador bajo software es BASIC y un FPGA es código máquina, pero ese código máquina sigue siendo un programa de puertas lógicas hecho por alguien con el objetivo de imitar en este caso el funcionamiento de otro sistema.
Estamos intentando crear la copia de chips con chips programables y eso lleva a la emulación de esos chips, pero si por el contario no lo usamos para eso sino para crear algo nuevo con la intención final de crearlo en ASIC entonces sí sería una simple implementación en FPGA, sin más.
Como siempre digo, la intención marca la diferencia.
Ya no sé explicártelo mejor, así que aquí lo dejo, me piro a darle a la mierda que me gusta.
A ver, sí, la FPGA se configura electrónicamente al encenderse y carbar el bitstream, pero una vez configurada (una fracción de segundo), ya es físiamente los chips que implementa. Físicamente, macho: las seniales electrónicas que saca son las de los chips reales.
Y te digo más: a estas alturas, las implementaciones libres de la NES, la Master System, la SNES y la MegaDrive en FPGA, son sencillamente perfectas. Además libres! Hemos desacoplado el hardware retro de la placa física en la que se implementa!
Y otra cosa más: a mi me encantan los emuladores (siempre que una sucia rata, AKA empresaurio, no intente cobrarme por uno que es libre, como los de Hyperkin con las Retron estas), pero un emulador software jamás va a sonar como una implementación FPGA, por ejemplo: la emulación totalmente exacta del YM de la MegaDrive por software es costosísima en CPU, mientras que
una FPGA, con sus DSPs y su alto grado de paralelismo, se convierte en el YM de la MegaDrive con la punta de la chorra.
Tampoco vas a conseguir evitar el input lag con un emulador: aun si RetroArch (proyecto en el que colaboro como programador, ojo, y encima de los sistemas de vídeo de baja latencia: no lo critico a lo loco, nadie que vayas a conocer en tu vida ha luchado contra el input lag más que yo) hace algo como renderizar frames por adelantado, hay cuestiones de los sistemas operativos modernos que lo impiden.
Con una FPGA, no ocurre nada de eso.
A ver, que sí, que una Raspberry+RA son una solución barata, pero en serio, prueba una FPGA de una vez y no vas a querer volver a la emulación software, es que es otro puto mundo.