Sintetizando un Specturm con FPGA

Avatar de Usuario
Kyp
Mensajes: 888
Registrado: 03 Oct 2013 17:13
Agradecido : 132 veces
Agradecimiento recibido: 347 veces

Sintetizando un Specturm con FPGA

Mensajepor Kyp » 16 Abr 2020 22:05

zx81 escribió:La CPU últimamente ha mejorado mucho, los dos fallos que salen de SCF+CCF y viceversa no tienen casi importancia.

Eso puede tener que ver con si es un Z80 NEC u otra marca, no? De todas formas no creo que sea relevante. Eso pasa igual en el HW real.

zx81 escribió:Al Spectrum 48k,

  • Contención de memoria y bus flotante correctos y en su sitio
  • Timings precisos en borde y pantalla
  • Mientras los dos puntos anteriores no estén liquidados, no me gustaría ver cosas innecesarias como DivIDE, que solo son un problema. Hasta el último transistor de la FGPA debe dedicarse a la sintetización de lo importante
  • Si sobrara algo de espacio, quizá antes que un DivIDE o la ULA+, preferiría un Multiface. Eso permite escudriñar la memoria y poner POKES, entre otras cosas.

¿Los timings de contienda y bus flotante no son correctos? Si paso el ulatst3m.tap me salen donde deben. ¿Cómo puedo asegurarme de que si lo son?
Los de borde y pantalla igual. ¿No están como debe?
Por espacio en la FPGA no hay problema, un Spectrum pelao no llega a la mitad de slices.

Ya hablaremos del 128K ;)

Avatar de Usuario
zx81
Mensajes: 516
Registrado: 23 Feb 2013 21:31
Agradecido : 138 veces
Agradecimiento recibido: 282 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor zx81 » 16 Abr 2020 23:52

Primero, aclaremos de qué core estamos hablando. ¿El original del equipo del ZX-Uno, o el que tú fuiste modificando?. Recuerdo que hace ya unos meses, allá por el verano del año pasado si la memoria no me falla, actualicé los cores y probé el tuyo también, aunque me costó un poco encontrar lo que creo que era la última versión.

Para probar la contienda y los timings se puede usar el IR_Contention y el ulatest3-modified, que es el test de Jan Bobrowsky con unas modificaciones por parte de Chris Smith que pone más claramente los diferentes estados.

Por abreviar, puedes repasar este larguísimo pero interesante hilo que enlazo a partir del mensaje que importa: http://www.zxuno.com/forum/viewtopic.ph ... st3#p21324
Cuando utilizo una palabra, esa palabra significa, exactamente, lo que yo quiero que signifique. Ni más, ni menos.
Humpty Dumpty

Empieza a jugar sin tener que compilar: Emulador JSpeccy
ZX Spectrum bare-metal para Raspberry PI ZXBaremulator

Avatar de Usuario
Kyp
Mensajes: 888
Registrado: 03 Oct 2013 17:13
Agradecido : 132 veces
Agradecimiento recibido: 347 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor Kyp » 17 Abr 2020 11:33

Yo hablo de mi core que es el que puedo afinar, y no es que fuera modificando el original, esta escrito desde cero. El core está aquí:
https://1drv.ms/f/s!Aj2oYYIgITnQkDHmZ42kBXE9-6ob

He hecho un montón de cambios desde entonces pero aun no los he publicado oficialmente, el proyecto está (por fin) en mi GitHub:
https://github.com/Kyp069/zx48

Avatar de Usuario
zx81
Mensajes: 516
Registrado: 23 Feb 2013 21:31
Agradecido : 138 veces
Agradecimiento recibido: 282 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor zx81 » 17 Abr 2020 12:37

Tengo que sacar el ZX-Uno, pero recapitulemos. Ese core creo que lo probé, lo volveré a comprobar. Si no recuerdo mal, solo acepta entrada de cinta de casete, ¿no?.

De ese último core de github aún no hay binario, ¿no?
Cuando utilizo una palabra, esa palabra significa, exactamente, lo que yo quiero que signifique. Ni más, ni menos.
Humpty Dumpty

Empieza a jugar sin tener que compilar: Emulador JSpeccy
ZX Spectrum bare-metal para Raspberry PI ZXBaremulator

Avatar de Usuario
Kyp
Mensajes: 888
Registrado: 03 Oct 2013 17:13
Agradecido : 132 veces
Agradecimiento recibido: 347 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor Kyp » 17 Abr 2020 13:26

Mi core antiguo lo hay con y sin DivMMC. Pero casi mejor lo olvidamos. Espera y genero un binario de la versión nueva que tiene la última versión del core de Z80, DivMMC, AY y Specdrum.

Avatar de Usuario
carmeloco
Mensajes: 1961
Registrado: 16 Dic 2015 08:56
Agradecido : 27 veces
Agradecimiento recibido: 432 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor carmeloco » 17 Abr 2020 13:44

