Using the Signaloid C0-microSD as a Hot-Pluggable Co-Processor Module
The Signaloid C0-microSD comes with a built-in RISC-V processor, the Signaloid SoC, which you can use to run your applications. In this mode of operation, host computers can use the SD protocol to exchange data with applications running on the Signaloid C0-microSD, either by creating custom applications that run on the host platform and which access the SD storage device, or using Unix tools such as dd. Applications running on the Signaloid SoC in the Signaloid C0-microSD can take advantage of a subset of Signaloid’s distribution-extended computation to compute how distributions in the input data affect their outputs.
Signaloid SoC specifications
The Signaloid SoC is based on the open-source PicoRV32 project, which we have extended to support a subset of Signaloid’s distribution-extended computation, as well as communication with the host device over the SD interface.
| ISA | Operating Frequency | Available Memory |
|---|---|---|
| RV32I | 12MHz | 128KiB |
Developing applications for the Signaloid SoC
The Signaloid SoC can run custom user code (device application), and work in conjunction with an application that runs on the host machine (host application). The host application is responsible for communicating with the device application over the SD interface, via block read and write operations. You can find more details on the Signaloid SoC communication scheme in Host Interface and Protocol.
Developing UxHw applications
Signaloid provides a toolchain for compiling applications that can take advantage of the UxHw distribution arithmetic of the Signaloid SoC. The toolchain is available through the Signaloid CLI. You can find pre-compiled UxHw distribution-extended example applications that run on the C0-microSD in the Signaloid-C0-microSD-Demo repositories. To build your own UxHw applications, see Developing UxHw Applications.
Developing RISC-V applications
You can use the open-source RISC-V GNU toolchain to compile and run RISC-V applications that do not take advantage of the UxHw distribution arithmetic of the Signaloid SoC. We provide example C applications that use the Signaloid SoC, along with host applications and instructions on how to compile them in the C0-microSD-Hardware repository. To learn more about developing RISC-V applications for the Signaloid SoC, see Developing RISC-V Applications.
Next steps
- Host Interface and Protocol, the registers, buffers, and handshake that connect the host to a device application.
- Using the Hardware Abstraction Layer, the C library that your device application uses to reach those registers and buffers.
- Using the Python Host Interface, the Python package that your host application uses to reach them from the other side.
- Exchanging Data With the C0-microSD, recipes for moving distributional data between the host and the module.
- Modes and Custom Bitstream, how the module enters and leaves Signaloid SoC mode.
- Specifications, the full core, memory, and electrical figures behind the summary above.