[RISC-V] [Icestudio] Sintetizando el Risc-V desde Icestudio

428 views
Skip to first unread message

Obijuan

unread,
Sep 15, 2019, 3:47:28 PM9/15/19
to FPGAwars: explorando el lado libre
Hola!

Estoy haciendo que el RISC-V se pueda usar desde Icestudio, para así poder crearnos fácilmente nuestros Sistemas (socs)



He partido del picorv32 de Clifford y lo metido en Icestudio en diferentes bloques verilog.

 

Ya no depende de ficheros verilog externos, por lo que ya está listo para meterlo en bloques más manejables, que será lo siguiente que haga

También he hecho un par de ejemplos hola_mundo en C y asm

El tiempo de síntesis es entre 6 y 7 minutos. Por eso he dejado también el bitstream ya generado para la alhambra II, de forma que se pueda cargar con iceprog directamente

Todavía está en modo desarrollador: no apto para todos los públicos. Pero iré trabajando en hacerlo cada vez más fácil y accesible

Saudos, Obijuan

charli va

unread,
Sep 15, 2019, 8:53:10 PM9/15/19
to fpga-wars-explora...@googlegroups.com
Millones de gracias Juan! que pasada!!

--
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...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/00ba37f0-bb27-4cb2-aecd-137a2af09937%40googlegroups.com.

Obijuan

unread,
Sep 16, 2019, 9:44:10 AM9/16/19
to FPGAwars: explorando el lado libre

He creado dos bloques de RISC-V, ambos tienen la misma pinta:

Uno es RV32IMC:  Número enteros, Multiplicación y división por hardware (M) y soporte de instrucciones comprimidas (C)

El otro es el RV32I: igual pero sólo para numeros enteros (sin multiplicador ni divisor hardware, y sin soporte de instrucciones comprimidas).  He actualizado el soc con este último, para que tarde un pelín menos en sintetizar (al tener menos hardware).


Seguiré agrupando partes en módulos para hacerlo más comprensible. Todavía queda tajo

Saudos, Obijuan

charli va

unread,
Sep 16, 2019, 10:00:29 AM9/16/19
to fpga-wars-explora...@googlegroups.com
Que grande! por si te ayuda, en mi repo estoy subiendo bastantes optimizaciones, igual te ayuda a moverte en el diseño., el pan y  el zoom ya tengo una mejora importante de velocidad, en el manejo de etiquetas y cables ando con ello.

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

Obijuan

unread,
Sep 16, 2019, 11:02:44 AM9/16/19
to FPGAwars: explorando el lado libre
Gracias Charli! Ahora mismo lo pruebo!!! Que estos diseños son muy grandes!! :-)  Cualquier optimización es super-bienvenida!! :-)
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.

Diego Harosteguy

unread,
Sep 16, 2019, 11:03:59 AM9/16/19
to FPGAwars: explorando el lado libre
Hola Obijuan!, que interesante esto!!!, ya habia estado husmeando en tus repo y vi que empezaste a trabajar con el Risc V, me habia bajado tus primero avances pero me quede estancado en que no pude instalar las tools y las toolchain de risc-v  :(.

Gracias!!

Obijuan

unread,
Sep 16, 2019, 11:04:24 AM9/16/19
to FPGAwars: explorando el lado libre

Ya tengo la memoria flash spi en un bloque separado. Esto es un pelín más legible :-)

Está subido al repo

Saludos, Obijuan

El domingo, 15 de septiembre de 2019, 21:47:28 (UTC+2), Obijuan escribió:

Obijuan

unread,
Sep 17, 2019, 2:31:15 AM9/17/19
to FPGAwars: explorando el lado libre

¡Gracias Diego! :-)

La instalación de la tool-chain de RISC-V (GCC) es complicada y de momento es sólo para desarrolladores. Pero será una de las cosas quee integraremos en apio para que todo el mundo lo pueda instalar fácilmente y en su sistema operativo