Una pregunta. Si el problema de la frecuencia de reloj, es que no se pueden generar múltiplos exáctos al original, partiendo del reloj maestro de 50MHz del ZX-Uno, ¿no se podría crear un hardware nuevo, que tuviese los mismos osciladores que llevan los spectrum reales? Es decir, usar la frecuencia de reloj que usan los spectrums reales.

Avatar de Usuario
zx81
Mensajes: 516
Registrado: 23 Feb 2013 21:31
Agradecido : 138 veces
Agradecimiento recibido: 282 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor zx81 » 17 Abr 2020 13:52

Ando mirando que mi ZX-Uno tiene dos cores, el KypSpectrum y el "ZX48 Kyp". El que estoy probando es el segundo que, por cierto, tiene problemas con el ESXDOS 0.8.7 que instale para el core "de serie".
Cuando utilizo una palabra, esa palabra significa, exactamente, lo que yo quiero que signifique. Ni más, ni menos.
Humpty Dumpty

Empieza a jugar sin tener que compilar: Emulador JSpeccy
ZX Spectrum bare-metal para Raspberry PI ZXBaremulator

Avatar de Usuario
carmeloco
Mensajes: 1961
Registrado: 16 Dic 2015 08:56
Agradecido : 27 veces
Agradecimiento recibido: 432 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor carmeloco » 17 Abr 2020 14:08

zx81 escribió:Ando mirando que mi ZX-Uno tiene dos cores, el KypSpectrum y el "ZX48 Kyp". El que estoy probando es el segundo que, por cierto, tiene problemas con el ESXDOS 0.8.7 que instale para el core "de serie".

Ojo, que posiblemente, el core de Kyp lleve el EsxDOS integrado en el core, y no use el que se instala a traves de la BIOS.

Avatar de Usuario
zx81
Mensajes: 516
Registrado: 23 Feb 2013 21:31
Agradecido : 138 veces
Agradecimiento recibido: 282 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor zx81 » 17 Abr 2020 14:19

carmeloco escribió:
zx81 escribió:Ando mirando que mi ZX-Uno tiene dos cores, el KypSpectrum y el "ZX48 Kyp". El que estoy probando es el segundo que, por cierto, tiene problemas con el ESXDOS 0.8.7 que instale para el core "de serie".

Ojo, que posiblemente, el core de Kyp lleve el EsxDOS integrado en el core, y no use el que se instala a traves de la BIOS.


Lo lleva, porque al arrancar veo ESXDOS 0.8.6.

De paso, aprovecho para decir que he montado el último core oficial, 300320, y los test IR_Contention y ulatest3-modified salen exactamente igual que antes. Pasa los test del z80full, excepto los dos sin importancia. Extrañamente, el test de flags y memptr de Mark Woodmass, falla en los flags de BIT n,(HL) y en todos los test de memptr. Raro, raro, raro...

El fusetest falla en LDIR.
Cuando utilizo una palabra, esa palabra significa, exactamente, lo que yo quiero que signifique. Ni más, ni menos.
Humpty Dumpty

Empieza a jugar sin tener que compilar: Emulador JSpeccy
ZX Spectrum bare-metal para Raspberry PI ZXBaremulator

Avatar de Usuario
desUBIKado
Mensajes: 545
Registrado: 15 Dic 2017 19:50
Agradecido : 174 veces
Agradecimiento recibido: 918 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor desUBIKado » 17 Abr 2020 15:04

Kyp escribió:Yo hablo de mi core que es el que puedo afinar, y no es que fuera modificando el original, esta escrito desde cero. El core está aquí:
https://1drv.ms/f/s!Aj2oYYIgITnQkDHmZ42kBXE9-6ob

He hecho un montón de cambios desde entonces pero aun no los he publicado oficialmente, el proyecto está (por fin) en mi GitHub:
https://github.com/Kyp069/zx48


Hola kyp,

¿podrías sintetizar un binario con el esxDOS 0.8.7 para que lo podamos probar?

Avatar de Usuario
Kyp
Mensajes: 888
Registrado: 03 Oct 2013 17:13
Agradecido : 132 veces
Agradecimiento recibido: 347 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor Kyp » 17 Abr 2020 15:32

desUBIKado escribió:¿podrías sintetizar un binario con el esxDOS 0.8.7 para que lo podamos probar?

Si, esta tarde me pongo con ello que yo soy de los 'afortunados' que teletrabaja y sigo sin tener mucho tiempo para el cacharreo.

Avatar de Usuario
Kyp
Mensajes: 888
Registrado: 03 Oct 2013 17:13
Agradecido : 132 veces
Agradecimiento recibido: 347 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor Kyp » 17 Abr 2020 16:00

