For best results, you should enable Javascript for our web site.
RV32 SoC
DS
UG
High-Perf RV32 SoC
DS
UG
RV64 SoC
DS
UG
API and Examples
Embedded IDE
UG
Sapphire RISC-V SoC Hardware Software UG
Introduction
VexRiscv RISC-V Core
Efinity RISC-V Embedded Software IDE
Required Software
Required Hardware
Install Software and SoC
Install the Efinity Software
Install the Efinity RISC-V Embedded Software IDE
IP Manager
Customizing the Sapphire RV32 SoC
SoC Configuration Guideline
Modify the Bootloader
Updating Bootloader with Efinity BRAM Initial Content Updater
Program the Board with the Sapphire RV32 RTL Design
About the Example Design
Enable the On-Board 10 MHz Oscillator (T120 BGA324 Board)
Enable the LPDDR4x Memory (Ti180 J484 Board)
Installing USB Drivers
Program the Development Board
Simulate
Boot Sequence
Boot Sequence: Case A
Boot Sequence: Case B
Boot Sequence: Case C
Booting Multiple Cores
Create Your Own RTL Design
Target another FPGA
Target another Efinix Board
Target Your Own Board
Create a Custom AXI4 Master Peripheral
Create a Custom APB3 Peripheral
Use another DDR DRAM Module (Trion Only)
Use the I2C Interface for DDR Calibration (Trion only)
Remove Unused Peripherals from the RTL Design
Create Your Own Software
Deploying an Application Binary
Boot from a Flash Device
Boot from the OpenOCD Debugger
Copy a User Binary to Flash (Efinity Programmer)
Converting a User Binary to Raw Hex Format (Efinity Programmer)
About the Board Specific Package
List of Restructured BSP Files
Address Map
Example Software
apb3Demo
Axi4Demo Design
clintTimerInterruptDemo
coremark
customInstructionDemo
dCacheFlushDemo
dhrystone Example
FreeRTOS Examples
fpuDemo
gpioDemo
iCacheFlushDemo
inlineAsmDemo
i2cDemo Example
i2cEepromDemo
i2cMasterDemo Design
i2cMasterInterruptDemo Design
i2cSlaveDemo Design
memTest Example
nestedInterruptDemo
semihostingDemo
smpDemo
spiDemo Example
uartEchoDemo
UartInterruptDemo Example
userInterruptDemo Example
userTimerDemo
Watchdog Timer
Introduction
Functional Description
Setting Limits for Both Counters
Using a UART Module
Using the On-board UART (Titanium)
Set Up a USB-to-UART Module (Trion)
Unified Printf
Bsp_print
Bsp_printf
Bsp_printf_full
Semihosting Printing
Preprocessor Directives
Using a Soft JTAG Core for Example Designs
Connect the FTDI Mini-Module
Migrating to the Sapphire SoC
Migrating to the Sapphire RV32 SoC v2.0 from a Previous Version
Migrating Ruby, Jade, and Opal to the Sapphire RV32 SoC
Troubleshooting
Eclipse Fails to Launch with Exit Code 13
Error 0x80010135: Path too long (Windows)
Exception in thread "main"
Installation Error (2350): Path too long (Windows)
Memory Test
OpenOCD error code (-1073741515)
OpenOCD Error: no device found
OpenOCD Error: failed to reset FTDI device: LIBUSB_ERROR_IO
OpenOCD Error: target 'fpga_spinal.cpu0' init failed
Unexpected CPUTAPID/JTAG Device ID
API Reference
Control and Status Registers
GPIO API Calls
I2C API Calls
I/O API Calls
Core Local Interrupt Timer API Calls
User Timer API Calls
PLIC API Calls
SPI API Calls
SPI Flash Memory API Calls
UART API Calls
RISC-V API Calls
Handling Interrupts
Inline Assembly
Introduction
Inline Assembly Syntax
Operands
RISC-V Registers
Watchdog Timer
Introduction
Functional Description
Setting Limits for Both Counters