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.

Here you can get all information needed to build your application using Shakti SoC

Understanding Shakti Processors

  • 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.

C Class

  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

  • There is a Software Development Kit (SDK) dedicated for building application around Shakti SoC.
  • A lot of sample applications integrating different sensors and chips are demonstrated.
  • The whole ecosystem is vibrant and Open source.

Shakti-SDK

Shakti SDK provides all necessary scripts and board support packages to build applications. There are example programs demonstrating working of sensors. User manuals and guides can be downloaded from the Documents menu.

Operating systems

Virtual Machine ISO with built-in toolchain and Shakti-SDK support.

Docker

Shakti Dockerfile is provided through which a docker image can built and used for application development.Compatible with both Window (WSL) and Linux.

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.


All links to the documents to be released soon !

Step 1: System Requirements for Shakti Ecosystem

The recommended system requirements are as follows,

Recommended:

  • Windows with WSL or oracle Virtualbox / Ubuntu (virtualbox optional)
  • 8 GB RAM
  • 50+ GB space

Step 2: Installing Virtual Machine / Docker File

a) If your host machine is Windows/Ubuntu install Virtualbox and Virtual Machine using Shakti Distro manual

b) If your host machine is Windows install WSL & docker file using , Docker setup manual there is no installation needed to build docker image on ubuntu


Step 3: Installing Vivado / Building Docker Image


a) Follow the VNC setup manual to install vivado inside the VM.

b) Follow the Docker manual to build the docker image.



Step 4: Configuring the FPGA

After Installing Vivado ,follow the below video guide to configure the Shakti SoC in FPGA board.

  • Connect USB cable to laptop / pc and to FPGA board as shown in the image.
  • Video guide To be released soon

Step 5: Develop, build and execute an Application


a) 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.

Source code and mcs to be released soon !

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 4 KB of 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. 2 UART controllers
    11. 2 I2C controllers
    12. 4 Timer
    13. One Interrupt controller (PLIC)
    14. CLINT
    15. On board XADC
    16. Onboard FTDI based Debugger
    17. 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 4 KB of ROM
    4. Arduino Compatible pin assignments
    5. Pin Mux supported
    6. 16 GPIOs
    7. 2 GPT controllers
    8. 1 SPI controller
    9. 1 UART controller
    10. 1 I2C controller
    11. 4 Timer
    12. One Interrupt controller (PLIC)
    13. CLINT
    14. On board XADC
    15. Onboard FTDI based Debugger
    16. Ethernet Lite IP from Xilinx

Documents & Tutorials

Document Description
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.

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?

Forum

https://shakti.groups.io/g/public-forum/topics

Frequently Asked Questions