Mientras tanto, yo en la asignatura del RISC-V trabajamos en ensamblador, para aprender su arquitectura. Lo voy a dejar configurado para poder hacer programas usando el simulador RARs. Desde ahí exportas el código máquina a un fichero y lo cargas en el RISC-V mediante un bootloader hardware.

Esto son los planes :-)

Saludos, Obijuan

Diego Harosteguy

unread,
Sep 17, 2019, 5:41:31 AM9/17/19
to FPGAwars: explorando el lado libre
Hola Obijuan!
Que bien! Si, sigo las prácticas de la asignatura :)

Gracias!!

Obijuan

unread,
Sep 19, 2019, 3:35:56 AM9/19/19
to FPGAwars: explorando el lado libre
¡Hola!


Ya tengo descompuesto el picsoc en sus diferentes partes. Ahora las iré simplificando, convirtiendolas en bloques con iconos y dando acceso a sus parámetros (direcciones de mapeo, etc)




Esto sólo ha sido posible por las increibles mejoras que ha implementado Charli en Icestudio, que hace ahora ya se pueda trabajar con diseños mucho más complejos (estoy usando el icestudio que tiene en su rama de desarrollo, que está más avanzada que la nightly)

¡Gracias Charli! :-)

Iré subiendo aquí los avances, para que estéis al día

Saludos, Obijuan

charli va

unread,
Sep 19, 2019, 3:42:53 AM9/19/19
to fpga-wars-explora...@googlegroups.com
Gracias a ti Juan!! va a ser un comienzo de otoño apasionante!  el riscV moduladirzado y una nueva nightly de icestudio!



--
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...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/1683dd1a-351a-4004-8be3-d7fa1bd166a8%40googlegroups.com.

Obijuan

unread,
Sep 19, 2019, 5:55:19 AM9/19/19
to FPGAwars: explorando el lado libre
Esto poco a poco va tomando forma :-)

Ya está implementado en bloques el acceso al bus de datos de entrada, y la uart llevada a un módulo separado


Lo voy subiendo todo al repo

Saludos, Obijuan


Obijuan

unread,
Sep 19, 2019, 9:26:28 AM9/19/19
to FPGAwars: explorando el lado libre
Ya van quedando menos bloques verilog.... :-)



dddd

El domingo, 15 de septiembre de 2019, 21:47:28 (UTC+2), Obijuan escribió:

Obijuan

unread,
Sep 19, 2019, 11:09:47 AM9/19/19
to FPGAwars: explorando el lado libre
¡Ya casi estamos!!! :-)






dddd

Saludos, Obijuan

Obijuan

unread,
Sep 19, 2019, 2:07:50 PM9/19/19
to FPGAwars: explorando el lado libre

Aquí está la versión completa en bloques. Ahora falta simplificar, reorganizar y documentar



Pero lo gordo ya está :-)

Saludos, Obijuan

charli va

unread,
Sep 19, 2019, 3:12:25 PM9/19/19
to fpga-wars-explora...@googlegroups.com
Que gran avance!!! Muchísimas gracias!!!

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

Vicent Colomar Prats

unread,
Sep 19, 2019, 4:23:10 PM9/19/19
to fpga-wars-explora...@googlegroups.com
¡Que buen trabajo!

Missatge de charli va <char...@gmail.com> del dia dj., 19 de set. 2019 a les 21:12:

Obijuan

unread,
Sep 20, 2019, 4:02:46 AM9/20/19
to FPGAwars: explorando el lado libre

Empezamos con la simplificación. La memoria flash junto a la lógica para su mapeo lo he metido dentro de su propio bloque. Tiene dos parámetros para indicar la dirección Inferior y la superior en donde situarla en el mapa de memoria del RISC-V

De momento uso las mismas direcciones que tenía Clifford definidas en su picosoc:    0x400 (1024) <=  Zona de Flash < 0x0200_0000


La entrada Addr[31:0] es el bus de direcciones que llega directmente del Risc-V.   Valid también viene del Risc-v, e indica que la dirección del bus de direcciones es válida y se puede leeer 
Por flashdat sale el dato leído, y la señal de ready indica que el Riscv-V lo puede leer

Esta es la pinta que tiene nuestro SOC, de momento:


Saludos, Obijuan




Obijuan

unread,
Sep 26, 2019, 5:03:25 AM9/26/19
to FPGAwars: explorando el lado libre
Seguimos simplificando. Toda la parte de acceso al bus de entrada del Risc-V está metida en el bloque BUS-HUB 
El bosque se va aclarando :-)

Saludos, Obijuan

Obijuan

unread,
Sep 26, 2019, 1:04:16 PM9/26/19
to FPGAwars: explorando el lado libre

Ya tengo la lógica de las distintas partes simplificada


Ya queda muy poquito :-)

Saludos, Obijuan

Obijuan

unread,
Sep 26, 2019, 2:22:50 PM9/26/19
to FPGAwars: explorando el lado libre

La memoria RAM y el puerto de salida conectado a los LEDs están en sus propios bloques. Mediante un parámetro se cambia la dirección en la que están mapeados




Saludos, Obijuan

Marcos Chaparro

unread,
Sep 26, 2019, 2:36:00 PM9/26/19
to fpga-wars-explora...@googlegroups.com
Bravo!!

Marcos


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

Marcos Chaparro

unread,
Sep 26, 2019, 3:01:59 PM9/26/19
to fpga-wars-explora...@googlegroups.com
Me tomé el atrevimiento de mostrar esta maravilla aqui.

Marcos

charli va

unread,
Sep 26, 2019, 4:22:08 PM9/26/19
to fpga-wars-explora...@googlegroups.com

Juan Gonzalez Gomez

unread,
Sep 27, 2019, 1:08:33 AM9/27/19
to FPGA-WARS: explorando el lado libre

Obijuan

unread,
Sep 27, 2019, 4:43:02 AM9/27/19
to FPGAwars: explorando el lado libre

La UART con su lógica ya están su propio bloque.

Este es el diseño casi-definitivo. Tengo que pulir algunos detalles, pero ya casi está :-) . Ahora se entiende mucho mejor: se pueden ver las diferentes partes: Memora RAM, Memoria Flash, Puerto de Salida (LEDs), Comunicaciones serie (UART), la CPU y la lógica de acceso al bus



Saludos, Obijuan

Obijuan

unread,
Sep 29, 2019, 5:54:02 AM9/29/19
to FPGAwars: explorando el lado libre

Ya tenemos la versión 1.2.1 lista! La he liberado en el repo:


El SOC ya está muy simplificado. Este es el resultado final:



Cuando lo cargas en la Alhambra II y grabas el firmware test.c, se verá un contador binario en los LEDs y un mensaje por el terminal serie



En este vídeo se muestra un ejemplo de la carga del firmware y el efecto en la placa:



Saludos, Obijuan

Democrito

unread,
Sep 29, 2019, 8:27:25 AM9/29/19
to FPGAwars: explorando el lado libre
Comentar que he conseguido subir la demo y funciona perfectamente! Lo hice desde un terminal serie de Arduino. Los leds se ponen a contar y al pulsar la tecla '1' sale el mensaje de la imagen.

demo-picosoc-alhambra.PNG



Muschísimas gracias Obijuan! Esto es como ir a la Universidad gratis!

Obijuan

unread,
Sep 29, 2019, 9:09:48 AM9/29/19
to FPGAwars: explorando el lado libre
¡Genial Demócrito! Muchas gracias por las pruebas!

De momento está en modo "desarrollador" y todavía no está hecho fácil para que se ponga en marcha desde cualquier plataforma (pero lo estará...) 

Este tipo de pruebas son muy bienvenidas!! ¡Gracias! :-)

Saludos, Obijuan

Emmanuel Vazquez

unread,
Sep 30, 2019, 12:54:09 AM9/30/19
to FPGAwars: explorando el lado libre
Hola queria saber si tamnien funciona para la icestick o el ice40 breakout board lo quiero pasar pero me sale un error que neceisto poner las entradas y salidas. Si alguein tiene algun ejemplo se lo agradecria bastante muchas gracias a todos.

Juan Gonzalez Gomez

unread,
Sep 30, 2019, 2:12:37 AM9/30/19
to FPGA-WARS: explorando el lado libre
Hola,

La asignación de pines no es el problema. La icestick tiene los mismos que la Alhambra II: simplemente abre el proyecto para la alhambra II para ver dónde se conectan y tomas una captura. Luego cambias a la icestick y colocas los mismos

El problema es que el RISC-V NO cable en la ice40 1K que es la que lleva la Icestick (Tampoco cabe en la icezum Alhambra, ni el cualquier otra placa que lleve la ICE40 de 1K)

Sí que se podría implementar un mini-risc-v reducido, con menos instrucciones, que entrase en una FPGA de 1K

Saludos, Obijuan


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

Obijuan

unread,
Oct 1, 2019, 4:11:57 AM10/1/19
to FPGAwars: explorando el lado libre

Para la asignatura de Arquitectura de Ordenadores de Teleco en la URJC, estoy haciendo que probar los programas en un RISC-V real sea muy muy sencillo

Os quiero adelantar los progresos. Todo lo iré documentando y haciendo fácil, pero quiero compartir estos primeros resultados preliminares

Desde el Simulador RARs es extremadamente sencillo crear los archivos binarios para luego cargarlos en la Flash y que se ejecuten en el RISC-V real.

En este vídeo corto lo podéis ver en acción. Se ensambla un programa hola mundo que simplemente saca un valor por el puerto de salida donde están mapeados los LEDs. Se exporta a binario desde el RARs y luego se carga en la flash. En la Alhambra-II está previamente sintetizado el RISC-V


No os puedo describir la increible sensación de "poder" que sientes cuando ejecutas en sistemas reales todo lo que haces en el simulador... :-) Pasas del mundo académico-teórico a la realidad... y eso mola mucho!

Saludos, Obijuan


David Lobato

unread,
Oct 1, 2019, 6:05:07 AM10/1/19
to fpga-wars-explora...@googlegroups.com
Gran trabajo Obijuan!

Imagino que de momento tu objetivo es ejecutar ensamblador a pelo, pero por si alguien quiere investigar como compilar C baremetal en el repositorio de neuralFPGA tengo algunos scripts que pueden ser utiles:


Otra cosa interesante seria implementar soporte para depurar con gdb desde icestudio. En mi caso el softcore que uso (vexriscv) tiene soporte para depuración con JTAG y me basto adaptar el simjtag de rocket chip (https://github.com/JdeRobot/neuralFPGA/tree/master/sim/jtag).

Saludos,
David.


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

charli va

unread,
Oct 1, 2019, 6:31:36 AM10/1/19
to fpga-wars-explora...@googlegroups.com
Hola David! muchas gracias por la info!! está fenomenal!!!!

Demócrito

unread,
Oct 1, 2019, 9:28:47 AM10/1/19
to FPGAwars: explorando el lado libre
Por mi parte estoy estudiando lo que va sacando Obijuan sobre RISC-V, y para recordar mejor voy tomando apuntes con lápiz y papel, resumiendo lo esencial. Además de esta manera cuando me surge una duda rápidamente encuentro la respuesta por tengo a mano la libreta de apuntes y sé dónde está cada cosa.

A esto le veo muchísimo potencial, porque si te manejas con cierta soltura en electrónica digital, ensamblador y luego en C, se puede hacer cosas realmente interesantes (la combinación de todo ello) y lo mejor de todo es que iría todo ello dentro de un sólo chip.

Para los que manejan Windows, el comando que pone Obijuan en el vídeo es lo mismo en Windows.
iceprog -o 1M nombreDelFichero.bin
y le das a enter, y te lo sube. Y no se pierde porque queda dentro de la memoria flash.

Este "tren" NO me lo quiero perde!

charli va

unread,
Oct 1, 2019, 9:36:23 AM10/1/19
to fpga-wars-explora...@googlegroups.com
Claro que sí Demócrito! la vamos a liar parda! 



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

Demócrito

unread,
Oct 1, 2019, 9:50:57 AM10/1/19
to FPGAwars: explorando el lado libre
"iceprog.exe" está en esta carpeta:

C:\Users\TuNombreDeUsuario\.icestudio\apio\packages\toolchain-icestorm\bin

Yo lo que hago es copiarlo y pegarlo en una carpeta de trabajo, junto con los ficheros .asm y luego la exportación en .bin (este último es para subirlo a la FPGA)

Pero antes de hacer todo eso hay que meter en la FPGA el RISC-V. Ves aquí:


Le sube desde Icestudio "demo.ice". No verás nada una vez subido, sólo que los leds pasan de semi-apagados a apagados completamente (igual que cuando subimos otro ICE).

Ya tienes en la FPGA el RISC-V. Ahora como ejemplo para subir un programa y teniendo a mano el "iceprog.exe" le ejecutas el comando antes mencionado, en este caso, el ejemplo:

iceprog -o 1M demo-Alhambra-II.bin

Y se quedará en la memoria flash. Verás que los leds cuentan en binario y si pones un terminal serie, te saldrá un mensaje.

Pues para subir cualquier .bin es el mismo procedimiento, incluido los que tú hagas expontándolos desde el simulador RARS.

Si alguien quiere ver esto con más claridad (sólo si alguien lo pide) esta noche haría un post con imágenes de todo el proceso (para usuarios Windows, que somos los más miedosos con estos temas).

Saludos

Demócrito

unread,
Oct 1, 2019, 9:57:50 AM10/1/19
to FPGAwars: explorando el lado libre
Jejejeje, Carlos, me encanta este este proyecto! (por el potencial que le veo)

Obijuan

unread,
Oct 1, 2019, 3:07:56 PM10/1/19
to FPGAwars: explorando el lado libre

Este es otro ejemplo: utilización de un display de 7 segmentos. Primero en el simulador RARs se ejecuta un programa que enciende todos los segmentos (lamp test) y el punto. Luego se exporta el fichero binary y se graba en la flash para que se ejecute en el RISC-V real, donde hay conectado un display de 7 segmentos real



Para que funcione el display he mapeado otro puerto de salida, en la misma dirección en la que está el del simulador (0xFFFF0010)  :-)

Eso de poder cambiar el soc a tu antojo, añadiendo cosas en el mapa de memoria es.... una pasada :-)

Saludos, Obijuan


Diego Harosteguy

unread,
Oct 1, 2019, 7:55:33 PM10/1/19
to FPGAwars: explorando el lado libre
Hola Obijuan!, nuevamente felicitaciones por este gran trabajo!!. 

-Probado en Windows y Linux,  Ok!.
-Me tome el atrevimiento y conecté el display SPI - COM 1129, para lo cual hice un pequeño agregado en el modulo OUTPORT de un tic write, no se si esta bien pero funciona :), se ve en la primer imagen que agrego.
-En la segunda imagen se ve como queda el demo.ice con el display conectado, lo sintetizamos, lo cargamos y se muestra en el Display lo mismo que en los leds. :).   

Saludos!     Diego


Captura de pantalla de 2019-10-01 20-43-54.png.png


Captura de pantalla de 2019-10-01 20-33-05.png

Obijuan

unread,
Oct 2, 2019, 2:11:19 AM10/2/19
to FPGAwars: explorando el lado libre
¡Hola Diego!

Genial contribución! Muchas gracias :-)  La has implementado perfectamente

¿Te animas a hacer un pull-req al repo?

También puedes enviar los .ice y yo te los subo. Pero prefiero que hagas tú el PR para que quede constancia de tu aportación y figures como contribuidos

Gracias :-)

Saludos, Obijuan

Guillermo Cabezas

unread,
Oct 3, 2019, 2:45:47 PM10/3/19
to FPGAwars: explorando el lado libre
Pequeño detalle, he realizado un git clone del RISC-V-FPGA

Tengo instalado icestudio0.4.0 version linux64 en un fedora31(esta en beta y este mes en teoria si no hay bugs grandes se hara el release)

Lo curioso continua pasando lo de tener que tener la alhambra conectada desde inicio a un usb para poder hacer una carga sobre ella.

y el principal problema que quiero indicar y si puedo aportar información para que se solucione mejor

Le doy a abrir el demo.ice

Y se queda mostrandome el ratón moviendose de que esta cargando pero no me llega a mostrar nada y ya lleva más de treinta minutos, tengo un amd 3600X por lo que por potencia no deberia ser....

¿alguna idea que pueda provocar este bug?

Guillermo Cabezas

unread,
Oct 3, 2019, 3:20:31 PM10/3/19
to FPGAwars: explorando el lado libre
Doy un poco mas de información si lo lanzo desde consola al abrir el fichero aparecen estos mensajes:

[15003:1003/211341:INFO:CONSOLE(8)] "", source: file:///home/kapoira/Descargas/Temp/alhambra2-riscv/Alhambra%20II/icestudio-0.4.0-linux64/scripts/main.js (8)
[15003:1003/211348:ERROR:nw_shell.cc(336)] TypeError: Cannot read property 'id' of undefined
    at file:///home/kapoira/Descargas/Temp/alhambra2-riscv/Alhambra%20II/icestudio-0.4.0-linux64/scripts/main.js:5:22421
    at arrayEach (file:///home/kapoira/Descargas/Temp/alhambra2-riscv/Alhambra%20II/icestudio-0.4.0-linux64/scripts/vendors.js:15:25885)
    at Function.<anonymous> (file:///home/kapoira/Descargas/Temp/alhambra2-riscv/Alhambra%20II/icestudio-0.4.0-linux64/scripts/vendors.js:16:17678)
    at graphToCells (file:///home/kapoira/Descargas/Temp/alhambra2-riscv/Alhambra%20II/icestudio-0.4.0-linux64/scripts/main.js:5:21599)
    at file:///home/kapoira/Descargas/Temp/alhambra2-riscv/Alhambra%20II/icestudio-0.4.0-linux64/scripts/main.js:6:10142
[15003:1003/211348:INFO:CONSOLE(5)] "Uncaught TypeError: Cannot read property 'id' of undefined", source: file:///home/kapoira/Descargas/Temp/alhambra2-riscv/Alhambra%20II/icestudio-0.4.0-linux64/scripts/main.js (5)


Tambien he puesto todos los ficheros en el disco local para evitar tema de nfs (se que no deberia afectar pero para quitar posibles fallos)

y la version exacta del icestudio esta dentro del https://github.com/FPGAwars/icestudio/releases 


La version del risc-v-FPGA es la 1.2.1 he realizado un git clone directo pero no observo cambios desde hace 4 dias,

Democrito

unread,
Oct 3, 2019, 3:52:11 PM10/3/19
to FPGAwars: explorando el lado libre
Descárgate la versión Icestudio Nightlyhttps://icestudio.io/#lk-download

Has de bajar un poco, y verás el icono de Icestudio con un fondo redondo con algunas estrellas.

Saludos.

Democrito

unread,
Oct 3, 2019, 3:57:30 PM10/3/19
to FPGAwars: explorando el lado libre
Mi portátil es una caca de vaca, y lo abre en 14 segundos aprox.

Juan Gonzalez Gomez

unread,
Oct 3, 2019, 3:58:41 PM10/3/19
to FPGA-WARS: explorando el lado libre
Hola Guillermo, 

Como indica Demócrito, debes usar icestudio 0.5-nightly para poder abrir el riscv-fpga, o cualquier otro circuito que use etiquetas (la 0.4 no las soporta) 

Saludos, Obijuan

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

Guillermo Cabezas

unread,
Oct 3, 2019, 3:59:02 PM10/3/19
to FPGAwars: explorando el lado libre
Ok, parece que era eso ya que con la version 0.5.0-dev-linux64 si que he podido sintentizar y cargarlo a la placa (o al menos eso es lo que parece que ha realizado)

Democrito

unread,
Oct 3, 2019, 5:00:42 PM10/3/19
to FPGAwars: explorando el lado libre
Sí, una vez cargado no se ve nada, pero el RISC-V está ahí. Para meterle un programa (.bin) has de usar iceprog. Ese programa se encarga de meterlo en una zona de la memoria flash (en este caso poniendo los comandos "-o 1M", porque no es para subir un circuito). Si te has descargado todo el proyecto, puedes probar a subir un ejemplo que se encuentra ahí haciendo:

iceprog -o 1M demo-Alhambra-II.bin

Luego puedes probar con otros ejemplos de extensión .bin que se encuentran en otras carpetas de ese mismo proyecto, o si ya conoces RARS, exportar en binario, como se explica en los tutoriales que está sacando Obijuan. Se puede exportar una vez que no hay errores en la compilación.

Icestudio_RISC-V_RARS.PNG


Democrito

unread,
Oct 3, 2019, 5:11:47 PM10/3/19
to FPGAwars: explorando el lado libre
Todos los tutoriales que está sacando Obijuan los puedes encontrar aquí:

(observa la parte derecha, hay un índice de lecciones prácticas.)

A día de hoy vamos por L4: Práctica 2-1. E/S mapeada

Diego Harosteguy

unread,
Oct 3, 2019, 7:03:40 PM10/3/19
to FPGAwars: explorando el lado libre
Hola Obijuan!!

Gracias! por el apoyo, es solo un granito de arena. Recién hice el pull-req, la verdad no se si esta bien, no estoy muy practico con esto.

Gracias de nuevo! y saludos a todos.

Diego

charli va

unread,
Oct 3, 2019, 11:51:32 PM10/3/19
to fpga-wars-explora...@googlegroups.com
Hola Guillermo!, utiliza la nightly build que te puedes bajar desde https://icestudio.io

Posiblemente estás usando una version de icestudio con características antiguas.

charli va

unread,
Oct 3, 2019, 11:52:54 PM10/3/19
to fpga-wars-explora...@googlegroups.com
PErdonad, no  había vistro el resto de mensajes! :)


Emmanuel Vazquez

unread,
Oct 4, 2019, 1:43:59 AM10/4/19
to fpga-wars-explora...@googlegroups.com
A mí me pasó lo mismo y tuve que descargar la nueva versión de icestudio 5.0 se tarda cómo 5 min y carga yo tengo problema para pasarlo a mí lattice 8k breakboard me sale un error en los pines de salida pero espero y te sirva de ayuda.

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

Juan Gonzalez Gomez

unread,
Oct 4, 2019, 2:57:57 AM10/4/19
to FPGA-WARS: explorando el lado libre
Hola Emmanuel,

Los pines por defecto están para la alhambra II. Para la lattice 8k tienes que cambiarlos. Como yo tengo también una breakboard, en cuanto pueda lo cambio, lo pruebo y te digo

La síntesis del RISC-V tarda entre 5 - 6 minutos. Por eso, para hacer pruebas rápidas, dejaré subidas los ficheros ya sintetizados para algunas placas. De esta forma se podrán subir en segundos. Sólo en el caso de modificar el SOC (añadiendo periféricos por ejemplo) habría que sintetizar de nuevo

En las siguientes versiones de icestudio queremos meter una forma sencilla de cargar los bitstream, gráficamente (ahora es fácil hacerlo, pero en la línea de comandos)

Saludos, Obijuan

Guillermo Cabezas

unread,
Oct 4, 2019, 3:33:44 AM10/4/19
to FPGAwars: explorando el lado libre
Vuelvo a confirmar que ya con la nueva version ya sintetiza y carga, he podido cargar los .bin a la placa y ver que los LED's van cambiando por lo que efectivamente he cambiado el programa interno que esta arrancando el RISCV

Dos detalles ya que estamos hablando de posibles mejoras, serian los siguientes (puede ser que esten y por desconocimiento no los haya visto) 

1) Efectivamente desde RARs ya que compila un binario para riscv32ifmc o riscv32i poder seleccionar el juego de instrucciones y pasarlo a la alhmambra II
2) No se si es mejor desde RARs o desde icestudio tener una pantalla de comunicaciones contra la UART del riscv, para si ya empezamos a realizar programas más avanzados.

