MeitY

Innovate Solutions for # आत्मनिर्भर भारत

Welcome to the Grand Challenge 2025

Shakti Microprocessor is an Open-Source Processor development initiative by the RISE group at IIT Madras, sponsored by MeitY.

This page provides all the essential information you need to develop your application on the Shakti SoC.

Understanding the Shakti Processor

  • Shakti is an Open Source processor development program based on RISC-V ISA. There are many classes of processors in the Shakti ecosystem with varying compute capabilities. For this challenge, IIT Madras has made available two variants of Shakti, namely C-Class Yamuna - 32 bit varient and Ganga - 64 bit varient . Participants can learn more about RISC-V architecture from riscv.org. Knowing RISC-V architecture is not mandatory for building applications using Shakti processors.

Controller Class (C-Class) Shakti Processor

  1. A controller class of processor, aimed at mid-range application workloads.

  2. The core is highly optimized, 6-stage in-order design with MMU support and capability to run operating systems Linux and Sel4.

  3. C-class targets compute/control applications in the 0.5-1.5 GHz range.

  4. Amongst one of the most configurable RISC-V Cores

  5. Supported ISA:RV[32/64]{IMAFDCS}

Shakti Ecosystem

Shakti Software Development Kit (SDK)

  1. The Software Development Kit (SDK) is dedicated for building application around Shakti SoC.

  2. A lot of sample applications integrating different sensors are demonstrated.

  3. The whole ecosystem is vibrant and open source.

  4. Shakti SDK provides all necessary scripts and board support packages to build applications. There are example programs demonstrating working of sensors.

  5. Related Documents can be downloaded from the 'Docs' folder inside the SDK.

WHERE DO I START?

The following steps will walk you through the procedure for building and executing an application over Shakti SoC. The SoC (Yamuna and Ganga) is supported on Artix7 100t FPGA board. FPGA board will be provided by MeitY.


Step 1: System Requirements


The recommended system requirements are as follows,

Recommended:

  • Minimum 1 system with Ubuntu(22.04 Version) or Dual Boot capability
  • 8 / 16 GB RAM
  • 75+ GB space

Step 2: Installing Required Tools


Follow the tools setup manual to install required tools.



Step 3: IP Porting to Shakti


After Completing Step 2, Follow the document below to integrate your IP with Shakti Core

*Skip this step if your project doesnt involve IP Integration




Step 4: Develop, build and execute an Application


Follow the Shakti SDK User manual to develop , build and execute an application on Shakti SoC.


Getting to know the SoC - Yamuna and Ganga

Please select a SoC for developing your application. The features and details of each SoC is listed below.

Yamuna

A 32-bit C-class SoC on Artix7 100T board

  • Features:

    1. C-class 6 stage In-order core
    2. RV32IMAC supported
    3. 256 MB of DDR and 8 KB of Boot ROM
    4. Arduino Compatible pin assignments
    5. Pin Mux supported
    6. 32 GPIOs
    7. 6 PWM controllers
    8. 4 GPT controllers
    9. 2 SPI controllers
    10. 3 UART controllers
    11. 2 I2C controllers
    12. One Interrupt controller (PLIC)
    13. CLINT
    14. On board XADC
    15. Onboard FTDI based Debugger
    16. Ethernet Lite IP from Xilinx

Ganga

A 64-bit C-class SoC on Artix7 100T board

  • Features:

    1. C-class 6 stage In-order core
    2. RV64IMAC supported
    3. 256 MB of DDR and 8 KB of Boot ROM
    4. 16 GPIOs
    5. 2 GPT controllers
    6. 2 SPI controller
    7. 2 UART controller
    8. 1 I2C controller
    9. One Interrupt controller (PLIC)
    10. CLINT
    11. Onboard FTDI based Debugger
    12. Ethernet Lite IP from Xilinx

Documents & Tutorials

Document Description
Tools Installation Manual This Manual will walk through installation of various required tools.
Shakti SoC Registers This has complete information about the SoC and its registers.
RISC-V ASM Manual A complete guide to learn ASM programming from the scratch.
RISC-V User Level ISA Spec Provides the User level specifications.
RISC-V Privileged ISA Spec Provides the Privileged level specifications.
Xilinx Licenses A small guide to check for the Xilinx license in vivado.
Shakti SDK Intro An Introduction to Shakti SDK.
Shakti SDK User Manual User Manual for Using Shakti-SDK.
FPGA Design Flow A guide for FPGA Design Flow.
Zephyr Porting on Shakti A guide for FPGA Design Flow.
IP Integration Shakti SoC Steps to port IPs for Shakti SoC

Stuck Somewhere?

FAQ

Our FAQ Section contains the most common errors faced.

Youtube

There are video guides available that can be useful for installation and problem solving.

Blog

Blog contains many articles explaining the processor

Learn with Shakti

Helps in understanding the development environment, also contains sample programs

Still not Clear ?

Reach us at!

Our mail id: public-forum@shakti.groups.io

Forum

https://shakti.groups.io/g/gc2025

Frequently Asked Questions