[VTA] Refactor to increase platform coverage (Ultra96 etc.) (#3496)
authorThierry Moreau <moreau@uw.edu>
Mon, 29 Jul 2019 01:41:10 +0000 (18:41 -0700)
committerJared Roesch <roeschinc@gmail.com>
Mon, 29 Jul 2019 01:41:10 +0000 (18:41 -0700)
commitf55609b4a19ed7166d9b4dbbee4acd48af3697ac
tree2f5124a02873075ba44c96b1dc60dbd75a2cd6cb
parentbca8ac17ae8a4414147ef40ef4092175d58c0b39
[VTA] Refactor to increase platform coverage (Ultra96 etc.) (#3496)

* hardware refactor for increased FPGA coverage, small optimizations

* fix header

* cleaning up parameters that won't be needed for now

* streamlining makefile, and simplifying tcl scripts

* moving parameter derivation into pkg_config.py, keeping tcl scripts lightweight

* refactoring tcl script to avoid global variables

* deriving AXI signals in pkg_config.py

* unifying address map definition for hardware and software drivers

* single channel design for ultra96 to simplify build

* enable alu by default, no mul opcode for now

* hardware fix

* new bitstream; vta version

* avoid error when env variable is not set

* ultra96 cleanup

* further cleaning up tcl script for bitstream generation

* preliminary rpc server support on ultra96

* rpc server tracker scripts

* ultra96 ldflag

* ultra96 support

* ultra96 support

* cleanup line

* cmake support for ultra96

* simplify memory instantiation

* cleaning up IP parameter initialization

* fix queue instantiation

* 2019.1 transition

* fix macro def

* removing bus width from config

* cleanup

* fix

* turning off testing for now

* cleanup ultra96 ps insantiation

* minor refactor

* adding comments

* upgrading to tophub v0.6

* model used in TVM target now refers to a specific version of VTA for better autoTVM scheduling

* revert change due to bug

* rename driver files to be for zynq-type devices

* streamlining address mapping

* unifying register map offset values between driver and hardware generator

* rely on cma library for cache flush/invalidation

* coherence management

* not make buffer packing depend on data types that can be wider than 64bits

* refactor config derivation to minimize free parameters

* fix environment/pkg config interaction

* adding cfg dump property to pkgconfig:

* fix rpc reconfig

* fix spacing

* cleanup

* fix spacing

* long line fix

* fix spacing and lint

* fix line length

* cmake fix

* environment fix

* renaming after pynq since the driver stack relies on the pynq library - see pynq.io

* update doc

* adding parameterization to  name

* space

* removing reg width

* vta RPC

* update doc on how to edit vta_config.json

* fix path

* fix path
33 files changed:
apps/vta_rpc/start_rpc_server.sh [moved from apps/pynq_rpc/start_rpc_server.sh with 100% similarity]
apps/vta_rpc/start_rpc_server_to_tracker.py [moved from apps/pynq_rpc/start_rpc_server_to_tracker.sh with 83% similarity]
cmake/modules/VTA.cmake
docs/vta/dev/config.rst
docs/vta/install.md
python/tvm/autotvm/tophub.py
vta/config/pynq_sample.json
vta/config/ultra96_sample.json [new file with mode: 0644]
vta/config/vta_config.json
vta/config/vta_config.py
vta/hardware/xilinx/Makefile
vta/hardware/xilinx/scripts/hls.tcl
vta/hardware/xilinx/scripts/vivado.tcl
vta/hardware/xilinx/sim/vta_test.cc
vta/hardware/xilinx/src/vta.cc
vta/hardware/xilinx/src/vta.h
vta/include/vta/driver.h
vta/include/vta/hw_spec.h
vta/python/vta/bitstream.py
vta/python/vta/environment.py
vta/python/vta/pkg_config.py
vta/python/vta/program_bitstream.py
vta/python/vta/rpc_client.py
vta/python/vta/testing/util.py
vta/src/pynq/pynq_driver.cc
vta/src/pynq/pynq_driver.h
vta/src/runtime.cc
vta/src/sim/sim_driver.cc
vta/src/tsim/tsim_driver.cc
vta/tests/hardware/common/test_lib.cc
vta/tests/hardware/common/test_lib.h
vta/tests/python/unittest/test_environment.py
vta/tutorials/frontend/deploy_resnet_on_vta.py