Skip to content

rnayabed/taurus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taurus

version

This is a fork of CDAC Vega SDK with additional improvements. It is an experiment and mostly for learning how such systems work, for now.

Contributions are welcome :)

Supported Platforms

  • Linux
  • Windows

Prerequisites

  • CMake
  • Ninja (Only on Windows)
  • RISC-V GNU Compiler Toolchain

Comparison with official SDK

  • Usage of CMake instead of GNU Make: This allows usage of multiple build systems and compilation on Windows and MacOS alongside Linux.
  • Integration with vegadude uploader tool for seamless development experience.
  • Cleaner code
  • Examples moved to seperate repository.
  • setup.sh: Completely rewritten with fine tunable features. See setup script usage for more information.
  • gpio:
    • All GPIO pins are intialised as OUTPUT LOW. Note: On Aries v2.0, Pin 26,27,29 and 30 are set to OUTPUT HIGH as these are inbuilt active-low LEDs.
  • Removed led: Not needed as it is the same as gpio.
  • config.h
    • Refactor, added SFRs
  • timer
    • Rewritten and simplified methods

TODO

  • Avoid GNU extensions to allow usage of RISC-V LLVM toolchain
  • Documentation

Setup script usage

Usage:  [-tb | --target-board] [-ts | --target-soc]
        [-tt | --toolchain-triplet] [-tp | --toolchain-path]
        [-ip | --install-path] [-vp | --vegadude-path]
        [-nm | --no-minicom]
        [-h | --help]

Option Summary:
    -tb | --target-board                Required if --target-soc not provided.
                                        Set the target development board to
                                        build Taurus for. Adds extra optimisations
                                        for board if available.
                                        Valid targets are:
                                        ARIES_V2 ARIES_V3 ARIES_MICRO_V1 ARIES_IOT_V1

    -ts | --target-soc                  Required if --target-board not provided.
                                        Set the target System-on-Chip to build
                                        Taurus for.
                                        Valid targets are:
                                        THEJAS32 THEJAS64 CDACFPGA
    
    -tt | --toolchain-triplet           Required. RISC-V GNU Compiler Toolchain
                                        triplet.
                                        Example: 'riscv64-unknown-elf'

    -tp | --toolchain-path              Optional. Specify the absolute path of
                                        toolchain if it is not present in PATH.

    -ip | --install-path                Optional. Path where Taurus will be
                                        installed.

    -vp | --vegadude-path               Optional. Provide vegadude path for taurus integration.
                                        Not required if vegadude is already present in PATH.

    -nm | --no-minicom                  Optional. Do not create minicom
                                        configuration file. Configuration is
                                        created if not specified.

    -h  --help                          Print this message.

Auto-minicom configuration is created only in Linux.

Credits

Originally developed by Centre for Development of Advanced Computing, India.

Forked and further developed by Debayan Sutradhar & Avra Mitra. All Rights Reserved.

License

Taurus is licensed under the MIT License.