SDK Development for RISC-V Semiconductor Company

About the Client

A semiconductor company that specializes in providing commercial RISC-V processor IP and silicon chips based on the RISC-V instruction set architecture. Their range of products includes cores, SoCs, IPs, and development boards.
Customer
Confidential
Location
USA
Industry
Semiconductors

Company’s Request

To accelerate the development and market release of the software product, the customer's team needed to expand the number of engineering staff. For this, it was decided to request the assistance of Sirin engineers.

Technology Set

RISC-V Unprivileged ISA
The set of instructions allows regular applications to run on RISC-V processors without needing advanced permissions. It covers the basic commands needed for everyday software operations.
RISC-V Privileged ISA
This instruction set includes commands for operating system kernels and other system-level software to manage hardware resources, such as memory and process execution.
OpenOCD
The debugger. Provides tools for debugging, programming, and testing embedded devices. It helps developers find and fix issues in hardware during development.
SDK Design
The process of creating a set of development tools that developers use to build applications. It includes libraries, tools, and documentation necessary for software development on specific platforms.
Vivado Design Suite
This software suite is used for designing systems on FPGA hardware. It includes tools for building, testing, and optimizing digital circuits.
FreeRTOS for RISC-V
Is an operating system for real-time applications, modified for RISC-V. It supports effective multitasking and is well-suited for embedded devices where resources are limited.
SoftCPU Testing with FPGA
Involves setting up and evaluating processor designs on FPGA technology. It allows for adjusting and refining processor functionality before final production.
Keystone Enclave
Provides a secure area within RISC-V processors that keeps sensitive data and operations away from the rest of the system to protect them from unauthorized access.
QEMU
A machine emulator that mimics the functions of a physical machine, allowing software meant for one type of machine to run on another type.
BSP
Board Support Packages. Include software and drivers necessary for an operating system to run on a specific hardware board, helping the system to operate correctly.
Spike
The simulator for RISC-V processors. It allows developers to run and test their applications in a simulated environment without physical RISC-V hardware.
Verilator
Converts Verilog code to C++ or SystemC, making it possible to simulate digital circuits quickly and test them before physical production.
Chisel
A hardware design language that enables designers to write high-level code to produce detailed and complex hardware designs efficiently.
Porting Projects to RISC-V
Adapting existing software to run on RISC-V involves changing the software so it can use the features of RISC-V processors effectively.
Porting OSes to RISC-V
Modifying operating systems to work on RISC-V processors often involves significant adjustments to take full advantage of the RISC-V architecture.
Freedom E SDK
A toolkit for developing applications on SiFive’s RISC-V cores, providing developers with compilers, libraries, and hardware abstraction layers.
Device Driver Development
This process involves creating software that allows operating systems to interact with hardware devices. It ensures that the operating system can effectively manage and use hardware resources.

Solution

Providing Complete Assistance
The primary focus of our team’s work is to provide comprehensive support for the freeRTOS kernel across a wide array of kernels, which currently number over a hundred. The end user will have the flexibility to utilize it if required. However, the core aspect of Sirin Software’s work lies in delivering the core element known as the SDK. This SDK consists of fundamental programming primitives that simplify the development process for programmers.

Code Maintenance and Dynamic SDK Enhancements
Our team prides itself on upholding the utmost level of program code, guaranteeing complete compatibility and optimization for every core. Furthermore, we consistently integrate cutting-edge features into the SDK as per the demands of our clients.

The Comprehensive SDK for RISC-V Development
The SDK comprises compilers (GCC, clang), debuggers, libc, linker scripts, and project examples for various on-chip peripherals. It supports existing Software Development Kit features and contributes to developing a brand new bare-metal SDK for RISC-V. The new SDK includes caching, prefetching, libc porting, MMU support, a hardware cryptographic acceleration driver, mbedTLS support for RISC-V, and support for the vector extension instruction set.

Value Delivered

Improved Software Quality
Team efforts resulted in notable enhancements to the software product's quality, making it more robust, reliable, and efficient, which is important for market competitiveness.
Optimized System Performance
The development of the SDK tailored for bare-metal systems ensured that these systems could operate at maximum efficiency.
Streamlined Product Launch
The collaboration significantly accelerated the product launch process. By meeting deadlines and maintaining a high standard of code quality, our team helped the client bring their product to market more quickly, effectively saving time and reducing costs.
Proactive Issue Resolution
The proactive troubleshooting and code adjustments helped anticipate and resolve potential issues before they impacted the users.