{"id":13408613,"url":"https://github.com/jbush001/NyuziProcessor","last_synced_at":"2025-03-14T13:31:49.690Z","repository":{"id":37677818,"uuid":"2671513","full_name":"jbush001/NyuziProcessor","owner":"jbush001","description":"GPGPU microprocessor architecture","archived":false,"fork":false,"pushed_at":"2024-04-26T03:05:49.000Z","size":32910,"stargazers_count":2002,"open_issues_count":90,"forks_count":353,"subscribers_count":142,"default_branch":"master","last_synced_at":"2024-10-29T15:34:32.039Z","etag":null,"topics":["fpga","gpu","gpu-computing","graphics","hardware","microprocessor","processor-architecture","verilog"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbush001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2011-10-29T16:39:37.000Z","updated_at":"2024-10-28T07:46:59.000Z","dependencies_parsed_at":"2024-04-26T04:36:18.130Z","dependency_job_id":null,"html_url":"https://github.com/jbush001/NyuziProcessor","commit_stats":{"total_commits":4512,"total_committers":17,"mean_commits":265.4117647058824,"dds":0.00886524822695034,"last_synced_commit":"a5efd627ae651f7ea2addc0cb9b18f88bb3f9f4c"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbush001%2FNyuziProcessor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbush001%2FNyuziProcessor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbush001%2FNyuziProcessor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbush001%2FNyuziProcessor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbush001","download_url":"https://codeload.github.com/jbush001/NyuziProcessor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243584367,"owners_count":20314747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fpga","gpu","gpu-computing","graphics","hardware","microprocessor","processor-architecture","verilog"],"created_at":"2024-07-30T20:00:54.057Z","updated_at":"2025-03-14T13:31:46.681Z","avatar_url":"https://github.com/jbush001.png","language":"C","readme":"# Nyuzi Processor\n\n[![CI](https://github.com/jbush001/NyuziProcessor/workflows/CI/badge.svg)](https://github.com/jbush001/NyuziProcessor/actions?query=workflow%3ACI)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/fbafdd72749e459d8de6f381abc7436d)](https://www.codacy.com/app/jbush001/NyuziProcessor?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=jbush001/NyuziProcessor\u0026amp;utm_campaign=Badge_Grade)\n\nNyuzi is an experimental GPGPU processor focused on compute intensive tasks.\nIt includes a synthesizable hardware design written in System Verilog, an\ninstruction set emulator, an LLVM based C/C++ compiler, software\nlibraries, and tests. It can be used to experiment with microarchitectural\nand instruction set design tradeoffs.\n\n**Documentation:** \u003chttps://github.com/jbush001/NyuziProcessor/wiki\u003e\u003cbr/\u003e\n\nThe following instructions explain how to set up the Nyuzi development\nenvironment. This includes an emulator and cycle-accurate hardware simulator,\nwhich allow hardware and software development without an FPGA, as well as\nscripts and components to run on FPGA.\n\n## Install Prerequisites\n\n### Linux (Ubuntu)\n\nThis requires Ubuntu 16 (Xenial Xeres) or later to get the proper package\nversions. It should work for other distributions, but you will probably need\nto change some package names. From a terminal, execute the following:\n\n    sudo apt-get -y install autoconf cmake make ninja gcc g++ bison flex python \\\n        python3 perl emacs openjdk-8-jdk swig zlib1g-dev python-dev \\\n        libxml2-dev libedit-dev libncurses5-dev libsdl2-dev gtkwave python3-pip\n    pip3 install pillow\n\n**Note: Recent versions of cmake break building the LLVM toolchain. This can be worked \naround by switching back to an older version of cmake: \n\u003chttps://github.com/jbush001/NyuziProcessor/issues/204\u003e**\n\n*Emacs is used for [verilog-mode](http://www.veripool.org/wiki/verilog-mode) AUTO macros.\nThe makefile executes this operation in batch mode*\n\n### MacOS\n\nThese instruction assume OSX Mavericks or later.\n\nInstall XCode from the Mac AppStore ([Click Here](https://itunes.apple.com/us/app/xcode/id497799835?mt=12)).\nThen install the command line compiler tools by opening Terminal and typing the\nfollowing:\n\n    xcode-select --install\n\nInstall python libraries:\n\n    pip3 install pillow\n\nInstall Homebrew from \u003chttps://brew.sh/\u003e, then use it to install the remaining packages\nfrom the terminal (do *not* use sudo):\n\n    brew install cmake bison swig sdl2 emacs ninja\n\n*Alternatively, you could use [MacPorts](https://www.macports.org/) if that is installed on your system, but you will need to change some of the package names*\n\nYou may optionally install [GTKWave](http://gtkwave.sourceforge.net/) for analyzing\nwaveform files.\n\n### Windows\n\nI have not tested this on Windows. Many of the libraries are cross platform, so\nit should be possible to port it. But the easiest route is probably to run\nLinux under a virtual machine like [VirtualBox](https://www.virtualbox.org/wiki/Downloads).\n\n## Build (Linux \u0026 MacOS)\n\nThe following script will download and install the\n[Nyuzi toolchain](https://github.com/jbush001/NyuziToolchain) and\n[Verilator](http://www.veripool.org/wiki/verilator) Verilog simulator.\nAlthough some Linux package managers have Verilator, they have old versions.\nIt will ask for your root password a few times to install stuff.\n\n    ./scripts/setup_tools.sh\n\nBuild everything else:\n\n    cmake .\n    make\n\nRun tests:\n\n    make tests\n\n*If you are on a Linux distribution that defaults to python3, you may run into build\nproblems with the compiler. In tools/NyuziToolchain/tools/CMakeLists.txt, comment\nout the following line:*\n\n    add_llvm_external_project(lldb)\n\nOccasionally a change will require a new version of the compiler. To rebuild:\n\n    git submodule update\n    cd tools/NyuziToolchain/build\n    make\n    sudo make install\n\n## Next Steps\n\nSample applications are available in [software/apps](software/apps). You can\nrun these in the emulator by switching to the build directory and using\nthe run_emulator script (some need 3rd party data files, details are in\nthe READMEs in those directories).\n\nFor example, this will render a 3D model in the emulator:\n\n    cd software/apps/sceneview\n    ./run_emulator\n\nTo run on FPGA, see instructions in hardware/fpga/de2-115/README.md\n","funding_links":[],"categories":["Projects and IPs","Accelerators","C","硬件_其他","Applications"],"sub_categories":["Information Technology","网络服务_其他"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbush001%2FNyuziProcessor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbush001%2FNyuziProcessor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbush001%2FNyuziProcessor/lists"}