Novedades acerca del ZX-Uno

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
utopian
MSX Turbo R
MSX Turbo R
Mensajes: 287
Registrado: 13 Dic 2006, 22:55

Re: Novedades acerca del ZX-Uno

Mensajepor utopian » 30 Abr 2014, 16:08

Hark0 escribió:Foto "capturada" de Twitter... :mrgreen:

¿Dónde ha salido esa foto? Me han pillado con todo el equipo :).

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

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 02 May 2014, 22:36

He probado el pokeador de la ROM CargandoLeches en un spectrum real (un +2A) y funciona. Con toda seguridad el problema es del ZX-Uno que genera varias NMIs seguidas. Subo aquí la ROM por si queréis probarla.
Adjuntos
leches.zip
(13 KiB) Descargado 60 veces

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: 51 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 03 May 2014, 00:14

antoniovillena escribió:He probado el pokeador de la ROM CargandoLeches en un spectrum real (un +2A) y funciona. Con toda seguridad el problema es del ZX-Uno que genera varias NMIs seguidas.

Ya te comenté que tenía que mirar eso... A ver qué le pasa al módulo de teclado, que es quien lanza las NMIs. ¿Funciona entonces también con emuladores sin problemas?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
TallerSeverino
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 517
Registrado: 12 Abr 2013, 09:55
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo NES/Clónica
Ubicación: Cádiz
Gracias dadas: 17 veces
Gracias recibidas: 15 veces

Re: Novedades acerca del ZX-Uno

Mensajepor TallerSeverino » 03 May 2014, 00:14

antoniovillena escribió:He probado el pokeador de la ROM CargandoLeches en un spectrum real (un +2A) y funciona. Con toda seguridad el problema es del ZX-Uno que genera varias NMIs seguidas. Subo aquí la ROM por si queréis probarla.

¿Sólo ocurre con el nmi? No sucede lo mismo con los resets. podrias poner otro "IF" en el código que verifique que nmi no está ya a cero:
Algo como IF (combinacion de teclas) AND (nmi<>0) .. etc. Y así no se mandan nmi's dobles desde teclado; me explico:

Código: Seleccionar todo

when KEY_F5       => if isctrl='1' and isalt='1' and nmi/="0" then
                                         nmi <= '0';  -- NMI
                                       end if;

No he entrado de lleno en el código, por lo que no se si algún módulo posterior vuelve a poner nmi a 0 una vez entrada en la rutina adecuada. El código que he escrito es un poco absurdo, ya que no hay diferencia, nmi se queda a 0 si ya estaba a cero, pero no se vuelve a enviar esa señal al final del módulo de que se está pulsando nmi. Lo dicho, muy absurdo.
No se. Debo estudiar..

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: 51 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 03 May 2014, 00:35

TallerSeverino escribió:
antoniovillena escribió:He probado el pokeador de la ROM CargandoLeches en un spectrum real (un +2A) y funciona. Con toda seguridad el problema es del ZX-Uno que genera varias NMIs seguidas. Subo aquí la ROM por si queréis probarla.

¿Sólo ocurre con el nmi? No sucede lo mismo con los resets. podrias poner otro "IF" en el código que verifique que nmi no está ya a cero:

NMI funciona por flanco, no por nivel. Si la señal ya está a 0, volverla a poner a 0 no genera otro flanco, por lo que no se genera otra petición. Lo que tengo que añadir es algún tipo de monoestable de forma que si la pongo a 0, ignore cualquier otra pulsación de Ctrl-Alt-F5 durante un tiempo.

Aunque sospecho que el problema está en el bloque combinacional que genera las señales, que es disparado por una máquina de estados que a su vez es disparada por un reloj. Podría pasar que como el reloj es rápido, la condición de que la tecla pulsada es Ctrl-Alt-F5 se evalue muchos ciclos de reloj seguidos y eso provoque el tren de pulsos que Antonio está sufriendo.

EDITO: sí, es eso. Al menos se están generando dos pulsos NMI: uno cuando pulsas Ctrl-Alt-F5 y otro cuando sueltas las teclas. En realidad se generan un montón de ellos, a un ritmo de unos 400kHz o así :D . Durante el finde veré de arreglarlo.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

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

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 03 May 2014, 01:28

Se me ha ocurrido otra idea para implementar en el ZX-Uno. Se trata de manejar el teclado con el Joystick. La idea me ha venido de un montaje con switch rotatorio. En el caso del ZX-Uno lo que podemos hacer es usar el segundo botón y una de las 8 direcciones para seleccionar fila. Necesitaríamos un joystick de 2 botones como el de la Master System. Te dejo el esquema para que le eches un vistazo.

Esto vendría muy bien si quieres echar una partidita rápida en la tele del salón y no tienes ganas de estar moviendo el teclado de un sitio para otro.

-- Actualizado 03 May 2014, 00:32 --

mcleod_ideafix escribió:Ya te comenté que tenía que mirar eso... A ver qué le pasa al módulo de teclado, que es quien lanza las NMIs. ¿Funciona entonces también con emuladores sin problemas?


Sí, en emuladores funciona sin problemas. En teoría no debe petar si hay una segunda NMI, siempre que esté alejada unos cuantos ciclos de las primera NMI. Vamos que los rebotes se producen a más de 400Hz.
Adjuntos
joystickZXUno.png
joystickZXUno.png (12.98 KiB) Visto 2139 veces

Avatar de Usuario
celestinox
Commodore 128
Commodore 128
Mensajes: 106
Registrado: 07 Dic 2012, 17:04
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sony PlayStation 3
Primera consola: Sony PlayStation 2
Gracias recibidas: 7 veces

Re: Novedades acerca del ZX-Uno

Mensajepor celestinox » 03 May 2014, 16:36

Estupendo proyecto. Felicitaciones a los impulsores. Llevaba unos meses sin visitar el foro, y la que "habéis montado ".
He estado varios días leyendo los diferentes hilos sobre este proyecto; y se me cae la baba de ver lo que habéis conseguido. La verdad es que me hubiera gustado montar un prototipo; a modo de tester; ya que colaborar no habría podido; no tengo ni idea de FPGAs.
Si el precio de la nueva tirada de prototipos con la nueva FPGA (mas tocha) es similar al anterior; estaría interesado en montar uno.
Claro que necesitaría un cable Xilinx ya que me parece que el que tengo para ALtera no servirá??

este es que tengo:
Programador USB FPGAs ALTERA

No sé por que no sirve para xilinx . ¿Pensaba que la conexión JTAG era estandar; o ¿no es así?

¿O es por la distribución de los pines de cada fabricante por lo que no vale el programador de un fabricante en el otro? (Aparte del software claro)

Alguen sabe si este adaptador del enlace siguiente me permitiría programar la xilinx:

http://www.ebay.es/itm/JTAG-10pin-14pin-cable-7p-flying-Adapter-Board-For-XILINX-Platform-Cable-/170970080310?pt=LH_DefaultDomain_0&hash=item27ce9c6436&_uhb=1

Un saludo, y ánimo con el proyecto.

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: 51 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 03 May 2014, 16:51

celestinox escribió:No sé por que no sirve para xilinx . ¿Pensaba que la conexión JTAG era estandar; o ¿no es así?

La distribución y nombre de los pines es estándar. Lo que hagas con ellos, concretamente lo que envíes y recibas por ellos, es cosa de cada fabricante.

celestinox escribió:Alguen sabe si este adaptador del enlace siguiente me permitiría programar la xilinx:

http://www.ebay.es/itm/JTAG-10pin-14pin-cable-7p-flying-Adapter-Board-For-XILINX-Platform-Cable-/170970080310?pt=LH_DefaultDomain_0&hash=item27ce9c6436&_uhb=1

No. Eso es sólo un adaptador para usar en un programador preexistente. Necesitas algo como esto:
http://www.ebay.es/itm/Xilinx-Platform- ... 2a2a6cff79
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
celestinox
Commodore 128
Commodore 128
Mensajes: 106
Registrado: 07 Dic 2012, 17:04
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sony PlayStation 3
Primera consola: Sony PlayStation 2
Gracias recibidas: 7 veces

Re: Novedades acerca del ZX-Uno

Mensajepor celestinox » 03 May 2014, 18:25

Gracias por tu respuesta mcleod. Entonces al final me compraré un programador para xilinx.
Tengo otras preguntas que creo que me sabrás responder.
Cuando hablais de que si esta u otra FPGa tine 200K o 500k puertas lógicas; es que hay una relación directa entre la cantidad de puertas u las únidades lógicas(LEs) de la FPGA?
He visto que xilinx en algunos datasheets especifica este dato; sin embargo Altera solo habla de LEs; la proporción entre y LE y puertas es la misma en los dos fabricantes; parecida o no tiene nada que ver y cada uno fabrica a su manera.?. Es que tengo una tarjeta de pruebas con una FPGA cycloneII EPC5T144; el datasheet dice que tiene 4608 LEs, pero no sé a cuantas puertas lógicas equivale; ni hasta donde se podría llegar este chip. Es decir me serviría para implementar este proyecto (Seguro que no), o quizá sería suficiente para una ULA clásica??.

