Debate RW. ¿ Qué es para ti una FPGA ?
- ron
- Mensajes: 21856
- Registrado: 28 Oct 2010 14:20
- Ubicación: retrocrypta
- Agradecido : 3862 veces
- Agradecimiento recibido: 4755 veces
Debate RW. ¿ Qué es para ti una FPGA ?
La mayor parte del texto está extraída del Wiki de MiSTer, ya que me pareció algo tan parecido a lo que iba a decir que me decanté por traducir la parte que más me interesaba.
Un usuario potencial genérico eventualmente preguntará:
¿ Por qué necesito usar una FPGA mientras existen otras soluciones probadas como los emuladores de los PC/Mac e incluso soluciones tan económicas como la Raspberry Pi ?
Hay debates sobre cómo denominar o llamar al proceso de simulación de hardware real en FPGA.
Algunas personas insisten en que no es una emulación sino una réplica de HW real, mientras que cualquier simulación en una CPU tradicional debería llamarse emulación.
Algunos tenemos nuestra propia opinión. Por ejemplo desde mi punto de vista y del de muchos otros, si el código FPGA se basa en un circuito de hardware real ( con los ajustes habituales para la compatibilidad con FPGA ), se llama réplica.
Cualquier otra cosa es emulación, ya que incluye diferentes tipos de aproximación. Actualmente, es difícil encontrar un core que se pueda denominar como una réplica: la mayoría de los core se basan en la recreación más o menos funcional en lugar de la recreación de circuitos reales. Los núcleos de CPU Z80 (T80) y MC68000 (TG68K) más utilizados son puras emulaciones funcionales, no réplicas.
Por lo tanto, está bien llamar a los núcleos FPGA como emuladores a menos que se hayan probado como réplicas.
Volvamos a la pregunta original:
¿ Por qué FPGA si también es solo una emulación ?.
Bueno, la emulación por FPGA es fundamentalmente diferente a la emulación en la CPU. El emulador tradicional en la CPU ejecuta el código de forma secuencial. Esta es una forma de emulación complicada porque el hardware real tiene muchos chips y todos ellos trabajan en paralelo. CPU, chip de video / lógica, chip de audio, gestor de memoria, etc..., todos ellos están trabajando al mismo tiempo. Así que el emulador tradicional tiene que ocuparse de todas estas partes y tratar de emular a toda la orquesta al mismo tiempo "ejecutando" rápidamente de un chip a otro.
Suelen requerir una gran cantidad de potencia de la CPU para emular, incluso las micro retro antiguos y lentos. A veces, incluso la CPU moderna que funciona a una velocidad de 100x de micro a emular no es suficiente, por lo que el emulador tiene que usar la aproximación o saltar de la emulación de algunas partes menos importantes, o asumir algún trabajo estándar del sistema emulado sin un uso extraordinario.
Tomemos un conocido emulador, el conocido UAE emulando Amiga. En Raspberry Pi 3 puedes ejecutar algunos puntos de referencia de CPU de Amiga y obtener números locos como 100x del 68000 original. Entonces, puedes asumir que tienes un Amiga emulado que es 100 veces más rápido que uno real. No, tu no. Si ejecutas diferentes tipos de demostraciones / juegos, verás que el video a veces tartamudea. Por ejemplo, si juegas con la demo de "State of The Art", notarás que el video se ve entrecortado en algunos puntos, mientras que el Amiga 600 real con 1x de velocidad de CPU reproduce la demo de manera muy suave. Así es como funcionan los emuladores tradicionales en RPi.
La emulación FPGA funciona de forma muy diferente a la emulación tradicional en la CPU. La FPGA es en si una gran variedad de disparadores simples y otra lógica. Exactamente lo mismo que todos los chips / CPUs. La única diferencia es que el chip / CPU específico tiene dichos triggers / lógica conectados permanentemente, mientras que FPGA permite conectarlos como se desee o se quiera. Un lenguaje HDL especial describe cómo conectar todos estos triggers / celdas lógicas. Todo en FPGA funciona en paralelo como en los chips / dispositivos originales. Por lo tanto, la FPGA está bastante más cerca de HW original. La FPGA no necesita altas frecuencias para emular/simular/implementar micros retro, por lo que funciona a frecuencias mucho más bajas que las que requieren los emuladores tradicionales.
Dado que todo en FPGA funciona en paralelo, no hay problema para manejar cualquier uso posible del sistema emulado. Los desarrolladores de FPGA generalmente se concentran en la parte específica para que funcione correctamente, y funcionará como debería en cualquier situación posible. En la misma demostración de referencia "State Of the Art", puede ver un video suave a través de toda la reproducción como en el HW original.
¿ Queréis peguntar : ?
¿ Por qué no se hacen todas las implementaciones y todos los emuladores en FPGA entonces ?
La programación de FPGA no es tan trivial. Cada bit en FPGA funciona en paralelo, por lo que el desarrollador también debería pensar en paralelo . Lo que es trivial en la CPU, no es trivial en FPGA. Aunque algunas partes triviales en FPGA cuestan mucho en código de CPU.
¿ Y ahora : ?
Soltáis vuestras conclusiones, conceptos, ideas, quejas, ideas y todo aquello que os inquiete. Creo que se cierne un debate más por desconocimiento que por base experimental. Ahí queda. Comienza el debate de ideas y conceptos. Os toca.
Un usuario potencial genérico eventualmente preguntará:
¿ Por qué necesito usar una FPGA mientras existen otras soluciones probadas como los emuladores de los PC/Mac e incluso soluciones tan económicas como la Raspberry Pi ?
Hay debates sobre cómo denominar o llamar al proceso de simulación de hardware real en FPGA.
Algunas personas insisten en que no es una emulación sino una réplica de HW real, mientras que cualquier simulación en una CPU tradicional debería llamarse emulación.
Algunos tenemos nuestra propia opinión. Por ejemplo desde mi punto de vista y del de muchos otros, si el código FPGA se basa en un circuito de hardware real ( con los ajustes habituales para la compatibilidad con FPGA ), se llama réplica.
Cualquier otra cosa es emulación, ya que incluye diferentes tipos de aproximación. Actualmente, es difícil encontrar un core que se pueda denominar como una réplica: la mayoría de los core se basan en la recreación más o menos funcional en lugar de la recreación de circuitos reales. Los núcleos de CPU Z80 (T80) y MC68000 (TG68K) más utilizados son puras emulaciones funcionales, no réplicas.
Por lo tanto, está bien llamar a los núcleos FPGA como emuladores a menos que se hayan probado como réplicas.
Volvamos a la pregunta original:
¿ Por qué FPGA si también es solo una emulación ?.
Bueno, la emulación por FPGA es fundamentalmente diferente a la emulación en la CPU. El emulador tradicional en la CPU ejecuta el código de forma secuencial. Esta es una forma de emulación complicada porque el hardware real tiene muchos chips y todos ellos trabajan en paralelo. CPU, chip de video / lógica, chip de audio, gestor de memoria, etc..., todos ellos están trabajando al mismo tiempo. Así que el emulador tradicional tiene que ocuparse de todas estas partes y tratar de emular a toda la orquesta al mismo tiempo "ejecutando" rápidamente de un chip a otro.
Suelen requerir una gran cantidad de potencia de la CPU para emular, incluso las micro retro antiguos y lentos. A veces, incluso la CPU moderna que funciona a una velocidad de 100x de micro a emular no es suficiente, por lo que el emulador tiene que usar la aproximación o saltar de la emulación de algunas partes menos importantes, o asumir algún trabajo estándar del sistema emulado sin un uso extraordinario.
Tomemos un conocido emulador, el conocido UAE emulando Amiga. En Raspberry Pi 3 puedes ejecutar algunos puntos de referencia de CPU de Amiga y obtener números locos como 100x del 68000 original. Entonces, puedes asumir que tienes un Amiga emulado que es 100 veces más rápido que uno real. No, tu no. Si ejecutas diferentes tipos de demostraciones / juegos, verás que el video a veces tartamudea. Por ejemplo, si juegas con la demo de "State of The Art", notarás que el video se ve entrecortado en algunos puntos, mientras que el Amiga 600 real con 1x de velocidad de CPU reproduce la demo de manera muy suave. Así es como funcionan los emuladores tradicionales en RPi.
La emulación FPGA funciona de forma muy diferente a la emulación tradicional en la CPU. La FPGA es en si una gran variedad de disparadores simples y otra lógica. Exactamente lo mismo que todos los chips / CPUs. La única diferencia es que el chip / CPU específico tiene dichos triggers / lógica conectados permanentemente, mientras que FPGA permite conectarlos como se desee o se quiera. Un lenguaje HDL especial describe cómo conectar todos estos triggers / celdas lógicas. Todo en FPGA funciona en paralelo como en los chips / dispositivos originales. Por lo tanto, la FPGA está bastante más cerca de HW original. La FPGA no necesita altas frecuencias para emular/simular/implementar micros retro, por lo que funciona a frecuencias mucho más bajas que las que requieren los emuladores tradicionales.
Dado que todo en FPGA funciona en paralelo, no hay problema para manejar cualquier uso posible del sistema emulado. Los desarrolladores de FPGA generalmente se concentran en la parte específica para que funcione correctamente, y funcionará como debería en cualquier situación posible. En la misma demostración de referencia "State Of the Art", puede ver un video suave a través de toda la reproducción como en el HW original.
¿ Queréis peguntar : ?
¿ Por qué no se hacen todas las implementaciones y todos los emuladores en FPGA entonces ?
La programación de FPGA no es tan trivial. Cada bit en FPGA funciona en paralelo, por lo que el desarrollador también debería pensar en paralelo . Lo que es trivial en la CPU, no es trivial en FPGA. Aunque algunas partes triviales en FPGA cuestan mucho en código de CPU.
¿ Y ahora : ?
Soltáis vuestras conclusiones, conceptos, ideas, quejas, ideas y todo aquello que os inquiete. Creo que se cierne un debate más por desconocimiento que por base experimental. Ahí queda. Comienza el debate de ideas y conceptos. Os toca.
-
- Mensajes: 250
- Registrado: 04 Jul 2016 11:53
- Ubicación: Ciudad Real
- Agradecido : 51 veces
- Agradecimiento recibido: 82 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Bueno, yo cuando me preguntan siempre digo que con la fpga se tiene una reimplementación del HW original no una emulación.
Para mi la adquisición de la mist y el zx-uno ha sido darle una vuelta de tuerca más a la diversión con las máquinas de 8 y 16 bits. Y han sido el detonante de que me deshaga de los dos equipos de 16 bits que tenía: El amiga 500 y el atari st de 512k. Puede que no sea 100% original , pero casi. Y viendo los precios de ampliaciónes de esos equipos o de los de su gama superior, y que yo nunca iba a poder reparar en caso de averías, lo tuve claro y los vendí. Puede que empiece a hacer lo mismo con algunos de 8 bits.
Ahora mismo en mist siguen saliendo mejoras de cores como el de Sega Megadrive que ya está a un nivel impresionante.
Espero que en los próximos años el conocimiento de las fpga aumente a mayor núḿero de personas y podamos disponer de cores para todas estas máquinas que tarde o temprano morirán.
A la mister la miro de reojo pero hasta que no vea que tiene muchos cores de máquinas muy superiores respecto a la mist , me aguanto de momento.
También uso Raspberry PI para emular, pero entre las dos opciones me quedo con las FPGA.
Por cierto también ahora hay posibilidades de adquirir Unamiga que es más barato que mist y el zx-dos que es como un zx-uno vitaminado
Bueno, esto ha sido lo primero que me ha venido a la cabeza. Luego os seguiŕe leyendo.
Para mi la adquisición de la mist y el zx-uno ha sido darle una vuelta de tuerca más a la diversión con las máquinas de 8 y 16 bits. Y han sido el detonante de que me deshaga de los dos equipos de 16 bits que tenía: El amiga 500 y el atari st de 512k. Puede que no sea 100% original , pero casi. Y viendo los precios de ampliaciónes de esos equipos o de los de su gama superior, y que yo nunca iba a poder reparar en caso de averías, lo tuve claro y los vendí. Puede que empiece a hacer lo mismo con algunos de 8 bits.
Ahora mismo en mist siguen saliendo mejoras de cores como el de Sega Megadrive que ya está a un nivel impresionante.
Espero que en los próximos años el conocimiento de las fpga aumente a mayor núḿero de personas y podamos disponer de cores para todas estas máquinas que tarde o temprano morirán.
A la mister la miro de reojo pero hasta que no vea que tiene muchos cores de máquinas muy superiores respecto a la mist , me aguanto de momento.
También uso Raspberry PI para emular, pero entre las dos opciones me quedo con las FPGA.
Por cierto también ahora hay posibilidades de adquirir Unamiga que es más barato que mist y el zx-dos que es como un zx-uno vitaminado
Bueno, esto ha sido lo primero que me ha venido a la cabeza. Luego os seguiŕe leyendo.
- minter
- Mensajes: 4826
- Registrado: 22 Jul 2014 18:51
- Agradecido : 6762 veces
- Agradecimiento recibido: 2602 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
La FPGA es pequeña, suave, peluda. Tan blanda que parece que no tiene chips. Tan solo esos chips como escarabajos negros de cristal.
Cuando la arrancas, va saliendo suavemente el menu como si trotara en un mar de micros.
Y tiene PakuPaku!
Pero no eMULA, es un Platero.
Cuando la arrancas, va saliendo suavemente el menu como si trotara en un mar de micros.
Y tiene PakuPaku!
Pero no eMULA, es un Platero.
-
- Mensajes: 163
- Registrado: 06 May 2011 22:47
- Agradecido : 1 vez
- Agradecimiento recibido: 11 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
No son réplicas , ni emuladores, son implementaciones sintetizadas mediantes puertas lógicas corriendo en paralelo.
Un emulador es secuencial, o multihilo, corriendo bajo una CPU que le gobierna.
En una implementación FPGA hablamos de puertas lógicas, corriendo en paralelo, tal y como lo hace el chip original.
No tiene sentido decir que un FPGA es emulación, o réplica, es demasiado ambiguo, lleva a confusiones . Uno es software, lo otro hardware, las diferencias físicas y estructurales son evidentes.
Los NEC V20/30 son implementaciones del 8088/86, AMD implementa el juego de instrucciones de Intel.
Está claro que hay diferencias en el funcionamiento de algunas implementaciones respecto al original... Son los chips de AMD emuladores Intel entonces?
Réplicas, clones, emuladores... qué mas da la palabra que usemos, podemos usar la que nos convenga para llevar la razón a nuestro terreno y opinión, es todo ambiguo.
Lo único que hay que distinguir es que una cosa es hardware Y lo otro software, y lo que ello implica.
Un saludo.
P.D. FPGA NO es emulación!
Un emulador es secuencial, o multihilo, corriendo bajo una CPU que le gobierna.
En una implementación FPGA hablamos de puertas lógicas, corriendo en paralelo, tal y como lo hace el chip original.
No tiene sentido decir que un FPGA es emulación, o réplica, es demasiado ambiguo, lleva a confusiones . Uno es software, lo otro hardware, las diferencias físicas y estructurales son evidentes.
Los NEC V20/30 son implementaciones del 8088/86, AMD implementa el juego de instrucciones de Intel.
Está claro que hay diferencias en el funcionamiento de algunas implementaciones respecto al original... Son los chips de AMD emuladores Intel entonces?
Réplicas, clones, emuladores... qué mas da la palabra que usemos, podemos usar la que nos convenga para llevar la razón a nuestro terreno y opinión, es todo ambiguo.
Lo único que hay que distinguir es que una cosa es hardware Y lo otro software, y lo que ello implica.
Un saludo.
P.D. FPGA NO es emulación!
- Arturo
- Mensajes: 132
- Registrado: 13 Ene 2013 00:38
- Agradecido : 7 veces
- Agradecimiento recibido: 23 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Lo del funcionamiento en paralelo de la FPGA es verdad pero resulta que los ordenadores son máquinas discretas es decir entregan resultados cada cierto tiempo (eso son los ciclos) no de manera continua, entonces si un emulador CPU es lo suficientemente rapido para entregar esos resultados a tiempo aunque se hayan obtenido secuencialmente, no debería haber diferencia desde el exterior. Claro que el emulador tiene que realizar muchas mas operaciones de lo que haria el hardware sea original o FPGA.
- Drtad
- Mensajes: 802
- Registrado: 19 Ago 2017 11:21
- Agradecido : 85 veces
- Agradecimiento recibido: 147 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Para mí? Una forma barata de conocer otros.micros a los que por desgracia no se tiene fácil acceso como el.spectrum, el CPC, el c64 ........ No en serio es una forma barata de tener "replicas" de micros que son caros y no están almalcance de todos, o bien por qué se han perdido o por qué está supravalorados y con precios prohibitivos, ejemplo el Sam coupe
A.N.O.N.I.M.O.X.: Artificial Networked Organism Normally for Intensive Mathematics and Online Xenocide
- masteries
- Mensajes: 1931
- Registrado: 30 May 2018 11:33
- Ubicación: Espaciando
- Agradecido : 393 veces
- Agradecimiento recibido: 1340 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Una FPGA está basado en celdas de bits, puertas lógicas y transiciones mediante una o varias señales de reloj. Se pueden sintetizar circuirtos digitales clásicos, los más modernos basados en computación asíncrona al parecer se necesita de ASIC especiales (circuitos raritos y caros).
Pese a que en una FPGA se tiene una implementación hardware, no puedes disponer de todo el hardware que se diseñó. Recordad que existen integrados que aún a día de hoy son desconocidos por dentro, se sabe bien como responden a una entrada y la salidad que originan, pero se desconoce como responde a la totalidad de los posibles casos de entrada, y en ciertos programas o bajo ciertas circunstancias puede sorprenderte la salida que ha originado, o el tiempo que está empleando para ello (ya sea por rápido o lento). También integrar la parte analógica de un sistema puede volverse tremendamente complicado o no ser posible.
Respecto a este último párrafo, bien recuerdo que en MAME hay títulos que aún no están bien emulados, y cuando lees el por qué encuentras que tal CPU o tal chip de vídeo aún tiene partes desconocidas y así...
Pese a que en una FPGA se tiene una implementación hardware, no puedes disponer de todo el hardware que se diseñó. Recordad que existen integrados que aún a día de hoy son desconocidos por dentro, se sabe bien como responden a una entrada y la salidad que originan, pero se desconoce como responde a la totalidad de los posibles casos de entrada, y en ciertos programas o bajo ciertas circunstancias puede sorprenderte la salida que ha originado, o el tiempo que está empleando para ello (ya sea por rápido o lento). También integrar la parte analógica de un sistema puede volverse tremendamente complicado o no ser posible.
Respecto a este último párrafo, bien recuerdo que en MAME hay títulos que aún no están bien emulados, y cuando lees el por qué encuentras que tal CPU o tal chip de vídeo aún tiene partes desconocidas y así...
La maestría interior...
Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115
Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo
Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115
Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo
- Luis
- Mensajes: 1977
- Registrado: 03 Nov 2010 19:00
- Ubicación: Villaquijada del Tuerto
- Agradecido : 1408 veces
- Agradecimiento recibido: 665 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Para mí un FPGA es una forma de implementar un circuito, no lo rechazo como si fuera una emulación. En mi opinión, su ventaja principal frente a emuladores es que permite usar los mismos periféricos, con lo que a nivel hardware viene a ser lo mismo.
Tengo dos equipos réplica en FPGA: el Ultimate 64 (Commodore 64) y el AltairClone (Altair 8800). Yo no los considero como algo "falso". Son lo mismo, pero fabricados en el siglo XXI. Ambos se comportan bajo todos los aspectos como los originales. Quizá lo que echo en falta en el Altair es que le hayan puesto un slot para tarjetas S-100, que sería lo suyo.
Se que hay puristas que rechazan cosas así, pero es simplemente cabezonería. A mí cuando me dicen que eso de agrupar chips en uno va en contra de la esencia de los equipos de la época (que me lo han dicho, así tal cual ), yo les respondo ¿Y qué es la ULA del Spectrum o ZX81? ¿O las últimas revisiones de algunos equipos, que según iba pasando el tiempo cada vez tenían menos integrados?
Ok, aquí estamos metiendo no solo circuitos lógicos sino además procesador, ROM, RAM... pero, ¿Y qué más da?
Yo propongo una cuestión, a los que no les convence la idea: ¿Tomaríais mejor el asunto si se implementara en FPGA los chips de un ordenador, uno a uno pero colocados en su placa original? ¿Lo veríais más "puro"?
Tengo dos equipos réplica en FPGA: el Ultimate 64 (Commodore 64) y el AltairClone (Altair 8800). Yo no los considero como algo "falso". Son lo mismo, pero fabricados en el siglo XXI. Ambos se comportan bajo todos los aspectos como los originales. Quizá lo que echo en falta en el Altair es que le hayan puesto un slot para tarjetas S-100, que sería lo suyo.
Se que hay puristas que rechazan cosas así, pero es simplemente cabezonería. A mí cuando me dicen que eso de agrupar chips en uno va en contra de la esencia de los equipos de la época (que me lo han dicho, así tal cual ), yo les respondo ¿Y qué es la ULA del Spectrum o ZX81? ¿O las últimas revisiones de algunos equipos, que según iba pasando el tiempo cada vez tenían menos integrados?
Ok, aquí estamos metiendo no solo circuitos lógicos sino además procesador, ROM, RAM... pero, ¿Y qué más da?
Yo propongo una cuestión, a los que no les convence la idea: ¿Tomaríais mejor el asunto si se implementara en FPGA los chips de un ordenador, uno a uno pero colocados en su placa original? ¿Lo veríais más "puro"?
AHA! YOU GOT THE WUMPUS!
HEE HEE HEE - THE WUMPUS'LL GET YOU NEXT TIME!!
HEE HEE HEE - THE WUMPUS'LL GET YOU NEXT TIME!!
- Chema
- Mensajes: 2664
- Registrado: 21 Jun 2012 20:13
- Ubicación: Gijón
- Agradecido : 3190 veces
- Agradecimiento recibido: 926 veces
- Contactar:
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Bueno, la terminología puede ser confusa, porque depende de las consideraciones del que la usa. Igual que intentar clasificar algo en categorías suele dar problemas cuando éstas se acercan o (peor) se solapan.
Si vamos a la RAE emular es "Imitar las acciones de otro procurando igualarlas e incluso excederlas". Así que da igual si se trata de una réplica en FPGA o en software o hecha mediante Origami. Hay una diferencia con simular y es el matiz de procurando igualarlas e incluso excederlas. Cuando simulas intentas que, en apariencia, no haya diferencias con el original fingiendo lo que no es. Pero eso es otra historia.
Lo que pasa es que en nuestro mundillo los emuladores siempre han sido programas de software que emulaban un sistema antiguo para poder ejecutar su software y permitir al usuario una experiencia de uso lo más parecida al original. Y todos tan contentos.
Las FPGAs son otra historia y no había discusión cuando simplemente servían para replicar chips que ya no se hacían o eran caros o difíciles de encontrar. Estoy de acuerdo en que son reimplementaciones en hardware de esos chips que sirven para reemplazar cosas como la ULA de un speccy que se ha roto. Con o sin adiciones especiales. Si es una réplica, entonces el objetivo es que sea lo más exacta posible a nivel interno, si sólo queremos que se comporte igual sin importarnos cómo se hace internamente (es decir, queremos que sea compatible) entonces el chip nuevo emula el comportamiento del antiguo. No le veo el problema al término.
Pero creo que ron se refiere a estos sistemas nuevos como el ZX-Uno o la Mística, que se basan en FPGAs y cores que puedes cargar para emular (y lo digo con toda la intención) sistemas retro. También hay sistemas específicos para un equipo y pensados para poderles conectar el hard original, como el Ultimate 64. Los primeros no admiten conexiones de interfaces originales, ni cosas parecidas (que yo sepa).
Me da igual si se les aplica el término "emulación" o no. No es más que una palabra. En mi opinión (que es la mía ahora, y puede cambiar en un rato que me tome un café y despierte un poco más ) yo diferencio dos tipos importantes:
Réplicas Sistemas hechos con la tecnología de hoy que pretenden "replicar" cacharros antiguos con todo el detalle posible, con sus puertos de E/S, pensados para meter en su caja original, pero con adiciones modernas que los hagan más cómodos o les den más potencia de algún modo. Toda la experiencia de usuario del original, pero en moderno. Como si hacemos una réplica de un coche de 1930, pero con componentes actuales, o una réplica de la caja original del Atmos, con corchos y todo.
Sistemas multi-core Basados en FPGAs y (posiblemente) otro hard adicional, pensados para comportarse como múltiples sistemas con más o menos hard adicional. Pensados, sobre todo, para ponerles un teclado (y ratón) modernos, enchufarlas a la tele y trastear con todos los sistemas soportados.
Los segundos, sin ningún tipo de menosprecio, son emuladores, pero emulan con otra tecnología diferente. En lugar de mediante software que se ejecuta en un procesador, mediante la recreación hardware en una FPGA de los circuitos internos (con mayor o menor exactitud). Esto le da una serie de características propias y ventajas que ya habéis comentado en la RetroCrypta: sobre todo un comportamiento recreado mucho más fiable y preciso (no se saltan frames, no hay variaciones en velocidad de ejecución, no hay lags - o hay mucho menos lag, etc.).
También tienen sus limitaciones... no pueden añadir todo lo que quieren porque la FPGA tiene un tamaño limitado, las actualizaciones son más complicadas (parece ser) y por eso muchos núcleos no funcionan bien del todo y petan. Por otra parte un emulador (soft) puedes instalarlo y ejecutarlo en tu portátil, tu sobremesa, tu tableta, tu teléfono... hasta hay emuladores por web... También pueden expandirse muchísimo porque son más flexibles, puedes añadir la emulación de hardware de lo más pintoresco sin problemas, son ideales para desarrollar o explorar, integran depurador,... Y muchos son gratis y de código abierto.
Cada cosa para lo que es. Yo veo a Ron enganchado a algo como la MiST porque le encanta arrancar y probar mil cosas, palpar el sistema, hacerle diabluras y, aunque lo ideal sería usar hard original, no siempre es posible y esto es lo más cercano Los desarrolladores fijo que tiran de emuladores soft que ejecutan en su PC donde tienen el toolchain, donde pueden depurar, cambiar configuraciones sobre la marcha, acelerar la emulación (o ralentizarla), etc. El jugador ocasional quiere echar una partida al ManicMiner y lo hace desde el emulador de speccy que hay Web o desde el ZesarUX que tiene instalado en su portátil.
Y los jugones pueden usar ambos. Unos necesitan que aquello vaya a 50 fps y que el joystick tenga un lag menor de un milisegundo y nada que no sea el original o un sistema FPGA se lo va a dar. Otros no somos tan exquisitos y tiramos de la Pi que ya tenemos enganchada a la tele y de RetroPie o cosas así.
Y no pasa nada. No debería haber menosprecio alguno en el término. ¿O sí?
Y, perdonad, pero el purista que hay en mí sólo acepta el hard original, sin modificar, con más 30 años, mantenido impoluto con cariño y al que, como mucho, se le da de comer con algún dispositivo moderno que facilite su disfrute. Lo demás, está genial, pero no es el original, así que da igual.
Si vamos a la RAE emular es "Imitar las acciones de otro procurando igualarlas e incluso excederlas". Así que da igual si se trata de una réplica en FPGA o en software o hecha mediante Origami. Hay una diferencia con simular y es el matiz de procurando igualarlas e incluso excederlas. Cuando simulas intentas que, en apariencia, no haya diferencias con el original fingiendo lo que no es. Pero eso es otra historia.
Lo que pasa es que en nuestro mundillo los emuladores siempre han sido programas de software que emulaban un sistema antiguo para poder ejecutar su software y permitir al usuario una experiencia de uso lo más parecida al original. Y todos tan contentos.
Las FPGAs son otra historia y no había discusión cuando simplemente servían para replicar chips que ya no se hacían o eran caros o difíciles de encontrar. Estoy de acuerdo en que son reimplementaciones en hardware de esos chips que sirven para reemplazar cosas como la ULA de un speccy que se ha roto. Con o sin adiciones especiales. Si es una réplica, entonces el objetivo es que sea lo más exacta posible a nivel interno, si sólo queremos que se comporte igual sin importarnos cómo se hace internamente (es decir, queremos que sea compatible) entonces el chip nuevo emula el comportamiento del antiguo. No le veo el problema al término.
Pero creo que ron se refiere a estos sistemas nuevos como el ZX-Uno o la Mística, que se basan en FPGAs y cores que puedes cargar para emular (y lo digo con toda la intención) sistemas retro. También hay sistemas específicos para un equipo y pensados para poderles conectar el hard original, como el Ultimate 64. Los primeros no admiten conexiones de interfaces originales, ni cosas parecidas (que yo sepa).
Me da igual si se les aplica el término "emulación" o no. No es más que una palabra. En mi opinión (que es la mía ahora, y puede cambiar en un rato que me tome un café y despierte un poco más ) yo diferencio dos tipos importantes:
Réplicas Sistemas hechos con la tecnología de hoy que pretenden "replicar" cacharros antiguos con todo el detalle posible, con sus puertos de E/S, pensados para meter en su caja original, pero con adiciones modernas que los hagan más cómodos o les den más potencia de algún modo. Toda la experiencia de usuario del original, pero en moderno. Como si hacemos una réplica de un coche de 1930, pero con componentes actuales, o una réplica de la caja original del Atmos, con corchos y todo.
Sistemas multi-core Basados en FPGAs y (posiblemente) otro hard adicional, pensados para comportarse como múltiples sistemas con más o menos hard adicional. Pensados, sobre todo, para ponerles un teclado (y ratón) modernos, enchufarlas a la tele y trastear con todos los sistemas soportados.
Los segundos, sin ningún tipo de menosprecio, son emuladores, pero emulan con otra tecnología diferente. En lugar de mediante software que se ejecuta en un procesador, mediante la recreación hardware en una FPGA de los circuitos internos (con mayor o menor exactitud). Esto le da una serie de características propias y ventajas que ya habéis comentado en la RetroCrypta: sobre todo un comportamiento recreado mucho más fiable y preciso (no se saltan frames, no hay variaciones en velocidad de ejecución, no hay lags - o hay mucho menos lag, etc.).
También tienen sus limitaciones... no pueden añadir todo lo que quieren porque la FPGA tiene un tamaño limitado, las actualizaciones son más complicadas (parece ser) y por eso muchos núcleos no funcionan bien del todo y petan. Por otra parte un emulador (soft) puedes instalarlo y ejecutarlo en tu portátil, tu sobremesa, tu tableta, tu teléfono... hasta hay emuladores por web... También pueden expandirse muchísimo porque son más flexibles, puedes añadir la emulación de hardware de lo más pintoresco sin problemas, son ideales para desarrollar o explorar, integran depurador,... Y muchos son gratis y de código abierto.
Cada cosa para lo que es. Yo veo a Ron enganchado a algo como la MiST porque le encanta arrancar y probar mil cosas, palpar el sistema, hacerle diabluras y, aunque lo ideal sería usar hard original, no siempre es posible y esto es lo más cercano Los desarrolladores fijo que tiran de emuladores soft que ejecutan en su PC donde tienen el toolchain, donde pueden depurar, cambiar configuraciones sobre la marcha, acelerar la emulación (o ralentizarla), etc. El jugador ocasional quiere echar una partida al ManicMiner y lo hace desde el emulador de speccy que hay Web o desde el ZesarUX que tiene instalado en su portátil.
Y los jugones pueden usar ambos. Unos necesitan que aquello vaya a 50 fps y que el joystick tenga un lag menor de un milisegundo y nada que no sea el original o un sistema FPGA se lo va a dar. Otros no somos tan exquisitos y tiramos de la Pi que ya tenemos enganchada a la tele y de RetroPie o cosas así.
Y no pasa nada. No debería haber menosprecio alguno en el término. ¿O sí?
Y, perdonad, pero el purista que hay en mí sólo acepta el hard original, sin modificar, con más 30 años, mantenido impoluto con cariño y al que, como mucho, se le da de comer con algún dispositivo moderno que facilite su disfrute. Lo demás, está genial, pero no es el original, así que da igual.
- explorer
- Mensajes: 695
- Registrado: 10 Ene 2016 18:43
- Ubicación: Valladolid, España
- Agradecido : 24 veces
- Agradecimiento recibido: 680 veces
- Contactar:
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Por lo poco que he usado, me ha recordado estar delante del MAME en 1996.
Quiero decir: es algo nuevo, sí, pero no es una emulación perfecta (ya he descubierto algunos errores en núcleos arcade).
Y... el precio. Es un juguete muy caro para alguien que solo quiere jugar de vez en cuando. Este tipo de equipos merece la pena si estás casi toda la semana probando cosas. O si eres un desarrollador y quieres probar tus programas en un sistema más cercano a la velocidad real de la máquina original.
Pero para el jugador ocasional, o para el programador de un solo sistema... esto es demasiado caro, y no supera en calidad a lo que se obtiene de los emuladores software.
Quiero decir: es algo nuevo, sí, pero no es una emulación perfecta (ya he descubierto algunos errores en núcleos arcade).
Y... el precio. Es un juguete muy caro para alguien que solo quiere jugar de vez en cuando. Este tipo de equipos merece la pena si estás casi toda la semana probando cosas. O si eres un desarrollador y quieres probar tus programas en un sistema más cercano a la velocidad real de la máquina original.
Pero para el jugador ocasional, o para el programador de un solo sistema... esto es demasiado caro, y no supera en calidad a lo que se obtiene de los emuladores software.
JF^D - Calendario de Retroinformática - Telegram Retro Spain - RetroDev ES
- Jinks
- Mensajes: 2701
- Registrado: 09 Oct 2013 16:47
- Agradecido : 348 veces
- Agradecimiento recibido: 478 veces
- Contactar:
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Pues menudo chasco. Yo que pensaba que todo lo que se hace para FPGAs son réplicas... y ahora me entero de que no, que no deja de ser una emulación de los Z80, 68000... De verdad que con la MiST voy de chasco en chasco, aunque la verdad es que si esto no me lo contáis no me hubiera enterado.
- TitoxUnix
- Mensajes: 944
- Registrado: 14 Oct 2016 17:51
- Ubicación: Entre la tele y el sofá
- Agradecido : 247 veces
- Agradecimiento recibido: 371 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
explorer escribió:Por lo poco que he usado, me ha recordado estar delante del MAME en 1996.
Quiero decir: es algo nuevo, sí, pero no es una emulación perfecta (ya he descubierto algunos errores en núcleos arcade).
Y... el precio. Es un juguete muy caro para alguien que solo quiere jugar de vez en cuando. Este tipo de equipos merece la pena si estás casi toda la semana probando cosas. O si eres un desarrollador y quieres probar tus programas en un sistema más cercano a la velocidad real de la máquina original.
Pero para el jugador ocasional, o para el programador de un solo sistema... esto es demasiado caro, y no supera en calidad a lo que se obtiene de los emuladores software.
Vamos, que como no le den un buen apretón mejor emuladores... me estoy viniendo abajo. Desde hace tiempo que me parece que las FPGAs van a ser sólo sustitutos de pequeños chips, como la ULA del Speccy.
Me imagino que a partir del código del Minimig se debe poder sacar el código para recrear el Fat Agnus, por ejemplo. ¿no? Porque un clon de ULA de Speccy cuesta 20€ sólo y un Fat Agnus no debería costar más...
- kikems
- Mensajes: 5502
- Registrado: 30 May 2013 19:23
- Agradecido : 2638 veces
- Agradecimiento recibido: 3112 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
No sé, desde mi ignorancia pero aplicando el sentido común, creo que el FPGA puede recrear el comportamiento exacto de una máquina real, siempre que dispongas de los planos y diseños de la circuitería y de los chips o en su defecto un decapado completo de todos los chipset.
Si no tienes nada de eso, entiendo que el proceso no difiere mucho de cómo se programa un emulador, "a ojo" y observando e interpretando las salidas de datos. Este proceso de "a ojo" e interpretación puede generar cantidad de comportamientos diferentes de la máquina real y por tanto los cores FPGA no llegan a funcionar tan perfectos como deberían, ya que gran parte del core ha salido de reinterpretar código de emuladores y de reinterpretaciones propias del programador que pretenden imitar la máquina original.
Pienso que cores actuales de las FPGA no son muy diferentes de esas ingenierías inversas que realizaban los rusos con los spectrum o los americanos clonando los Apple II, recreaciones por ingeniería inversa que nunca llegaban a una compatibilidad del 100% con el original.
Por todo lo que he comentado, a efectos reales, no creo que se tenga demasiada diferencia en compatibiliades entre un buen emulador y un core de FPGA, a no ser que el core FPGA se realizara desde información original completa de los chips o un decapado de los mismos.
En resumen , si la propia Commodore existiera podría recrear o sintetizar en un FPGA un C64 o un Amiga 100% compatible, por poner un ejemplo, pero como todo se hacer por ingeniería inversa o interpretación, el resultado final ( en el mejor de los casos ) no difiere mucho de un buen emulador.
Lo que si hemos visto en estos últimos años es que los programadores están consiguiendo buenas compatibilidades en FPGA en menos tiempo de lo que han tardado los emuladores en conseguir un buen nivel.
Si no tienes nada de eso, entiendo que el proceso no difiere mucho de cómo se programa un emulador, "a ojo" y observando e interpretando las salidas de datos. Este proceso de "a ojo" e interpretación puede generar cantidad de comportamientos diferentes de la máquina real y por tanto los cores FPGA no llegan a funcionar tan perfectos como deberían, ya que gran parte del core ha salido de reinterpretar código de emuladores y de reinterpretaciones propias del programador que pretenden imitar la máquina original.
Pienso que cores actuales de las FPGA no son muy diferentes de esas ingenierías inversas que realizaban los rusos con los spectrum o los americanos clonando los Apple II, recreaciones por ingeniería inversa que nunca llegaban a una compatibilidad del 100% con el original.
Por todo lo que he comentado, a efectos reales, no creo que se tenga demasiada diferencia en compatibiliades entre un buen emulador y un core de FPGA, a no ser que el core FPGA se realizara desde información original completa de los chips o un decapado de los mismos.
En resumen , si la propia Commodore existiera podría recrear o sintetizar en un FPGA un C64 o un Amiga 100% compatible, por poner un ejemplo, pero como todo se hacer por ingeniería inversa o interpretación, el resultado final ( en el mejor de los casos ) no difiere mucho de un buen emulador.
Lo que si hemos visto en estos últimos años es que los programadores están consiguiendo buenas compatibilidades en FPGA en menos tiempo de lo que han tardado los emuladores en conseguir un buen nivel.
- Hodor
- Mensajes: 1705
- Registrado: 19 May 2015 10:55
- Ubicación: A 900km de Oviedo
- Agradecido : 438 veces
- Agradecimiento recibido: 525 veces
Re: Debate RW. ¿ Qué es para ti una FPGA ?
Chema escribió:[...]
Pero creo que ron se refiere a estos sistemas nuevos como el ZX-Uno o la Mística, que se basan en FPGAs y cores que puedes cargar para emular (y lo digo con toda la intención) sistemas retro. También hay sistemas específicos para un equipo y pensados para poderles conectar el hard original, como el Ultimate 64. Los primeros no admiten conexiones de interfaces originales, ni cosas parecidas (que yo sepa).
[...]
Por añadir un pequeño extra a tu excelente aportación: también hay disponibles cosas como un puerto de cartuchos SNES en la Raspberry que permite conectar juegos originales y utilizar un emulador para hacerlos funcionar. Y, siempre y cuando la memoria no me falle, lo mismo con otro puerto de cartuchos MSX.
Un saludo.
- Chema
- Mensajes: 2664
- Registrado: 21 Jun 2012 20:13
- Ubicación: Gijón
- Agradecido : 3190 veces
- Agradecimiento recibido: 926 veces
- Contactar:
Re: Debate RW. ¿ Qué es para ti una FPGA ?
kikems escribió:En resumen , si la propia Commodore existiera podría recrear o sintetizar en un FPGA un C64 o un Amiga 100% compatible, por poner un ejemplo, pero como todo se hacer por ingeniería inversa o interpretación, el resultado final ( en el mejor de los casos ) no difiere mucho de un buen emulador.
Lo que si hemos visto en estos últimos años es que los programadores están consiguiendo buenas compatibilidades en FPGA en menos tiempo de lo que han tardado los emuladores en conseguir un buen nivel.
+1 kikems. Aunque es cierto que el comportamiento de estos sistemas basados en FPGA y múltiples cores se parece mucho más al de la máquina real, cuando están bien hechos. En todo caso creo que el objetivo de hacerlo en un FPGA es siempre conseguir un circuito (o conjunto de ellos) lo más fiel posible al circuito hardware original , mientras que en un emulador por software intentas más programar el comportamiento del hardware original, no en emular su circuito.
No sé si me explico... esta gente intenta sintetizar mediante las puertas de la FPGA, la CPU, la ULA, el AY y toda la circuitería adicional (memoria incluida) para que el conjunto se comporte como un spectrum. Más fiel al hardware original es difícil...
Otra cosa, como dice explorer, es si merece la pena el precio y perder la comodidad de un emulador por software de los de toda la vida. Para algunos fijo que sí, ya digo. El otro día en el directo de la cripta a mí me convencieron de sus ventajas
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados