KCPSM6 PicoBlaze: ¡Soft cores al poder!

Vanfanel
Mensajes: 276
Registrado: 16 Oct 2016, 15:50

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por Vanfanel » 18 May 2018, 21:08

@jotego: loco me tiene la idea, pero loco. Ghosts'n Goblins o Bubble Bobble en ZX-UNO... :temblando:

nch
Mensajes: 77
Registrado: 10 Ene 2018, 23:16

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por nch » 18 May 2018, 22:45

jotego escribió:Tiene mucho sentido hacerlo así y no tardaréis en ver algo mío desarrollado de esta forma.
Estoy deseando verlo, en serio. Aprovechando hasta la última gota del ZX-Uno.
Gracias jotego. :okidoki;

Avatar de Usuario
jotego
Mensajes: 158
Registrado: 11 May 2016, 23:45
Ubicación: Valencia
Contactar:

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por jotego » 19 May 2018, 12:14

Vanfanel escribió:@jotego: loco me tiene la idea, pero loco. Ghosts'n Goblins o Bubble Bobble en ZX-UNO... :temblando:
El Bubble Bobble tiene tres Z80. Solo puede caber con técnicas como esta que exprimen la FPGA. Es un juego que aun con tres procesadores se ralentiza a veces. Ese me gustaría llegar a verlo en FPGA.


Enviado desde mi iPhone utilizando Tapatalk

Avatar de Usuario
jotego
Mensajes: 158
Registrado: 11 May 2016, 23:45
Ubicación: Valencia
Contactar:

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por jotego » 19 May 2018, 13:42

En este tema Alexey, del Mister, está a la defensiva. Quizá sea porque uno de los puntos fuertes de mister es una FPGA grande y está técnica le quita importancia a eso.

Esto se puede usar hasta para hacer los circuitos gráficos. En ese caso no se si en área se ganaría tanto porque estos circuitos no son tan grandes como una CPU. El beneficio sería en la facilidad de diseño. Si al desarrollador le cuesta menos hacer el core, tendremos más cores. Insisto, no se pierde precisión en el sistema.

Por ejemplo los gráficos del Ghosts’n Goblins van a 6MHz. Cada pixel está compuesto de una mezcla de fondo, objetos y caracteres. Hacer la mezcla por software costaría unas 10 o 12 instrucciones que serían unos 24 ciclos de reloj o sea que tendría que ir esa mini CPU a 144MHz. Eso es viable en el ZX-UNO. Cómo estás mini CPUs son tan pequeñas se implementan en la FPGA ocupando slices que están muy pegadas y son muy pocas así que pueden alcanzar mucha velocidad.

Para la síntesis FM de los Yamaha aún estoy dándole vueltas. Puede que en vez de varios picoblaze vaya mejor hacer una mini CPU con un balance de ancho del registro/número de registros distinto. La picoblaze tiene 16 registros de 8 bits y seguramente algo así como 4 registros de 18 bits funcionaría mejor en este caso.


Enviado desde mi iPhone utilizando Tapatalk

Avatar de Usuario
Radastan
Mensajes: 389
Registrado: 05 Oct 2015, 14:39

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por Radastan » 21 May 2018, 23:51

Si consigues meter el Ghost & Goblins, de la forma que sea, en el ZXUno… me vas a tener a tus pies durante eones. Mi juego favorito arcade, junto al Phoenix.

Y si ya metes el Bubble Bobble, y el Bomb Jack, te ponemos un altar. Joder, es que el ZXUno se convertiría en todo un pelotazo.

Avatar de Usuario
jotego
Mensajes: 158
Registrado: 11 May 2016, 23:45
Ubicación: Valencia
Contactar:

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por jotego » 22 May 2018, 16:47

Radastan escribió:Si consigues meter el Ghost & Goblins, de la forma que sea, en el ZXUno… me vas a tener a tus pies durante eones. Mi juego favorito arcade, junto al Phoenix.

Y si ya metes el Bubble Bobble, y el Bomb Jack, te ponemos un altar. Joder, es que el ZXUno se convertiría en todo un pelotazo.
No sabes cuánto anima ver que a otros compañeros les interesan estos proyectos. Y más si es alguien que ha aportado tanto a la comunidad como tú.

Estoy estudiando la topología de la FPGA Spartan 6 del ZX-UNO mejor y comparando lo que ocupan distintas formas de hacer las cosas ahora. También compré este libro la semana pasada para coger ideas y corregir fallos.

Anoche empecé a definir el problema del sintetizador FM de Yamaha en términos de software corriendo en una mini CPU especializada que haría yo. Empiezo por ahí porque el YM2203 no lo tengo metido aun en el G&G de MiST así que si completo esa parte ya estaría todo el juego en MiST. Sólo que esa parte ya la hago desde el principio con el requisito de que quepa sobradamente en un ZX-UNO. Ojo, que con el YM2203 y el Z80 en ZX-UNO ya hay muchos juegos de CAPCOM que funcionarían (aunque en general necesitan dos Z80 que no sé si cabrían tal y como están hechos ahora).

Avatar de Usuario
jotego
Mensajes: 158
Registrado: 11 May 2016, 23:45
Ubicación: Valencia
Contactar:

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por jotego » 09 Jun 2018, 18:25

Una pequeña actualización de como va esto.

-he definido una CPU propia minimalista de 16 bits que debería de ocupar muy muy poco en el ZX-UNO
-he escrito el núcleo del modulador FM de los Yamaha para esta CPU mía
-Estimo que para hacer un YM2203 hará falta poner esta CPU a ~100MHz y ocupar un bloque de memoria de la FPGA.
-Estoy evaluando este core FM con un emulador de esta CPU. Todavía no me da el resultado exacto que con el core FM del JT12/JT51. Aunque en la práctica para sonidos que no distorsionen se oirá igual. En la imagen veis la comparativa. El nuevo core se llama NPFM de momento (Nuevo Procesador FM). Ya veis que se solapan las dos curvas. La pequeña diferencia no es realmente audible pero quiero corregirla para poder decir que lo estamos clavando. MAME no creo que lo clave a este nivel. Ya digo que para la mayoría de sonidos no se puede apreciar la diferencia de oído

Imagen


Enviado desde mi iPhone utilizando Tapatalk

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por neuro_999 » 09 Jun 2018, 18:33

Oido no se, pero vista hay que tenerla buena para ver la diferencia...:)
Con ganas de ver algo implementado con eso a ver que tal. :)


Enviado desde mi ONE A2003 mediante Tapatalk

Vanfanel
Mensajes: 276
Registrado: 16 Oct 2016, 15:50

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por Vanfanel » 09 Jun 2018, 18:51

@jotego: Cada vez que me llega al correo un aviso de este hilo, vengo que pierdo el culo a ver qué avances comentas. Me encanta leer lo que vas haciendo...
¿El emulador que correrá sobre tu propia CPU está escrito en C o en qué?

Avatar de Usuario
jotego
Mensajes: 158
Registrado: 11 May 2016, 23:45
Ubicación: Valencia
Contactar:

Re: KCPSM6 PicoBlaze: ¡Soft cores al poder!

Mensaje por jotego » 23 Jun 2018, 17:59

Vanfanel escribió:@jotego: Cada vez que me llega al correo un aviso de este hilo, vengo que pierdo el culo a ver qué avances comentas. Me encanta leer lo que vas haciendo...
¿El emulador que correrá sobre tu propia CPU está escrito en C o en qué?
Está escrito en ensamblador. En realidad es muy poco código pero tiene que correr en tiempo real porque si el Yamaha iba en el juego original a 55kHz, a esa velocidad hay que calcularlo todo sin excusa. Y parece lento pero por ejemplo el Ghosts'n Goblins tiene 6 canales FM, cada uno con 4 operadores, o sea que es como si hubiera que calcular para 6x4x55 kHz = 1.320 MHz y si cada salida necesita unas 100 operaciones pues ya nos ponemos en que la CPU ha de correr a más de 132MHz. Por estos motivos en la época estos sintetizadores eran chip dedicados. Imposible hacer esto con un Z80 o un 68000, incluso si sólo hiciéramos un canal FM.

Ahora estoy tratando de cerrar el diseño de la CPU para la FPGA haciendo ya pruebas de velocidad de los módulos. Luchando para ver si llego a 200MHz en el ZX-UNO porque así seguramente con una sola CPU metía dos YM2203 enteritos ahorrando área.

Responder