bigPicture


Arduissimo is without question the coolest RISC-V 32bit project ever, ever. The 4 CUBE-V cores reach 620 MIPS on the famous ARTY board. The dynamic multithreading capabilities that come with the thrilling system hyper pipelining technique are outlandish.

It is an fully open source project and you can check it out on github: https://github.com/cloudxcc/Arduissimo

The datasheet can be found on github or here.


System Hyper Pipelining

With this project I want to demonstrate a certain digital design technique called system hyper pipelining (SHP), which generates high performance digital designs. It is setup to have a working example, which can be used for comparison. Please find more information on system hyper pipelining (SHP) technology here.


ASIC vs. FPGA

The technique can be used for ASICs and FPGA alike. I’m just using an FPGA for this project. The hardware is optimized towards the famous low-cost ARTY board from Xilinx. There is no reason not to use SHP for designs targeting other FPGA devices or silicon chips.


RISC-V

I use the RISC-V for this project due to its raising popularity. Previous versions are based on a Cortex-M3 design, for instance. SHP is not limited to processors or particular processor families.


Dynamic Multi-threading and Virtual Peripherals

One benefit of SHP is its dynamic multi-threading capability. This project is optimized towards using and SHP-ed 32-bit RISC-V quad core to support virtual peripherals such as RS232. I2C, SPI, 1-write, CAN, PWM, .... Nevertheless, I believe that SHP also has a future in HPC, etc. and is not limited to the capabilities shown with this particular project.


Arduissimo

For me the classical term “Arduino” stands for simple and easy microcontroller programming. Still, each microcontroller (Atmel, Mirochip, TI, …) has its own set of peripherals and a µC specific driver code is needed to use them. In this project, a reasonable set of virtual peripherals should be fairly easily re-usable. This aspect gave the project its name, the simplification and flexibility of peripheral programming on top of simple µC programming – Arduissimo. Free the world from a fixed set of peripherals implemented in a fxied hardware !


IDE

The Arduissimo IDE still needs some work and is not released yet. Alternatively eclipse based Freedo Studio IDE from SiFive can be used. I hope that the community helps me in finding the right way to handle the hardware beast I created more efficiently. The problem is, that the SHP programming requires slightly more detailed programming than the “processing” method used in the Arduino world offers. There are still stack handling issues for such a simplified but multithreaded environment.


Future

I would love to see the specific ideas of this very projects somehow realized on an ASIC. I think the resulting virtual peripheral speeds are fast enough to replace the fixed set of peripherals on microcontroller families. The programmable realtime unit subsystem (PRU) of TI's microcontroller is already an exampe for such a concept. 




last modified: 2019/Dec/20