Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
GPGPU processor core, implemented in SystemVerilog.
C C++ SystemVerilog Assembly Makefile Python Shell
Branch: master

README.md

Nyuzi Processor

Nyuzi is an experimental multicore GPGPU processor. It supports vector floating point, hardware multithreading, and cache coherence. The SystemVerilog-based hardware implementation is synthesizable and runs on FPGA. This project also includes an LLVM-based C++ toolchain, a symbolic debugger, an emulator, software libraries, and hardware verification tests. It is useful as a platform for microarchitecture experimentation, performance modeling, and parallel software development.

License: Apache 2.0
Documentation: https://github.com/jbush001/NyuziProcessor/wiki
Mailing list: https://groups.google.com/forum/#!forum/nyuzi-processor-dev
Blog: http://latchup.blogspot.com/

Getting Started

This section explains how to get the design running in the cycle-accurate Verilog simulator and the emulator. This environment allows development of hardware and software without an FPGA.

Required Software

The following sections explain how to install these packages for each operating system.

Optional Software:

Building on Linux

Build the Nyuzi toolchain following instructions in https://github.com/jbush001/NyuziToolchain

Next, you will need Verilator. Many package managers have Verilator, but it may be out of date. It can be installed as follows on Ubuntu:

sudo apt-get install verilator
verilator --version

Bug fixes in at least version 3.864 are necessary for it to run properly. Some of the bugs are subtle, so it may appear to work at first but then fail in odd ways if you are out of date. If you don't have a recent version, build from source using these instructions:

http://www.veripool.org/projects/verilator/wiki/Installing

You can install the remaining dependencies using the built-in package manager like apt-get or yum. The instructions below are for Ubuntu. You may need to change the package names for other distributions:

sudo apt-get install gcc g++ python perl emacs openjdk-7-jdk gtkwave imagemagick libsdl2-dev

git clone https://github.com/jbush001/NyuziProcessor.git
cd NyuziProcessor
make
make test

To run 3D renderer (in emulator)

cd software/apps/sceneview
make run

Building on MacOS

Build the Nyuzi toolchain following instructions in https://github.com/jbush001/NyuziToolchain. The host compiler is also installed, if not already present, as part of that process.

You will need to build Verilator from source using instructions here:

http://www.veripool.org/projects/verilator/wiki/Installing

MacOS has many of the required packages by default. To install the remaining packages, I would recommend a package manager like MacPorts. The following commands will set up the project using that:

sudo port install imagemagick libsdl2

git clone https://github.com/jbush001/NyuziProcessor.git
cd NyuziProcessor
make
make test

To run 3D renderer (in emulator)

cd software/sceneview
make run

Building on Windows

I have not tested this on Windows. Many of the libraries are already cross platform, so it should theoretically be possible. The easiest route is probably to run Linux under VirtualBox or VMWare.

Running on FPGA

See instructions in hardware/fpga/de2-115/README.md

Something went wrong with that request. Please try again.