The Arduissimo is
based on the RISC-V
(32bit). 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
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.
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
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
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.
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 !
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
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