Estoy trasteando con la MOD-VGA y con el lenguaje VHDL con el objetivo de implementar un clon desde cero y siguiendo los esquemas del clon Superfo 128 y el libro de Chris Smith. Lo estoy haciendo de forma escalonada a modo de tutorial, para que todos aquellos que como yo estén aprendiendo a programar FPGAs y CPLDs puedan seguirme y aprender conmigo. La placa que uso es una MOD-VGA, aunque valdría cualquier otra FPGA. Eso sí, si no los trae, tendréis que realizar el circuito de los DACs (son sólo 9 resistencias), y más adelante algunos otros añadidos (RAM estática, conectores para teclado, audio y SD). Os dejo aquí el enlace:
http://retrolandia.net/foro/showthread.php?tid=76
Tutorial de VHDL centrado en crear un clon
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Tutorial de VHDL centrado en crear un clon
¡¡¡Aaaaah!!! Alguien más que se ha pasasdo al lado oscuro... 

Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Tutorial de VHDL centrado en crear un clon
Llevaba tiempo intentando pasarme al "lado oscuro", en concreto desde que me compré la OLS. La MOD-VGA y el cable USB los compré hace tiempo y es ahora cuando me estoy poniendo en serio. Mi mayor obstáculo era "el tinglado" de cables que había que montar para hacer las pruebas. Ahora lo tengo solucionado, tengo la placa 24h enchufada al cable y la salida de video compuesto conectada a un interfaz CCTV, de tal forma que desde cualquier ordenador puedo acceder por escritorio remoto y enviarle el archivo .bit. La única pega es el teclado PS/2, que aunque esté siempre enchufado no puedo probarlo si no lo tengo físicamente delante.
-- Actualizado 03 Jun 2013, 22:16 --
Por cierto acabo de encontrar otra optimización al clon superfo 128. En lugar de usar un contador (U38) para generar el contador horizontal retardado, se puede emplear un registro con buffer triestado (74HC574), y al ser triestado ya no hace falta el buffer 74HC541 (U27). También nos ahorramos la puerta OR U9A, ya que no nos importa que estemos fuera de pantalla para generar el CLK del 74HC574. En resumen, un chip y una puerta menos.
-- Actualizado 03 Jun 2013, 22:16 --
Por cierto acabo de encontrar otra optimización al clon superfo 128. En lugar de usar un contador (U38) para generar el contador horizontal retardado, se puede emplear un registro con buffer triestado (74HC574), y al ser triestado ya no hace falta el buffer 74HC541 (U27). También nos ahorramos la puerta OR U9A, ya que no nos importa que estemos fuera de pantalla para generar el CLK del 74HC574. En resumen, un chip y una puerta menos.
Re: Tutorial de VHDL centrado en crear un clon
antoniovillena escribió:Por cierto acabo de encontrar otra optimización al clon superfo 128. En lugar de usar un contador (U38) para generar el contador horizontal retardado, se puede emplear un registro con buffer triestado (74HC574), y al ser triestado ya no hace falta el buffer 74HC541 (U27). También nos ahorramos la puerta OR U9A, ya que no nos importa que estemos fuera de pantalla para generar el CLK del 74HC574. En resumen, un chip y una puerta menos.
Yo he perdido el hilo del 128 ya. Lo dejé funcionando, con sus parpapadeos esporádicos, y la CF que leía cuando le venía en gana, pero funcionando al fin y al cabo, y ahí sigue, esperando una actualización.

Lo del VHDL, te seguiré en lo que pueda. Yo tambien compré el OLS, aprendí con él un poco, y luego compré el Papilio PRO, mas potente y amplio, y el OLS lo he dejado para lo que es, paa analizador lógico, y con el Papilio espero hacer grandes cosas, pero por ahora he aprendido mas en Verilog que en VHDL, y no sé por cuál decantarme, aunque lo bueno, es que el programa de Xilinx admite una mezcla de ambos.
- mike_01
- 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
¡Ese hilo me interesa muchísimo! Gracias AntonioVillena.
Mi intención era bastante similar, tratar de sintetizar un ZX Spectrum mediante la MOD-VGA utilizando alguno de los cores desarrollados, aunque aún me queda bastante por aprender de VHDL/Verilog y del funcionamiento del propio ZX. Ahora creo que ya no tengo excusa
.
Lo que me gustaría es implementar un "scandoubler", como me comentó hace un tiempo Mcleod_Ideafix en el hilo del Gameduino, que sirva para poder tener la salida directamente en VGA. Creo que Jepalza estaba también intentándolo con el Papilio.
Mi intención era bastante similar, tratar de sintetizar un ZX Spectrum mediante la MOD-VGA utilizando alguno de los cores desarrollados, aunque aún me queda bastante por aprender de VHDL/Verilog y del funcionamiento del propio ZX. Ahora creo que ya no tengo excusa

