Tutorial de VHDL centrado en crear un clon

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Tutorial de VHDL centrado en crear un clon

Mensajepor antoniovillena » 03 Jun 2013, 16:41

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

Avatar de Usuario
mcleod_ideafix
Amiga 2500
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

Mensajepor mcleod_ideafix » 03 Jun 2013, 21:04

¡¡¡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

jepalza

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor jepalza » 03 Jun 2013, 21:24

:-ss

(yo ya lo hice en su día \:D/ )

Avatar de Usuario
Joss
Atari 1040 STf
Atari 1040 STf
Mensajes: 930
Registrado: 17 Jul 2012, 20:07
Gracias dadas: 14 veces
Gracias recibidas: 2 veces

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor Joss » 03 Jun 2013, 21:55

Antonio, está muy bien el tuto. Muchas gracias!

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 » 03 Jun 2013, 23:10

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.

jepalza

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor jepalza » 04 Jun 2013, 06:05

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.

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 » 04 Jun 2013, 11:40

¡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.

Avatar de Usuario
mentalthink
Amiga 2500
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

Mensajepor mentalthink » 04 Jun 2013, 12:02

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!!!

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 » 04 Jun 2013, 13:47

@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.

jepalza

Re: Tutorial de VHDL centrado en crear un clon

Mensajepor jepalza » 04 Jun 2013, 18:33

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.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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