Superfo imagino que seguirá con el enrutado de la nueva placa. Me preguntaba si sería útil ,fáctible o interesante implementar en el ZX-uno un segundo puerto SPI (para la nueva FPGA) que se comunique con un chip ethernet (al estilo del enc28j60) para implementar acceso ethernet para descargar ROMs via Internet o servidor local; aunque quizá con la cantidad de ROMs que podemos meter en un SD, no valga la pena. Vosotros diréis.

Y lo dicho, si encargáis un nuevo lote de prototipos (2 caras o 4) me gustaría montar 1 kit si es posible.
Un saludo.

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: 51 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 03 May 2014, 19:05

celestinox escribió:Cuando hablais de que si esta u otra FPGa tine 200K o 500k puertas lógicas; es que hay una relación directa entre la cantidad de puertas u las únidades lógicas(LEs) de la FPGA?

Sí, aunque no es tan directa como quisiéramos. La cantidad de puertas lógicas es una estimación que hace el fabricante sobre qué complejidad (medida en número de puertas lógicas) es posible conseguir con tal o cual dispositivo. Para el diseñador tradicional medir la complejidad de un diseño en puertas lógicas puede tener más sentido que medirlo en cantidad de LE's o slices. También tiene sentido para aquel que usa la FPGA para prototipar antes de meterse de lleno en la fabricación de un ASIC, en donde sí que se miden los diseños en puertas lógicas. Pero es sólo eso, una estimación. Si un diseño pudiera ocupar las 250.000 puertas lógicas que se supone que tiene nuestra Spartan 3E, el core del ZX-Uno habría cabido de sobras. Sin embargo, estamos al 99% de ocupación.

Un Spectrum completo con todo lo que trae este clon que hemos hecho, si lo hiciéramos con lógica discreta o un ASIC, ocuparía bastante menos de 250.000 puertas lógicas. Para que te hagas una idea, el gate array del Inves Spectrum (su ULA, vamos) es un chip con 1000 puertas lógicas. La ULA de Ferranti usada en el Sinclair Spectrum, si mal no recuerdo, tiene el equivalente a 600 puertas lógicas. Otro ejemplo: el ASIC del Sam Coupé es un chip que cuando está "virgen" tiene 100.000 puertas lógicas (NAND de 2 entradas para ser exactos). Según el fabricante, por temas de rutado y tal, sólo se pueden aprovechar alrededor de un 30% de estas puertas en un diseño, así que estamos hablando de que la "ULA" del Sam Coupé usa unas 30.000 puertas lógicas. La ULA del Sam es lo más parecido a la ULAplus que hay ahora mismo. El Z80, que es lo que más ocupa en el ZX-Uno, tiene en su versión física 8500 transistores. Habida cuenta de que una puerta NAND de 2 entradas usa 4 transistores, podríamos decir que el Z80 usa 2125 puertas. Suma todo eso y verás que llegas ni de coña a 250.000 puertas lógicas. Sin embargo, se llega (y por poco no nos pasamos :D )
http://en.wikipedia.org/wiki/Transistor_count

celestinox escribió:Es que tengo una tarjeta de pruebas con una FPGA cycloneII EPC5T144; el datasheet dice que tiene 4608 LEs, pero no sé a cuantas puertas lógicas equivale; ni hasta donde se podría llegar este chip. Es decir me serviría para implementar este proyecto (Seguro que no), o quizá sería suficiente para una ULA clásica??.

La pregunta del millón. Las LE de Altera no son como las de Xilinx. Dentro de la misma Xilinx, una LE de una Spartan 3 no es igual que la de una Spartan 6 (las de la 6 permiten 6 entradas por LUT mientras que la Spartan 3 admite 4 entradas por LUT). Quizás esto te ayude: http://www.altera.com/cgi-bin/device_compare.pl

celestinox escribió:Me preguntaba si sería útil ,fáctible o interesante implementar en el ZX-uno un segundo puerto SPI (para la nueva FPGA) que se comunique con un chip ethernet (al estilo del enc28j60) para implementar acceso ethernet para descargar ROMs via Internet o servidor local; aunque quizá con la cantidad de ROMs que podemos meter en un SD, no valga la pena. Vosotros diréis.

El ZX-Uno tiene un conector de expansión que puede usarse para lo que tú quieras, por ejemplo implementar otro puerto SPI. De hecho, hay por ahí una idea aún en el aire, de que Winston haga una versión "lite" del Spectranet, en donde la RAM y la flash estarían dentro del ZX-Uno, y en la plaquita de expansión estaría el chip ethernet y el conector. Con eso y el software adecuado (creo recordar que hay por ahí un proyecto software para escribir un browser que lea la base de datos de WOS y permita descargar directamente desde ellos el juego que quieras :) ) lo tienes más que solucionado.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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