Lo que me gustaría es implementar un "scandoubler", como me comentó hace un tiempo Mcleod_Ideafix en el hilo del Gameduino, que sirva para poder tener la salida directamente en VGA. Creo que Jepalza estaba también intentándolo con el Papilio.
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Tutorial de VHDL centrado en crear un clon
Gracias antonio he mirado por encima el tuto, y está la mar de majo, a parte lo poco que he leído de código, a mi parecer es más que entendible la sintáxis, no parece algo asi, viéndolo rápido que para cosas sencillas haya que extrujarse mucho la mollera...
Yo lo que te agradeciría es si en el tuto podrías poner el tuto de como se "le lava el cerebro" a la FPGa, yo tengo un clon del Gameduino, que supongo que podría hacer cosillas, aunque le falta la memoria, no llegaría ha hacer el spectrum pero algo se podrá hacer, pero la verdad no tengo ni idea de por dónde meterle los datos o con que se programa o que cable se usa... Supongo que en esté hilo soy el más rezagao, ya que lo único que hago electrónicamente hablando es meterle el usb al Arduino y a correr...
Como digo muy interesante tú Blog, y obviamnete gracias por el esfuerzo y el tiempo que le has dedicao de momento...
Saludos!!!
Yo lo que te agradeciría es si en el tuto podrías poner el tuto de como se "le lava el cerebro" a la FPGa, yo tengo un clon del Gameduino, que supongo que podría hacer cosillas, aunque le falta la memoria, no llegaría ha hacer el spectrum pero algo se podrá hacer, pero la verdad no tengo ni idea de por dónde meterle los datos o con que se programa o que cable se usa... Supongo que en esté hilo soy el más rezagao, ya que lo único que hago electrónicamente hablando es meterle el usb al Arduino y a correr...
Como digo muy interesante tú Blog, y obviamnete gracias por el esfuerzo y el tiempo que le has dedicao de momento...
Saludos!!!
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Tutorial de VHDL centrado en crear un clon
@jepalza el lenguaje que uses es lo de menos, normalmente los que se dedican a esto manejan bien tanto VHDL como Verilog. Pero al empezar lo suyo es no mezclar para no hacerte un cacao mental. Y si te animas a hacer los ejemplos de las lecciones en Verilog estaría encantado de publicarlos en este tutorial.
@mike_01, ¿tienes la placa MOD-VGA? En cuanto a aprender VHDL/Verilog, por mi experiencia es mejor centrarse en la práctica. Léete un tutorial básico y luego ponte directamente a programar, si no tienes ningún cacharro para hacerlo, se pueden probar los diseños con iSIM. Es más importante tener una buena base de "Electrónica Digital", que de la propia sintaxis del lenguaje, ya que viendo ejemplos se asimila antes.
@metalthink, el problema principal es que son lenguajes parecidos a los de programación y sueles caer en el error de pensar que es todo secuencial. Lo que hacen estos lenguajes es describir circuitos, y es importante entender bien estos circuitos, tanto a nivel individual (hay que tener buena base de "Electrónica Digital") como en su conjunto: si vas a implementar un ZX Spectrum es casi imprescindible el libro de Chris Smith; si es cualquier otra máquina tienes que conocer su funcionamiento hasta el más mínimo detalle.
Para programar o meterle los datos hay mucha información disponible en internet, no quiero alargar innecesariamente el tutorial explicando dichas cosas. Yo lo que hago es meterme en youtube, siempre encuentras algún video de alguien que te lo explica muy bien. Una explicación rápida: las FPGAs/CPLDs se programan mediante un interfaz JTAG, es un cablecillo que tiene 6 pines (4 pines+gnd+vcc). Necesitas un cable JTAG, yo tengo un clon del XILINX platform cable (es USB) que me costó 30 euros, aunque también puedes fabricarte un cable paralelo casero por unos pocos euros. Para programarlo se necesita un entorno de desarrollo, el ISE Webpack es lo más sencillo y es gratis desde la página de xilinx.
@mike_01, ¿tienes la placa MOD-VGA? En cuanto a aprender VHDL/Verilog, por mi experiencia es mejor centrarse en la práctica. Léete un tutorial básico y luego ponte directamente a programar, si no tienes ningún cacharro para hacerlo, se pueden probar los diseños con iSIM. Es más importante tener una buena base de "Electrónica Digital", que de la propia sintaxis del lenguaje, ya que viendo ejemplos se asimila antes.
@metalthink, el problema principal es que son lenguajes parecidos a los de programación y sueles caer en el error de pensar que es todo secuencial. Lo que hacen estos lenguajes es describir circuitos, y es importante entender bien estos circuitos, tanto a nivel individual (hay que tener buena base de "Electrónica Digital") como en su conjunto: si vas a implementar un ZX Spectrum es casi imprescindible el libro de Chris Smith; si es cualquier otra máquina tienes que conocer su funcionamiento hasta el más mínimo detalle.
Para programar o meterle los datos hay mucha información disponible en internet, no quiero alargar innecesariamente el tutorial explicando dichas cosas. Yo lo que hago es meterme en youtube, siempre encuentras algún video de alguien que te lo explica muy bien. Una explicación rápida: las FPGAs/CPLDs se programan mediante un interfaz JTAG, es un cablecillo que tiene 6 pines (4 pines+gnd+vcc). Necesitas un cable JTAG, yo tengo un clon del XILINX platform cable (es USB) que me costó 30 euros, aunque también puedes fabricarte un cable paralelo casero por unos pocos euros. Para programarlo se necesita un entorno de desarrollo, el ISE Webpack es lo más sencillo y es gratis desde la página de xilinx.
Re: Tutorial de VHDL centrado en crear un clon
Lo de mezclar Verilog y VHDL, es por fuerza mayor. Los núcleos de las CPU (por ejemplo, el Z80) están en VHDL, pero por ejemplo, el controlador del PS2 o la ULA (De Mcleod_Ideafix) en Verilog, o sea, que sí o sí, tienes que mezclar, con el "kakao" mental que eso produce.
Ya miraré de ayudarte con el verilog, hasta donde me den la fuerzas.
Ya miraré de ayudarte con el verilog, hasta donde me den la fuerzas.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados