We were contacted by [morbo] to let us know about a project on the AdaCore blog that concerns programming a PicoRV32 RISC-V softcore with Ada. The softcore itself runs on a Lattice ICE40LP8K-based TinyFPGA-BX FPGA board, which we have covered in the past.
The blog post describes how to use the Community edition of the GNAT Ada compiler to set up the development environment, before implementing a simple example project that controls a strip of WS28212b RGB LED modules. There are two push buttons changing the animation and brightness of the lights.
The source can be found at the author’s Github repository, and contains both the Ada source and the Verilog source for the PicoRV32 softcore. To build the project one needs the GNAT compiler, as well as the open-source iCE40 development tools to compile the softcore.
There is a video demonstrating the finished example project, that we’ve placed below the break.
9 thoughts on “Programming A RISC-V Softcore With Ada”
100% risky free..
Is the choice of Ada to share syntax with VHDL?
Vhdl is based on Ada.
That’s not a ‘yes’
Yes, VHDL’s use of Ada-style syntax is deliberate.
One of the things I remember liking in VHDL is you could choose to name the close of code blocks as well as their open, so you don’t have to see the top of a nesting to tell which layer it is.
Had a quick look around for Ada examples. Not too bad actually :)
If you want to give Ada a try you can have a look at our new e-learning website: https://learn.adacore.com/
Its a great project! I built it on my BX to try it. Also, open source from the BX to the FPGA tools to the compiler to the project shown. Not many flows can say that these days, esp when HW is involved.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)