TSIM is a cycle-accurate hardware simulation environment that can be invoked and managed directly from TVM. It aims to enable cycle accurate simulation of deep learning accelerators including VTA. This simulation environment can be used in both OSX and Linux. There are two dependencies required to make TSIM works: Verilator and sbt for accelerators designed in Chisel3.
Install sbt
and verilator
using Homebrew.
brew install verilator sbt
Add sbt
to package manager (Ubuntu).
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 sudo apt-get update
Install sbt
and verilator
.
sudo apt install verilator sbt
Verilator version check
verilator --version
the supported version of Verilator should be at least 4.012, if homebrew (OSX) or package-manager (Linux) does not support that version, please install Verilator 4.012 or later from binary or source base on following instruction of Verilator wiki.
https://www.veripool.org/projects/verilator/wiki/Installing
verilator
and sbt
as described abovegit clone https://github.com/dmlc/tvm.git
There are two sample VTA accelerators, add-a-constant, designed in Chisel3 and Verilog to show how TSIM works. The default target language for these two implementations is Verilog. The following instructions show how to run both of them:
Test Verilog backend
<tvm-root>/vta/apps/tsim_example
make
Test Chisel3 backend
<tvm-root>/vta/apps/tsim_example
make run_chisel
Some pointers
<tvm-root>/vta/apps/tsim_example/tests/python
<tvm-root>/vta/apps/tsim_example/hardware/verilog
<tvm-root>/vta/apps/tsim_example/hardware/chisel
<tvm-root>/vta/apps/tsim_example/src/driver.cc
<tvm-root>/vta/apps/tsim_example/python/accel