You will probably want to have docker installed first.
git clone https://github.com/hofstee/aha.git cd aha pip install -e .
.. toctree:: :maxdepth: 2 :caption: Contents:
Currently, the most robust way of getting a working set of tools is by
running inside of the garnet docker image. If you're on a
machine like kiwi
, then the aha docker
command will
automatically mount the CAD tools in /cad
, and also the technology
libraries.
docker pull stanfordaha/garnet aha docker
Afterwards, you can connect to the container using docker attach
<container name>
and perform any of the remaining steps there.
Attention!
It will look like the docker attach
command is
hanging. It's not. Just press enter.
If you additionally need the ADK and MemoryCompiler, then you will
want to first clone the tsmc-adk
locally, and pass the paths to
both of those in --tsmc-adk
and --mc
.
The wrapper provides a shim to calling garnet from anywhere in the
system once it's installed. The arguments are the same as calling
python garnet.py
normally.
# e.g. aha garnet --width 16 --height 4 --verilog aha garnet <args>
If you don't need global buffer and are only interested in application-level tests, you can simply do.
aha garnet --width [width] --height [height] --verilog --interconnect-only --no-pd
The different applications are listed in the hardware_benchmarks
directory of Halide-to-Hardware. To generate CoreIR for any of these
applications, there is an aha halide
shim. You'll need to pass in
the relative path from the hardware_benchmarks
directory to the
app folder.
# e.g. aha halide apps/pointwise aha halide <app>
You'll first need to generate CoreIR from Halide. Then you can pass in the same relative path like when generating from Halide.
# e.g. aha map apps/pointwise --width 16 --height 4 aha map <app> <args>
Attention!
The app name must be passed prior to the other arguments.
After mapping CoreIR to a bitstream, you can pass in the same relative path to test the application. You will also need to have generated garnet first.
# e.g. aha test apps/pointwise aha test <app>
Attention!
You'll probably want to module load incisive
and
module load xcelium
first. At the time of writing, the Verilator backend
doesn't seem to be functioning as intended.
Attention!
You'll need to be running on a machine with access to the TSMC tooling. To get the TSMC ADK, you might need to be on the restricted Arm machine. Otherwise, talk to Alex.
module load <tools> aha pd init