carmeloco escribió:Una pregunta. Si el problema de la frecuencia de reloj, es que no se pueden generar múltiplos exáctos al original, partiendo del reloj maestro de 50MHz del ZX-Uno, ¿no se podría crear un hardware nuevo, que tuviese los mismos osciladores que llevan los spectrum reales? Es decir, usar la frecuencia de reloj que usan los spectrums reales.

Si, pero va a ser difícil encontrarlos. Estuvimos buscando unos para el ZX128+ y no los hay. El Spectrum lleva un oscilador de 35,4690 MHz que divide entre 5 para obtener 7,0938 MHz. Lo ideal sería uno de 28,3752 MHz o de 56,7504 MHz.

Pero si pones ese para el 128K seguramente no se podrá conseguir una frecuencia exacta de 7,000 MHz para el modo 48K.

A la FPGA se le mete una señal de reloj que puede usar directamente o se puede pasar por un módulo de reloj que obtiene una frecuencia a partir de esa multiplicándola por un factor y luego dividiéndola por otro (números enteros).

Para el 48K... 50*14/25 = 28,0000 MHz que luego divido entre 4 para obtener 7,0000 MHz.
Para el 128K... 50*21/37 = 28,37837837837838 MHz que luego divido entre 4 para obtener 7,094594594594595 MHz (debería ser 7,0938 MHz).

Avatar de Usuario
carmeloco
Mensajes: 1961
Registrado: 16 Dic 2015 08:56
Agradecido : 27 veces
Agradecimiento recibido: 432 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor carmeloco » 17 Abr 2020 16:37

Kyp escribió: Si, pero va a ser difícil encontrarlos. Estuvimos buscando unos para el ZX128+ y no los hay. El Spectrum lleva un oscilador de 35,4690 MHz que divide entre 5 para obtener 7,0938 MHz. Lo ideal sería uno de 28,3752 MHz o de 56,7504 MHz.

Pero si pones ese para el 128K seguramente no se podrá conseguir una frecuencia exacta de 7,000 MHz para el modo 48K.

A la FPGA se le mete una señal de reloj que puede usar directamente o se puede pasar por un módulo de reloj que obtiene una frecuencia a partir de esa multiplicándola por un factor y luego dividiéndola por otro (números enteros).

Para el 48K... 50*14/25 = 28,0000 MHz que luego divido entre 4 para obtener 7,0000 MHz.
Para el 128K... 50*21/37 = 28,37837837837838 MHz que luego divido entre 4 para obtener 7,094594594594595 MHz (debería ser 7,0938 MHz).

Bueno, mi idea era la de poner un oscilador para cada modo, conmutados o con un conmutador, o de alguna otra forma. Para el oscilador que no sea fácil de encontrar, un cristal lo más próximo posible, y hacer un circuito de frecuencia ajustable con un potenciómetro, y calibrarlo mediante osciloscopio.
¿Es viable mediante un add-on en el puerto de expansión del ZX-Uno?

Avatar de Usuario
Kyp
Mensajes: 888
Registrado: 03 Oct 2013 17:13
Agradecido : 132 veces
Agradecimiento recibido: 347 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor Kyp » 17 Abr 2020 17:56

He subido a GitHub una release con el .bit y el .ZX1

Avatar de Usuario
Kyp
Mensajes: 888
Registrado: 03 Oct 2013 17:13
Agradecido : 132 veces
Agradecimiento recibido: 347 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor Kyp » 17 Abr 2020 18:05

carmeloco escribió:Bueno, mi idea era la de poner un oscilador para cada modo, conmutados o con un conmutador, o de alguna otra forma. Para el oscilador que no sea fácil de encontrar, un cristal lo más próximo posible, y hacer un circuito de frecuencia ajustable con un potenciómetro, y calibrarlo mediante osciloscopio.
¿Es viable mediante un add-on en el puerto de expansión del ZX-Uno?

En el puerto de expansión están mapeados varios pines de clock global así que supongo que que si se podría. Y no haría falta un conmutador porque se puede usar un pin u otro cambiando el UCF. Lo del circuito de frecuencia ajustable no se, se escapa a mis conocimientos.

Avatar de Usuario
jorsus
Mensajes: 397
Registrado: 02 Ago 2018 20:53
Ubicación: Algeciras
Agradecido : 412 veces
Agradecimiento recibido: 347 veces

Re: Sintetizando un Specturm con FPGA

Mensajepor jorsus » 17 Abr 2020 18:07

Kyp escribió:He subido a GitHub una release con el .bit y el .ZX1


Como pedir es gratis....
¿Es posible portar este core a la Mistica?
Pregunto desde el desconocimiento.
Si es una burrada lo que he dicho lo podéis ignorar tranquilamente.


Volver a “Placas FPGA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado