Complementos desarrollo y depuración

Todo aquello que acompaña a la placa del ZX-Uno (carcasas, alimentadores, pegatinas para el teclado, etc) / Everything that goes with the ZX-Uno board (cases, AC adapters, stickers for keyboard, etc)
Responder
Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Complementos desarrollo y depuración

Mensaje por DistWave » 08 Ene 2016, 21:19

Abro el post para compartir qué complementos utilizamos para ayudar en la depuración y desarrollo de cores. Comienzo con mi placa debug:

Imagen

Tiene dos botones y cuatro displays de 7 segmentos. Con ellos puedo curiosear en los buses cuando algo no hay manera de echarlo a andar. Se conecta en la fila superior del puerto de expansión del prototipo v3, los botones se pueden conectar a cualquier pin de las dos filas restantes. En la placa se replican los pines de +3v y GND para poder conectar mas cosas.

También tengo el típico conversor MAX232 para conectar un UART completo (RX, TX, CTS, RTS) al puerto serie del PC.

Como habréis visto, utilizo un USB Blaster de Altera en lugar del cable Xilinx. Como la primera placa FPGA que adquirí monta una Altera, lo tenía por aquí. Parece un poco anti-natura :mrgreen: pero gracias al programa UrJTAG de linux puedo cargar bitfiles en el zxuno. No se si podrá programar la flash SPI, no he tenido tiempo para buscar información.

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Complementos desarrollo y depuración

Mensaje por mcleod_ideafix » 09 Ene 2016, 14:19

iMPACT programa la Flash SPI metiendo primero un pequeño core en la FPGA que hace que la FPGA se convierta en un intermediario entre el JTAG y la SPI. Si UrJTAG puede hacer eso mismo, entonces sí podrá.

La otra opción, que es más probable que esté soportada, es que el USB Blaster pueda usarse como programador SPI conectándolo a la flash directamente mediante uno de estos clips SOIC-8, para hacer in-system programming.

¿Has hecho algún core ya con este setup?
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Complementos desarrollo y depuración

Mensaje por Quest » 09 Ene 2016, 14:57

Aviso: NO programes la flash del zxuno con un clip directamente en placa sin desoldarlo. Freirás pines de la fpga como ya me pasó con mi v2.

Por otro lado, si UrJtag es capaz de reproducir archivos XSVF/SVF podrás programar lo que quieras, incluida la flash. Yo lo hice asi con un programador casero que me hice con una plaquita atmel y un programa especifico para su firmware que reproducia archivos XSVF. Puedes generar dichos archivos con iMpact, simulando que grabas la flash pero en realidad se vuelcan los comandos al archivo (incluido el core que prepara la fpga para el flasheo, etc). Luego "reproduces" dicho archivo con un soft compatible con tu cable jtag y listo.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Re: Complementos desarrollo y depuración

Mensaje por DistWave » 10 Ene 2016, 14:26

Quest escribió:Por otro lado, si UrJtag es capaz de reproducir archivos XSVF/SVF podrás programar lo que quieras, incluida la flash.
Parece que si soporta ficheros SVF, cuando tenga un rato experimento con ellos. Gracias por el aporte!
mcleod_ideafix escribió:¿Has hecho algún core ya con este setup?
Tanto el de Atari 2600 como el nuevo de NES, no tengo otro JTAG...

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Complementos desarrollo y depuración

Mensaje por mcleod_ideafix » 10 Ene 2016, 16:53

DistWave escribió:
mcleod_ideafix escribió:¿Has hecho algún core ya con este setup?
Tanto el de Atari 2600 como el nuevo de NES, no tengo otro JTAG...
Me refería a si habías hecho algún core usando el display de 7 segmentos, el puerto UART, etc, o si los has usado para alguno de los mencionados cores, y si es así, en qué medida te han ayudado
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Re: Complementos desarrollo y depuración

Mensaje por DistWave » 10 Ene 2016, 18:44

Si, por supuesto. El core original fpganes carga las roms via UART así que gracias al MAX232 pude comprobar que una vez modificado el core para utilizar la memoria SRAM los juegos se cargaban correctamente.
Los display de 7 segmentos me han servido en numerosas ocasiones para arrojar algo de luz cuando estaba bloqueado y no sabía dónde estaba el problema. Por ejemplo, una vez integrado el módulo de control en el core, las roms se cargaban aparentemente bien pero los gráficos aparecían corruptos. Era bastante extraño porque cargando roms desde el UART no ocurría este problema, así que se me ocurrió una prueba para intentar ver qué podia suceder: modifiqué el controlador de memoria para que la zona correspondiente a la CHR ROM se mapease en una memoria bram dual port. Un puerto de 8 bits lo asigné al core de NES y otro puerto de 16 bits lo utilicé para ver qué datos se cargaban en la memoria, conectando el bus de datos a los displays de 7 segmentos y controlando el bus de direcciones con los botones de la placa debug. Pude ver que cuando cargaba una rom desde el módulo de control se perdía el primer byte de la CHR_ROM y todo el contenido de la memoria quedaba desplazado una posición respecto a cómo debía cargarse. Al final el problema lo causaba una señal de reloj demasiado lenta :mecagonto:

Responder