Un saludo
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.

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

charli va

unread,
Oct 4, 2019, 3:47:25 AM10/4/19
to fpga-wars-explora...@googlegroups.com
Hola Guillermo! efectivamente el rars es una gran solución inicial pero vamos a trabajar en integrar un montón de herramientas dentro del propio icestudio para tener una especie de IDE en el que confluya tanto el trabajo sobre la FPGA como con los lenguajes de alto nivel de los diferentes socs que vayamos implementando.

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

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

--
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...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/e04c5a4a-6648-435a-9aa9-fa398c8d2cd2%40googlegroups.com.

gerardo Loeches

unread,
Oct 4, 2019, 12:31:52 PM10/4/19
to FPGAwars: explorando el lado libre
Excelente idea, seria una gozada poder programar en C desde icestudio para esta implementaciónmentacion de RISC-V e incluso poder tener un pequeño sistema operativo corriendo en este soc, ahí dejo estas ideas en alto para los que saben

Emmanuel Vazquez

unread,
Oct 4, 2019, 1:13:44 PM10/4/19
to fpga-wars-explora...@googlegroups.com
Muchas Gracias Juan este fin de semana me voy poner a jugar con él y también para acabar tus ejercicios del laboratorio.

gerardo Loeches

unread,
Oct 5, 2019, 3:40:09 AM10/5/19
to FPGAwars: explorando el lado libre
He encontrado un libro magnífico sobre programación en RISC-V, la versión en español es gratuita, creo que puede ser muy interesante para todos los amantes de esta ISA


http://riscvbook.com/

Juan , ¿crees que este libro podría servir de lectura complementaria para tus alumnos.?

Saludos

Democrito

unread,
Oct 6, 2019, 9:44:09 AM10/6/19
to FPGAwars: explorando el lado libre
Hola!

No he podido reprimirme, he hecho "KITT" para RISC-V. Me he dado de tortas todo el rato porque todavía estoy muy verde en lo que llevamos aprendido. Hay muchas cosas que todavía no se han dado, pero mirando los programas de ejemplo que viene en el proyecto y la intuición de haber programado algo en el pleistoceno con el Z80, al final conseguí el objetivo (tb miré aquí). Se puede mejorar mucho el código, pero he usado lo que hasta ahora más o menos he aprendido (todo el rato estoy mirando la libreta de apuntes para ver cómo era esto o aquello).

Para los que lo quieran probar han de saber (y de esto me di cuenta hoy) que por defecto, en el circuito "demo.ice" (que es el risc-v para la fpga) el puerto de los leds está en 0x03000000, pero en el simulador RARS está en 0xffff0000 (se puede ver en los segmentos de datos, la parte que pone MMIO). Lo he cambiado a esta última porque antes de subirlo comprobaba si iba bien.

mmio.PNG


En el recuadro anaranjado se los cambios de valores cuando se ejecuta el programa.

Adjunto el archivo asm y bin por si alguien le apetece probar o echar un vistazo.

Saludos.


kitt-riscv.asm
kitt-riscv.bin

Obijuan

unread,
Oct 7, 2019, 2:23:28 AM10/7/19
to FPGAwars: explorando el lado libre
¡Hola Gerardo!

¡Garcias por la referencia! :-)  El libro de referencia que usamos en la asignatura es: "Computer organization and design. The hardware/software Interface. RISC-V Edition"  de Hennesy y Patterson. Estos dos autores son un "clásico" en la arquitectura de computadores

No conocía esta referencia que envías de Patterson. ¡Es genial!. La incluyo tambiénn en la bibliotegrafía del curso. Muchísimas gracias :-)

Saludos, Obijuan
Reply all
Reply to author
Forward
0 new messages