Giter Site home page Giter Site logo

sgaopico / rsd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rsd-devel/rsd

0.0 0.0 0.0 5.11 MB

RSD: RISC-V Out-of-Order Superscalar Processor

License: Apache License 2.0

Shell 0.08% C++ 2.97% Python 3.91% C 7.09% Tcl 11.17% Verilog 0.46% Assembly 5.54% SystemVerilog 64.28% Makefile 4.41% Batchfile 0.08%

rsd's Introduction

RSD RISC-V Out-of-Order Superscalar Processor

RSD is a 32-bit RISC-V out-of-order superscalar processor core. RSD is very fast due to aggressive OoO features, while it is very compact and can be synthesized for small FPGAs. The key features of RSD are as follows:

  • ISA
    • Support RV32IMF
    • Support Zephyr applications
  • Microarchitecture
    • 2-fetch front-end and 6-issue back-end pipelines
    • Up to 64 instructions are in-flight.
      • These parameters can be configurable.
    • A high-speed speculative instruction scheduler with a replay mechanism
    • Speculative OoO load/store execution and dynamic memory disambiguation
    • Non-blocking L1 data cache
    • Support AXI4 bus
  • Implementation
    • Written in SystemVerilog
    • Can be simulated with Modelsim/QuestaSim, Verilator, and Vivado
    • Can be synthesized with Synplify, Vivado and Design Compiler
      • Design Compiler support is experimental
    • Can run on a Xilinx Zynq board
      • Avnet Zedboard
    • FPGA optimized RAM structures

rsd

Getting started

Simulation on Verilator/Modelsim/QuestaSim/Vitis

  1. Install the following software for running simulation.

    • GNU Make, Python3, and GCC (x86-64) 6 or later
    • GCC (RISC-V) 7 or later
    • Verilator or Modelsim/QuestaSim or Xilinx Vitis 2019.2

    Tested environment:

    • GNU Make 4.0
    • Python 3.4.2
    • GCC 6.5.0 (x86-64)
    • GCC 8.1.0 (RISC-V)
    • Verilator 4.026 2020-01-11 rev v4.026-2-g0c6c83e
    • QuestaSim 2019.4.2
    • Vitis 2019.2
  2. Refer to scripts in Processor/Tools/SetEnv.sh and set environment variables.

    • RSD_ROOT must be set for running simulation.
    • RSD_VERILATOR_BIN, RSD_QUESTASIM_PATH or RSD_VIVADO_BIN must be set.
  3. Go to Processor/Src and make as follows.

    • For Modelsim/QuestaSim
      make            # compile
      make run        # run simulation
      make kanata     # run simulation & outputs a konata log file
      
    • For Verilator, add -f Makefile.verilator.mk like make -f Makefile.verilator.mk run
    • For Vivado, add -f Makefile.vivado.mk like make -f Makefile.vivado.mk run
  4. If the simulation ran successfully, you find "kanata.log" in Processor/Src.

    • Note that, the above sub-command is "kanata", not "konata".
  5. You can see the execution pipeline of your simulation above with Konata.

    • Konata is a pipeline visualizer and can be downloaded from here
    • An example is shown below.
    • konata

Run on a Xilinx Zynq board

Documents

License

Copyright 2019-2023 Ryota Shioya ([email protected]) and RSD contributors, see also CREDITS.md. This implementation is released under the Apache License, Version 2.0, see LICENSE for details. This implementation integrates third-party packages in accordance with the licenses presented in THIRD-PARTY-LICENSES.md.

References

Susumu Mashimo et al., "An Open Source FPGA-Optimized Out-of-Order RISC-V Soft Processor", IEEE International Conference on Field-Programmable Technology (FPT), 2019. A pre-print version is here.

rsd's People

Contributors

shioyadan avatar reo-pon avatar mmxsrup avatar clkbug avatar mithro avatar felixonmars avatar dalance avatar odxa20 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.