Proposición ZXUno+
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Proposición ZXUno+
De todas formas, mira.... si el A-Z80 se arregla, o bien consigo escribir una descripción del Z80 "subcycle exact", escribiré, a efectos didácticos, una descripción del Spectrum 48K todo lo "purist bitch edition" que la FPGA me permita.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
Re: Proposición ZXUno+
ooooeeee, oooeee, oooeee, oooeeeeeeeeemcleod_ideafix escribió:De todas formas, mira.... si el A-Z80 se arregla, o bien consigo escribir una descripción del Z80 "subcycle exact", escribiré, a efectos didácticos, una descripción del Spectrum 48K todo lo "purist bitch edition" que la FPGA me permita.
¿Todo lo que la FPGA te permita?. ¿Incluido que funcione la demo técnica brightminer?
¿Le llamarás así al core, "purist bitch edition"? (me encantó la definición, lo mejor del hilo)
P.D: Ver en un Spectrum 48k real si no entiendes nada de lo que ves...
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Proposición ZXUno+
Ese efecto ocurre ya en el ámbito analógico. En la ULA original, ocurre en los circuitos (analógicos) que transforman el espacio de color IRGB a YUV. La FPGA es 100% digital y no puede procesar o generar una señal analógica. Puedo añadir este comportamiento "a fuego" en la descripción, pero sería como emulación, es decir, fuerzo ese comportamiento, en lugar de ser un comportamiento que se derive de los propios circuitos que hay dentro de la FPGA.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Proposición ZXUno+
Corrijo: no, no ocurre ahí. Ocurre antes. Es lo que explica Chris Smith en las páginas 243 y 244 del libro de la ULA. Este tipo de glitches se deben a los retardos de propagación propios de la ULA original (y de su tecnología de fabricación), y que no existirían (bueno, sí, pero de un orden de magnitud mucho menor) en la FPGA. Para que te hagas una idea, los retardos de propagación internos que suelo manejar dentro de la propia FPGA se miden en picosegundos, mientras que en la ULA original son decenas de nanosegundos. Es decir, un factor de 100 a 1000.
En una FPGA puedes emular un retardo de propagación metiendo un flip flop en medio, pero claro, es lo que decía antes: sería un comportamiento añadido, y no derivado del propio circuito de la ULA.
En una FPGA puedes emular un retardo de propagación metiendo un flip flop en medio, pero claro, es lo que decía antes: sería un comportamiento añadido, y no derivado del propio circuito de la ULA.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
Re: Proposición ZXUno+
No te dije que sería fácil. Te dije que sería la verdad.mcleod_ideafix escribió:Corrijo: no, no ocurre ahí. Ocurre antes. Es lo que explica Chris Smith en las páginas 243 y 244 del libro de la ULA. Este tipo de glitches se deben a los retardos de propagación propios de la ULA original (y de su tecnología de fabricación), y que no existirían (bueno, sí, pero de un orden de magnitud mucho menor) en la FPGA. Para que te hagas una idea, los retardos de propagación internos que suelo manejar dentro de la propia FPGA se miden en picosegundos, mientras que en la ULA original son decenas de nanosegundos. Es decir, un factor de 100 a 1000.
En una FPGA puedes emular un retardo de propagación metiendo un flip flop en medio, pero claro, es lo que decía antes: sería un comportamiento añadido, y no derivado del propio circuito de la ULA.
Re: Proposición ZXUno+
Muy interesante esta conversación. He hecho unas pruebas con mi core. He metido el a-z80 y ha mejorado mucho la cosa. Solo he tenido que ajustar el momento en que está activa la contienda y lo poco que he probado sale perfecto. Estaba usando como referencia el un test que se llama prtiming y el programa que hizo azesmbog (lo podéis bajar en el hilo de mi core) y en ambos casos lo clava. Tengo que hacer más pruebas.
Última edición por Kyp el 25 Ene 2018, 20:13, editado 1 vez en total.
Re: Proposición ZXUno+
Kyp escribió:Muy interesante esta conversación. He hecho unas pruebas con mi core. He metido el a-z80 y ha mejorado mucho la cosa. Solo he tenido que ajustar el momento en que está activa la contienda y lo poco que he probado sale perfecto. Estaba usando como referencia el ulatest3 y el programa que hizo azesmbog (lo podéis bajar en el hilo de mi core) y en ambos casos lo clava. Tengo que hacer más pruebas.
Queremos catar ese core YA!.
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Proposición ZXUno+
Wow! Eso es estupendo.... lo de la contienda.... ¿cómo lo haces? porque el A-Z80 (a menos que te hayas bajado una versión más moderna y Goran lo haya resuelto) no pone la dirección en el bus hasta que no baja MREQ, y eso fastidia del todo al detector de accesos a memoria contenida. ¿Cómo se comportan fusetest y las cosas que usan MEMPTR y demás? Yo también querría probarloKyp escribió:Muy interesante esta conversación. He hecho unas pruebas con mi core. He metido el a-z80 y ha mejorado mucho la cosa. Solo he tenido que ajustar el momento en que está activa la contienda y lo poco que he probado sale perfecto. Estaba usando como referencia el ulatest3 y el programa que hizo azesmbog (lo podéis bajar en el hilo de mi core) y en ambos casos lo clava. Tengo que hacer más pruebas.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
Re: Proposición ZXUno+
La contienda me sale, creo, bien.
Captura de un test que se llama prtiming: Este es el resultado del fusetest (si, el bus flotante no funciona ahora ),a ver que he roto: El test contention: Y el iocontention: Mi bestia negra, el programa de azesmbog que depende de que la interrupción salte cuando debe, de que la contienda sea la correcta, y que las instrucciones duren lo que deben durar (la zona blanca es el borde que sale blanco en vez de negro porque el a-z80 es un Z80 cmos):
Captura de un test que se llama prtiming: Este es el resultado del fusetest (si, el bus flotante no funciona ahora ),a ver que he roto: El test contention: Y el iocontention: Mi bestia negra, el programa de azesmbog que depende de que la interrupción salte cuando debe, de que la contienda sea la correcta, y que las instrucciones duren lo que deben durar (la zona blanca es el borde que sale blanco en vez de negro porque el a-z80 es un Z80 cmos):
Re: Proposición ZXUno+
En cuanto descubra porqué no me funciona ahora el bus flotantezx81 escribió: Queremos catar ese core YA!.