--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/753fa916-50b6-4da7-8ec6-d1cc02f69a03%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
After placement:
PIOs 11 / 96
PLBs 9 / 160
BRAMs 0 / 16
place time 0.12s
route...
pass 1, 0 shared.
After routing:
span_4 10 / 6944
span_12 6 / 1440
route time 0.07s
write_txt hardware.asc...
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/ee47768b-5e2e-4112-aac3-363fb8b8784e%40googlegroups.com.
Bravo Juanma! Es un proyectazo!!
El 13/2/2017 9:13 p. m., "Juanma Rico" <juan...@gmail.com> escribió:
--
Pues con el apoyo de JJ (gracias :D) hoy me he animado y me he descargado el código del 4004 del openCores, el código está en Verilog y lo mantiene Reece Pollack.
Tiene un blog donde está intentado diseñar el mismísimo 4004 simplemente con transistores, cometió el error de empezar el diseño con Eagle y el cambio de políticas del software freeware de Eagle lo tiene un poco parado hasta que se pueda pasar a KiCAD (nada como el software libre para evitar sorpresas futuras...).
Un vistazo al datasheet del dispositivo 4004 ya te alucina (el datasheet es de Marzo del 87) y su simplicidad te atrapa. La cuestión es que no he podido esperar (soy impaciente por naturaleza) y sin echar ni una mirada al código, más que por encima, he intentado compilar con Apio. Pensando que me iba a dar errores por muchos sitios y así iba a calmar el SAV, me ha sorprendido que la síntesis no ha dado ni un solo fallo... al final únicamente he tenido que definir los pads del dispositivo (i4004.pcf) para que arachne no se quejara y al parecer, ha generado sin problemas el bitstream en formato ASCII (un simple apio verify y un apio build).
After placement:
PIOs 11 / 96
PLBs 9 / 160
BRAMs 0 / 16
place time 0.12s
route...
pass 1, 0 shared.
After routing:
span_4 10 / 6944
span_12 6 / 1440
route time 0.07s
write_txt hardware.asc...
Me he quedado con las ganas de descargarlo en la IceZum Alhambra pero me he tenido que contener.
Calmado el SAV inicial queda hacer alguna simulación y generar una ROM y una RAM para que se comunique con el 4004. Siendo tan simple y teniendo como tengo tantas EPROM y tantos circuitos RAM de memoria estática en el taller, me estoy planteando el soldarlas sobre una shield de prototipos del arduino y dejarlos en una placa externa a la FPGA. Lo investigaremos, de momento queda crear el test bench para las simulaciones.
Saludos, seguiremos informando. :)
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-lib...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/ee47768b-5e2e-4112-aac3-363fb8b8784e%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/CABqu7xqK6LCmXtQCkv5mpUzwWGYyn1kfX0nJbNo0%2Bj5htPa5mw%40mail.gmail.com.
Pues con el apoyo de JJ (gracias :D) hoy me he animado y me he descargado el código del 4004 del openCores, el código está en Verilog y lo mantiene Reece Pollack.
Tiene un blog donde está intentado diseñar el mismísimo 4004 simplemente con transistores, cometió el error de empezar el diseño con Eagle y el cambio de políticas del software freeware de Eagle lo tiene un poco parado hasta que se pueda pasar a KiCAD (nada como el software libre para evitar sorpresas futuras...).
always @(negedge clk2)
begin
case (a1)
0 : begin m1 = 4'b0000; m2 = 4'b0000; end //0x00 NOP
1 : begin m1 = 4'b1101; m2 = 4'b0001; end //0xD1 LDM 01 (Carga 1 al acumulador)
2 : begin m1 = 4'b1000; m2 = 4'b0001; end //0x81 ADD 01 (Añadir el contenido del registro 1 al acumulador).
3 : begin m1 = 4'b0011; m2 = 4'b0011; end
default : begin m1 = 4'b1101; m2 = 4'b1010; end
endcase
end
Como se ve en la captura, el chip 4004, al pasar a nivel bajo la señal "poc" (reset de nivel) responde correctamente y saca al bus la dirección de la ROM de la que empieza a pedir datos (ciclos de nibbles 0, 1 y 2), pero la ROM no puede imponer los valores (el código que debe ejecutar el 4004 en los otros dos ciclos siguientes) que guarda en el bus (que se supone el 4004 deja en modo lectura) y se queda en el ciclo de nibble 3 sin poder cambiar... mientras, el 4004 sigue pidiendo las sucesivas direcciones de memoria al completar el ciclo, sin importarle nada de las señales de la ROM.
Total, que parece no funcionar... y como parece que "yosys" tiene problemas al poner en alta impedancia los pines de entrada/salida...
¿Alguien sabe si esto también afecta a iverilog en la simulación aunque sean señales internas? ¿Se puede solucionar esto definiendo cada uno de los pines internos como SB_IO (o estoy más perdido de lo que yo me imagino)?
Una pena quedar atascado en estas cosas y no poder avanzar... :(
Saludos
--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/b0d71670-fd88-4152-a4cb-e237d14dd170%40googlegroups.com.