deca
deca copied to clipboard
RocketChip RoCC Accelerator template (Risc-V, Chisel )(加速器开发项目框架)
DeCA
DEveloping Computational Architectures
Setting up your environment
We highly recommend using docker for your development environment. Follow the instructions in rocket-chip-env for setting up the docker image associated with this project.
Getting started
method1:
here is a detailed wiki blog to guide you to start quickly ! https://github.com/rhit-neuro/deca/wiki/multiplier
method2:
Following the next:
First time setup
After cloning this repo, execute the following to download the chisel code for building a rocket-chip:
# It is critical you run this in your docker container if you're using docker
git submodule update --init --recursive
Making a new accelerator
Start with the instructions in [sbt/] (rocc/sbt/) and accelerators/ to make your own accelerator.
Installing your accelerator
Now executing the following will "install" custom accelerators into the rocket-chip:
cd scripts
./install-symlinks.sh
cd ..
If you make changes to your acclerators, you'll need to "reinstall" your accelerators with:
cd scripts
./uininstall-symlinks.sh
./install-symlinks.sh
cd ..
Building a Rocket Chip
When you're ready to build a new rocket-chip with your accelerator, run the following commands:
# replace ZynqFPGAMyAcceleratorConfig with the name of your config
# if you followed the style in the README's, you'll just replace
# MyAccelerator with the name of your accelerator
make rocket CONFIG=ZynqFPGAMyAcceleratorConfig ROCKETCHIP_ADDONS=accelerators
make project CONFIG=ZynqFPGAMyAcceleratorConfig ROCKETCHIP_ADDONS=accelerators
make CONFIG=ZynqFPGAMyAcceleratorConfig ROCKETCHIP_ADDONS=accelerators
When you make changes to your accelerator, remember to "reinstall" your accelerator as mentioned in the previous section and then rerun the above 3 make commands.
Building Linux
In order to change what events the Rocket Chip's hardware performance monitors count, you must rebuild linux. The following will build linux with our default hardware performance monitors enabled.
cd firesim-software
git submodule update --init
cd riscv-pk
git apply ../../patches/riscv-pk/bbl-perf-counters.patch
cd ..
./sw-manager -c br-disk.json build
This will compile Linux with your modified bootloader. This will create two files in the images directory.
br-disk-bin- This binary is the bootloader bundled with your RISC-V Linux kernel as its payload.br-disk.img- This is your ext2 root filesystem for Linux.
If you want to change what events are counted, edit firesim-software/riscv-pk/machine/minit.c then change to the firesim-software directory and run:
./sw-manager -c br-disk.json build
A note on fpga-images-zedboard submodule
The fpga-images-zedboard within fpga-zynq has an out of date fesvr-zynq which doesn't let us boot Linux with a disk image. Whenever Josh's merge request here is accepted, you'll need to update the fpga-images-zedboard submodule in fpga-zynq, submit a merge request, wait for that to be accepted, then update fpga-zynq in this repository. After all of that, you can remove the fpga-images-zedboard submodule from this repository.