Tutorial de VHDL centrado en crear un clon

Sinclair QL, ZX81, +2, +3, 128K ...
jepalza

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor jepalza » 16 Jul 2013, 19:51

En http://opencores.org/projects tienes muchas ideas sobre salidas de vídeo a PAL o VGA, por si quieres trastear. Yo me hice una salida de VGA con unas cuantas resistencias (creo que fueron 4 por color, para obtener 12bits de profundidad) y empleé una rutina en Verilog de Papilio, para los arcades que estuve probando, como el Pacman.

Pero lo mejor es salida RGB, mas sencilla, menos recursos, y suficiente para buena calidad.

Por cierto, antoniovillena, tengo pendiente seguirte en el cursillo, pero no veo el momento de ponerme. Llevo un par de meses de "solo trabajar", para levantar el país y salir de la crisis... :---)

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor antoniovillena » 16 Jul 2013, 20:53

Como dice jepalza lo mejor es RGB por Scart, casi todas las teles modernas lo soportan. Si en tu lugar de trabajo sólo dispones de monitor y ya tienes la tarjeta conversora GBS-8200, pues vale. Pero no te recomiendo comprarte dicha tarjeta sólo para ese fin.

También tienes la opción de meterle algunos juegos que hay hechos exclusivamente para salida FPGA como los que hay en fpgaarcade, tendrías sólo que modificar el archivo .ucf para adaptarlo a la placa.

http://fpgaarcade.com/games.htm

@jepalza siento decirte que en las últimas lecciones ya no explico casi nada. Es que me llevaba mucho tiempo redactar el texto y tampoco es que tuviera muchos seguidores, aunque bueno si hay demanda siempre puedo hacerlo en un futuro.

Avatar de Usuario
mike_01
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 142
Registrado: 08 Dic 2012, 00:58
Sistema Favorito: VIC20
primer_sistema: VIC20
consola_favorita: NeoGeo
Primera consola: (Otro)
Ubicación: Valencia

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor mike_01 » 16 Jul 2013, 21:28

Ok. Supongo que lo mejor sería implementar un scan-doubler, como los que tienen los juegos de la web de FpgaArcade, o alguno de los proyectos de OpenCores que comentaba jepalza.

La GBS-8200 la tengo para el Spectrum +2A, y para otros equipos en los que puedo aprovechar la salida RGB. Aunque al final, no sé si me valdría más a cuento hacerme con una TV Led baratita con entradas de RGB, VGA, HDMI, ...

Y bueno, aunque no estoy registrado en Speccy la verdad es que estaba siguiendo desde aquí (de hecho, me había perdido algunas lecciones que no sabía que estaban ya publicadas :) ), y me parece un trabajo muy bueno. Ojalá se llegue a implementar el 128K completamente.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor antoniovillena » 16 Jul 2013, 23:51

No sé exactamente cómo están hechos los juegos de fpgaarcade, pero lo del scandoubler no es obligatorio. Al tener que sintetizar un único juego sólo hay que tener en cuenta que los frames sean idénticos, se puede pintar la misma línea dos veces sin necesidad de scan doubler. El problema está en los ordenadores/consolas donde cada juego es distinto y es imposible hacer que coincidan los frames en todos los juegos. En este caso hay que sintetizar el video exactamente como lo hacía la máquina original (normalmente en PAL RGB), y luego convertir esa señal en VGA vía scan doubler.

Es un placer para mí saber que hay alguien que sigue los tutoriales. Ya lo he dicho antes pero lo repito de nuevo, para aprender de verdad no basta con seguir el tutorial, tienes que trastear tú mismo con el código. Al principio puedes hacer pequeñas modificaciones en el código fuente de las lecciones, y más adelante crear tus propios archivos desde cero. Básicamente lo que estoy haciendo en el tutorial es documentar mi proceso de aprendizaje, si te das cuenta hay "mejoras" de una lección a otra. Podría corregirlas pero no lo he hecho porque prefiero que veáis las "cagadas" que cometo y cómo lo soluciono luego.

En la síntesis VHDL a veces hay momentos frustrantes donde pierdes mucho tiempo encontrando un error, lo mismo que cuando estás aprendiendo un lenguaje de programación pero peor aún. La clave del aprendizaje (pienso yo) está en poco a poco ir reduciendo el tiempo de solucionado de dichos errores. Al principio se tiende a abusar del iSIM, pero poco a poco te das cuenta de que hay caminos alternativos mucho más rápidos sin necesidad de simular, es cuestión de darle vueltas a la cabeza. Por ponerte un ejemplo reciente, si quiero ver que se ha activado o no tal página de RAM, en lugar de mostrar el borde con los 3 bits inferiores del puerto $FE, lo hago con el de $7FFD, y cuando soluciono el error vuelvo a dejar el borde como estaba.

En cuanto a lo del 128K completamente ya no falta casi nada, es cuestión de meterle cualquiera de las implementaciones existentes del chip AY. Yo voy a tardar más porque quiero hacer mi propia síntesis del chip AY, y antes meterle el scroll hardware, pero vamos que se puede decir que el 128K en este placa ya está prácticamente resuelto. Después me meteré con los modos all RAM para implementar el +2A/+3. Lo interesante aquí es que se le puede meter la ROM modificada del +3e para que funcione con la tarjeta SD (vía interfaz ZXMMC). Lo del ULA+ lo dejaré para el final, siempre que quede espacio en la FPGA.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor antoniovillena » 19 Jul 2013, 12:52

He hecho pruebas del clon tanto en video compuesto como en RGB, los resultados son estos:

Video compuesto:



RGB vía Scart:



Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 15 invitados