ZXUNO con salida VGA en el Spectrum
Re: ZXUNO con salida VGA en el Spectrum
Tengo la cámara preparada, no digo más.
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: ZXUNO con salida VGA en el Spectrum
No me he puesto aún a mirar código fuente, pero suena a que la parte que lee la memoria para pintar en VGA no está sincronizada con la parte que escribe en memoria desde 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: ZXUNO con salida VGA en el Spectrum
He subido una versión mejorada, que en el caso de los dos monitores que tengo cerca, funciona de maravilla. Ya no se ven rayas perdidas, ni faltas de sincronismo. Seguro que algún fallo encontramos, pero por ahora, es lo mejor que he conseguido. Los relojes empleados son los iniciales del ZXUNO del TEST19_MULTIBOOT, no los he tocado al final.
Lo que he hecho, ha sido, emplear una rutina de "MikeJ" que usa una RAMB de 8bits, para generar colores 3 rojos, 3 verdes, 2 azules y la he alterado usando una RAMB de 16bits para acomodar los 3+3+3 colores del ZXUNO, y por ahora, el engendro funciona.
He localizado un fallo, que seguro que es de un contador que para un ciclo mas tarde de lo que debería, y dibuja un trozo de línea negra justo arriba a la izquierda, como se ve en la foto. A ver si lo localizo y lo reparo.
También es posible, que mi método sea una "kk" y haya otro mejor y más rápido y/o simple, pero de momento, para usar la VGA es perfecto.
A ver si podéis probarlo en vuestros monitores ( @quest )
Lo que he hecho, ha sido, emplear una rutina de "MikeJ" que usa una RAMB de 8bits, para generar colores 3 rojos, 3 verdes, 2 azules y la he alterado usando una RAMB de 16bits para acomodar los 3+3+3 colores del ZXUNO, y por ahora, el engendro funciona.
He localizado un fallo, que seguro que es de un contador que para un ciclo mas tarde de lo que debería, y dibuja un trozo de línea negra justo arriba a la izquierda, como se ve en la foto. A ver si lo localizo y lo reparo.
También es posible, que mi método sea una "kk" y haya otro mejor y más rápido y/o simple, pero de momento, para usar la VGA es perfecto.
A ver si podéis probarlo en vuestros monitores ( @quest )
Re: ZXUNO con salida VGA en el Spectrum
Gracias jepalza... acabo de bajarlo y sintetizarlo en ISE 12.4 (que era el que se suponía que generaba bit estables) y no hay manera de que arranque, corrupciones contínuas:
Me pasaba lo mismo el otro día cuando trataba de ajustar los valores del scandoubler (hA, hB, etc etc...) a según que valores, había un rango de valores (que ahora no recuerdo) que hacía que pasara esto. No le encuentro el sentido, pero así es
Me pasaba lo mismo el otro día cuando trataba de ajustar los valores del scandoubler (hA, hB, etc etc...) a según que valores, había un rango de valores (que ahora no recuerdo) que hacía que pasara esto. No le encuentro el sentido, pero así es
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: ZXUNO con salida VGA en el Spectrum
No me digas lo de las corrupciones. A mi no me lo hace. Pero al menos, veo que la calidad es buena. Ahora si se parece a una VGA.
Algo diferente tenemos los dos en nuestros ZXUNO a nivel físico. Lo curioso, es que los test que tú haces, a mi me funcionan bien.
Es mas, los relojes ahora están sin tocar, y ya no empleo valores ajustables que sea necesario tocar.
Prueba a usar mis BIT y MCS. O que lo pruebe otro, como Mcleod_Ideafix o radastan si al final puede meter el MCS
A ver si el fallo es de tu xilinx 12.4.
Algo diferente tenemos los dos en nuestros ZXUNO a nivel físico. Lo curioso, es que los test que tú haces, a mi me funcionan bien.
Es mas, los relojes ahora están sin tocar, y ya no empleo valores ajustables que sea necesario tocar.
Prueba a usar mis BIT y MCS. O que lo pruebe otro, como Mcleod_Ideafix o radastan si al final puede meter el MCS
A ver si el fallo es de tu xilinx 12.4.
Re: ZXUNO con salida VGA en el Spectrum
No he usado tus archivos, como comentaba, ya he sintetizado el test completo en xilinx 12.4. No he usado los tuyos, porque en mi prototipo v3 (que tiene distinto pineado) no funcionaría. En el v2 me es muy engorroso probar los cambios porque como ya comenté, se me frieron los pines JTAG de la FPGA, y tengo que quitar la flash, programarla con un grabador externo y volverla a poner... un rollo. Con el v3 conectado al cable Xilinx USB es todo muchísimo más rápido (2 segundos).jepalza escribió:No me digas lo de las corrupciones. A mi no me lo hace. Pero al menos, veo que la calidad es buena. Ahora si se parece a una VGA.
Algo diferente tenemos los dos en nuestros ZXUNO a nivel físico. Lo curioso, es que los test que tú haces, a mi me funcionan bien.
Prueba a sintetizar el test completo en el xilinx 12.4, en lugar de usar mis BIT y MCS
De todas maneras estas corrupciones ya las estábamos sufriendo tanto en v2 como en v3 en test anteriores. Aún no sabemos el motivo real, sólo que cualquier cambio puede producirlos, y dependiendo de en que ISE sintetices, aparecen o desaparecen. Es un gran misterio. Pero la verdad es que me epmieza a tener bastante frito. Tenemos que averiguar de dónde viene el problema de una vez por todas.
PD: por cierto, a pesar de las corrupciones, la imagen esta vez sí es muy estable y con las proporciones correctas. Los sincros que se observan también son buenos (apra ser de 50Hz), que son: H: 31.3kHz, V: 50.1Hz (con timings de 48k), con timings de 128k: H: 30.8kHz , V: 49.5Hz
EDITO: He cambiado alguna cosa, simplemente por que cambie "el rutado" al sintetizar (he añadido un nuevo reloj de 7Mhz en el PLL, con el divisor de 64. Ahora hay 2 iguales) y lo he usado para el scandoubler, y el que había, para el resto. Y ahora arranca, pero sufrimos las corrupciones menores que habñia otras veces, como que se cuelga cuando intenta leer la SD u otros accesos, si la memoria contenida está activada. Desactivándola, mejora. Lo dicho antes, que este tema es un sinvivir y hay que encontrar el origen. Está claro que determinados cambios en el core sumado a la forma de sintetizar, causan problemas. No tiene nada que ver con el VGA, puede pasar con cualquier cosa.
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: ZXUNO con salida VGA en el Spectrum
A mi todavía, no me ha fallado ni ua sola vez el xilinx 12.4. Yo tenía el 14.3 y todo bien, lo pasé al 14.7 y seguía bien (ademas, la 14.7 es mas rápida), pero me pasé a la 12.4 para estar a vuestra altura, y hasta ahora, siempre me ha sintetizado bien.
Así que no puedo ayudarte respecto a ese tema.
Pero me alegra saber, que al menos se ve bien la VGA.
Por cierto , prueba a usar tu core TEST19_MULTI, y meter únicamente los 4 o 5 archivos que cambian del mio, a ver si así te funciona.
edito yo también: acabo de ver tu "edición":
Solo comentarte, que a lo mejor el fallo es un cambio que hice y que he dejado en el módulo "cuatro_relojes"
En las líneas marcadas, el DUTY del 3 lo puse yo, y el DUTY del 2 lo moví para que quedara mas claro. A ver si va a ser ese el fallo
Así que no puedo ayudarte respecto a ese tema.
Pero me alegra saber, que al menos se ve bien la VGA.
Por cierto , prueba a usar tu core TEST19_MULTI, y meter únicamente los 4 o 5 archivos que cambian del mio, a ver si así te funciona.
edito yo también: acabo de ver tu "edición":
Solo comentarte, que a lo mejor el fallo es un cambio que hice y que he dejado en el módulo "cuatro_relojes"
Código: Seleccionar todo
PLL_BASE
#(.BANDWIDTH ("OPTIMIZED"),
.CLK_FEEDBACK ("CLKFBOUT"),
.COMPENSATION ("SYSTEM_SYNCHRONOUS"),
// principal
.DIVCLK_DIVIDE (1),
.CLKFBOUT_MULT (9),
.CLKFBOUT_PHASE (0.000),
// 28mhz
.CLKOUT0_DIVIDE (16),
.CLKOUT0_PHASE (0.000),
.CLKOUT0_DUTY_CYCLE (0.500),
// 14mhz
.CLKOUT1_DIVIDE (32),
.CLKOUT1_PHASE (0.000),
.CLKOUT1_DUTY_CYCLE (0.500),
// 7mhz
.CLKOUT2_DIVIDE (64),
.CLKOUT2_PHASE (0.000),
.CLKOUT2_DUTY_CYCLE (0.500), <-----------------------
// 3.5mhz
.CLKOUT3_DIVIDE (128),
.CLKOUT3_PHASE (0.000),
.CLKOUT3_DUTY_CYCLE (0.500), <----------------------------
// fijos
.CLKIN_PERIOD (20.0),
.REF_JITTER (0.010))
pll_base_inst
Re: ZXUNO con salida VGA en el Spectrum
No se si has visto la edición del post, creo que la estaba haciendo a la vez que tu contestabas
Acabo de hacer otro cambio, colocando un reloj de 7Mhz extra con buffer, separado del anterior
usándolo de forma exclusiva para el scandoubler, y ajustando para el (que ahora es el 5), la linea
Y ahora ya no me produce ninguna corrupción. Es un tema muy aleatorio. Usando el mismo reloj = corrupciones. Usando uno diferente = ok. En fin... para volverse loco.
Por cierto, lo de la linea de antes, supuestamente no es una buena práctica (ni idea de por qué), según aparece en el error que sale cuando esa línea no está. No se el motivo, pero eso pone, da a entender que en la spartan-6 si se usa un pin de reloj en "no se que sin carga", se pueden producir problemas de delays, skew y no se qué leches más que no he comprendido. Supuestamente con la linea esa, conviertes el error en un Warning. ¿Alguien sabe qué implicaciones tiene o puede tener? ¿O a nosotros debería darnos igual en este caso?
Acabo de hacer otro cambio, colocando un reloj de 7Mhz extra con buffer, separado del anterior
Código: Seleccionar todo
.CLKOUT4_DIVIDE (64),
.CLKOUT4_PHASE (0.000),
.CLKOUT4_DUTY_CYCLE (0.500),
Código: Seleccionar todo
PIN "relojes_maestros/clkout5_buf.O" CLOCK_DEDICATED_ROUTE = FALSE;
Por cierto, lo de la linea de antes, supuestamente no es una buena práctica (ni idea de por qué), según aparece en el error que sale cuando esa línea no está. No se el motivo, pero eso pone, da a entender que en la spartan-6 si se usa un pin de reloj en "no se que sin carga", se pueden producir problemas de delays, skew y no se qué leches más que no he comprendido. Supuestamente con la linea esa, conviertes el error en un Warning. ¿Alguien sabe qué implicaciones tiene o puede tener? ¿O a nosotros debería darnos igual en este caso?
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: ZXUNO con salida VGA en el Spectrum
Respondemos a la par ambos.
He editado mi anterior mensaje, con un tema de los DUTY_CYCLES a ver si a ser de eso.
Estoy como tú, aprendo cosas a la par que programo, por lo que no sé nada mas que no sepas tú.
He editado mi anterior mensaje, con un tema de los DUTY_CYCLES a ver si a ser de eso.
Estoy como tú, aprendo cosas a la par que programo, por lo que no sé nada mas que no sepas tú.
Re: ZXUNO con salida VGA en el Spectrum
No era eso, es cualquier cosa inexplicable
En cuanto a calidad, esta vez si, este scandoubler se ve muy bien en ambos timings.
La Shock megademo, prueba de fuego de efectos de borde, de fábula:
A los que tenemos monitores que aceptan 50Hz, de lujo. Ahora solo falta lo que comentaba Mcleod que estaba mirando, lo de dar la posibilidad también de hacer un switch en tiempo real a 60Hz (acelerando el spectrum, eso sí) para soportar más monitores.
Yo incluso apostaría por poder cambiar on-the-fly (sería con teclas, no se, con impr-pant o alguna de esas que se usan poco) el modo de vídeo, rotando entre: PAL / VGA 50Hz / VGA 60Hz. Lo digo porque no sabemos en qué pantalla va a conectar el usuario el ZX-UNO por primera vez, y por tanto podría ir a ciegas, incluso para entrar a la BIOS, así que quizá sea una buena opción poder darle a una tecla (1 o 2 veces, según sea necesario, para llegar al modo "compatible" con su pantalla) y poder ver lo que haces. Luego podría fijarse el modo ya en BIOS tranquilamente.
En cuanto a calidad, esta vez si, este scandoubler se ve muy bien en ambos timings.
La Shock megademo, prueba de fuego de efectos de borde, de fábula:
A los que tenemos monitores que aceptan 50Hz, de lujo. Ahora solo falta lo que comentaba Mcleod que estaba mirando, lo de dar la posibilidad también de hacer un switch en tiempo real a 60Hz (acelerando el spectrum, eso sí) para soportar más monitores.
Yo incluso apostaría por poder cambiar on-the-fly (sería con teclas, no se, con impr-pant o alguna de esas que se usan poco) el modo de vídeo, rotando entre: PAL / VGA 50Hz / VGA 60Hz. Lo digo porque no sabemos en qué pantalla va a conectar el usuario el ZX-UNO por primera vez, y por tanto podría ir a ciegas, incluso para entrar a la BIOS, así que quizá sea una buena opción poder darle a una tecla (1 o 2 veces, según sea necesario, para llegar al modo "compatible" con su pantalla) y poder ver lo que haces. Luego podría fijarse el modo ya en BIOS tranquilamente.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA