riscy - Riscy Processors - Open-Sourced RISC-V Processors

  •        6

This repository contains a collection of open-sourced RISC-V processors written in Bluespec System Verilog (BSV). These processors can be built with a variety of backends to use the processors in different simulation frameworks or FPGA. Currently the supported backends are Connectal and Verilator. Connectal is a generic framework that supports a variety of FPGAs and simulation targets.




Related Projects

pulpino - An open-source microcontroller system based on RISC-V

  •    C

PULPino is an open-source single-core microcontroller system, based on 32-bit RISC-V cores developed at ETH Zurich. PULPino is configurable to use either the RISCY or the zero-riscy core. RISCY is an in-order, single-issue core with 4 pipeline stages and it has an IPC close to 1, full support for the base integer instruction set (RV32I), compressed instructions (RV32C) and multiplication instruction set extension (RV32M). It can be configured to have single-precision floating-point instruction set extension (RV32F). It implements several ISA extensions such as: hardware loops, post-incrementing load and store instructions, bit-manipulation instructions, MAC operations, support fixed-point operations, packed-SIMD instructions and the dot product. It has been designed to increase the energy efficiency of in ultra-low-power signal processing applications. RISCY implementes a subset of the 1.9 privileged specification. Further informations can be found in http://ieeexplore.ieee.org/abstract/document/7864441/.

flight - Flight code for MIT CSAIL Robot Locomotion Group flying-through-forests project

  •    C

Flight code for MIT CSAIL Robot Locomotion Group flying-through-forests project

rocket-chip - Rocket Chip Generator

  •    Scala

This repository contains the Rocket chip generator necessary to instantiate the RISC-V Rocket Core. For more information on Rocket Chip, please consult our technical report. To build the rocket-chip repository, you must point the RISCV environment variable to your riscv-tools installation directory.

riscv-boom - Berkeley Out-of-Order Machine

  •    Scala

This is the source repository for the RV64G RISC-V superscalar Berkeley Out-of-Order Machine (BOOM), written in the Chisel hardware construction language. BOOM is a synthesizable core that targets ASIC processes. It can run on an FPGA (50 MHz on a zc706), but optimizing it to be an FPGA soft-core is a non-goal. For documentation on BOOM visit (https://ccelio.github.io/riscv-boom-doc).

Boundary Representation Library

  •    C

Implementation of a topological data structure for representing the boundary (surface) of a 3D solid. A core layer on top of which e.g. CSG operations or 3D model topology fixers can be build. Includes a CSG sample application.

csg.js - Constructive solid geometry on meshes using BSP trees in JavaScript

  •    Javascript

Constructive Solid Geometry (CSG) is a modeling technique that uses Boolean operations like union and intersection to combine 3D solids. This library implements CSG operations on meshes elegantly and concisely using BSP trees, and is meant to serve as an easily understandable implementation of the algorithm. All edge cases involving overlapping coplanar polygons in both solids are correctly handled. Detailed documentation can be automatically generated using Docco.

ImplicitCAD - A math-inspired CAD program in haskell. CSG, bevels, and shells; 2D & 3D; gcode generation

  •    Haskell

ImplicitCAD is a programmatic CAD program, implemented in haskell. Unlike traditional CAD programs, programmatic CAD programs use text descriptions of objects, as in programming. Concepts like variables, control structures and abstraction are used, just as in programming. Generally, objects in programmatic CAD are built with Constructive Solid Geometry or CSG. Unions, intersections and differences of simpler shapes slowly build the object. ImplicitCAD supports all this and much more.

Real-time Eulerian Video Magnification and Heart-rate Detection


Real-time Visual C++ implementation of MIT CSAIL Eulerian video magnification intended for robust infrared-based optical heart-rate detection.

vid2vid - Pytorch implementation of our method for high-resolution (e

  •    Python

Pytorch implementation for high-resolution (e.g., 2048x1024) photorealistic video-to-video translation. It can be used for turning semantic label maps into photo-realistic videos, synthesizing people talking from edge maps, or generating human motions from poses. Video-to-Video Synthesis Ting-Chun Wang1, Ming-Yu Liu1, Jun-Yan Zhu2, Guilin Liu1, Andrew Tao1, Jan Kautz1, Bryan Catanzaro1 1NVIDIA Corporation, 2MIT CSAIL In arXiv, 2018. We include an example Cityscapes video in the datasets folder.

VexRiscv - A FPGA friendly 32 bit RISC-V CPU implementation

  •    Assembly

For commercial support, please contact spinalhdl@gmail.com. The following numbers were obtained by synthesizing the CPU as toplevel without any specific synthesis options to save area or to get better maximal frequency (neutral). The clock constraint is set to an unattainable value, which tends to increase the design area. The dhrystone benchmark was compiled with the -O3 -fno-inline option. All the cached configurations have some cache trashing during the dhrystone benchmark except the VexRiscv full max perf one. This of course reduces the performance. It is possible to produce dhrystone binaries which fit inside a 4KB I$ and 4KB D$ (I already had this case once) but currently it isn't the case. The CPU configurations used below can be found in the src/scala/vexriscv/demo directory.

ariane - Ariane is a 6-stage RISC-V CPU

  •    SystemVerilog

Ariane is a 6-stage, single issue, in-order CPU which implements the 64-bit RISC-V instruction set. It fully implements I, M and C extensions as specified in Volume I: User-Level ISA V 2.1 as well as the draft privilege extension 1.10. It implements three privilege levels M, S, U to fully support a Unix-like operating system. Furthermore it is compliant to the draft external debug spec 0.13. It has configurable size, separate TLBs, a hardware PTW and branch-prediction (branch target buffer and branch history table). The primary design goal was on reducing critical path length.

riscv-isa-manual - RISC-V Instruction Set Manual

  •    TeX

This repository contains the LaTeX source for the draft RISC-V Instruction Set Manual. At the time of this writing, none of these specifications have been formally adopted by the RISC-V Foundation. This work is licensed under a Creative Commons Attribution 4.0 International License. See the LICENSE file for details.

riscv-isa-sim - Spike, a RISC-V ISA Simulator

  •    C

Spike, the RISC-V ISA Simulator, implements a functional model of one or more RISC-V processors. Spike is named after the golden spike used to celebrate the completion of the US transcontinental railway.

riscv-linux - RISC-V Linux Port

  •    C

RISC-V Linux Port

riscv-qemu - QEMU with RISC-V (RV64G, RV32G) Emulation Support

  •    C

QEMU with RISC-V (RV64G, RV32G) Emulation Support

riscv-tools - RISC-V Tools (GNU Toolchain, ISA Simulator, Tests)

  •    Shell

Note for OS X: We recommend using Homebrew to install the dependencies (libusb dtc gawk gnu-sed gmp mpfr libmpc isl wget automake md5sha1sum) or even to install the tools directly. This repo will build with Apple's command-line developer tools (clang) in addition to gcc.


  •    Haskell

A math-inspired CAD program in haskell. CSG, bevels, and shells; 2D & 3D; gcode generation...

enforce module

  •    C

EM stands for enforcement module. It is a security module which create bastion host machine. the process involved reading an XML policy file and translate it into Linux/Unix system call set. the translation process is created by CSG(command set generator


  •    Java

cmjTracer is a small Java based ray tracer with antialiasing and Constructive Solid Geometry (CSG). It will be capable of importing various 3D and image file formats for rendering. It will also be able to render keyframed animations.


  •    C++

camvox is a CSG, voxel and tool path library for generating multi-axis tool paths for milling machines.