├── README.md ├── benchmarking └── xrays │ ├── Makefile │ ├── quantized.cpp │ ├── test.cpp │ └── train.cpp ├── docs ├── figures │ ├── googleArchitecture.jpg │ └── sysArchitecture.png └── report │ ├── report.aux │ ├── report.log │ ├── report.pdf │ └── report.tex ├── hardware ├── hdl │ ├── accumTable │ │ ├── accumCol.v │ │ └── accumTable.v │ ├── busConn.v │ ├── control │ │ ├── accumTableAddr_control.v │ │ ├── accumTableRd_control.v │ │ ├── accumTableWr_control.v │ │ ├── fifo_control.v │ │ ├── fifo_fill_control.v │ │ ├── master_control │ │ │ ├── master_control.v │ │ │ ├── master_fill_fifo_control.v │ │ │ ├── master_mem_control.v │ │ │ ├── master_multip_control.v │ │ │ └── master_output_control.v │ │ ├── rd_control.v │ │ ├── wr_control.v │ │ └── wr_mem_control.v │ ├── ip │ │ ├── dsp_multiplier │ │ │ ├── dsp_multiplier.qip │ │ │ ├── dsp_multiplier.v │ │ │ ├── dsp_multiplier_bb.v │ │ │ └── dsp_multiplier_inst.v │ │ ├── input_mem │ │ │ ├── input_mem.qip │ │ │ ├── input_mem.v │ │ │ └── input_mem_inst.v │ │ └── output_mem │ │ │ ├── output_mem.qip │ │ │ └── output_mem.v │ ├── memory │ │ ├── memArr.v │ │ └── outputArr.v │ ├── mmu │ │ ├── pe.v │ │ ├── sysArr.v │ │ ├── sysArr2x2.v │ │ └── sysArrRow.v │ ├── reluArr │ │ ├── reluArr.v │ │ └── reluMux.v │ ├── top.v │ ├── tpu.v │ ├── tpu_system.v │ └── weightFifo │ │ ├── dff8.v │ │ └── weightFifo.v ├── synthesis │ ├── DE1_SoC.qsf │ ├── matrixMultiplier.v │ └── messages ├── synthesis_2.0 │ ├── db │ │ ├── linux_system.db_info │ │ └── linux_system.sld_design_entry.sci │ ├── linux_sys.qsys │ ├── linux_system.qpf │ ├── linux_system.qsf │ ├── linux_system.qws │ └── linux_system.v └── testbenches │ ├── control │ └── tb_rd_control.v │ ├── tb_TPU.v │ ├── tb_accumCol.v │ ├── tb_accumTable.v │ ├── tb_control.v │ ├── tb_dff8.v │ ├── tb_fifo.v │ ├── tb_master_fill_fifo_control.v │ ├── tb_master_mem.v │ ├── tb_master_output_control.v │ ├── tb_memArr.v │ ├── tb_pe.v │ ├── tb_sysArr.v │ ├── tb_sysArr2x2.v │ ├── tb_sysArrRow.v │ ├── tb_top.v │ ├── tb_top_master.v │ ├── tb_weightFifo.v │ └── tb_wr_mem.v └── software └── instr_set.h /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/README.md -------------------------------------------------------------------------------- /benchmarking/xrays/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/benchmarking/xrays/Makefile -------------------------------------------------------------------------------- /benchmarking/xrays/quantized.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/benchmarking/xrays/quantized.cpp -------------------------------------------------------------------------------- /benchmarking/xrays/test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/benchmarking/xrays/test.cpp -------------------------------------------------------------------------------- /benchmarking/xrays/train.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/benchmarking/xrays/train.cpp -------------------------------------------------------------------------------- /docs/figures/googleArchitecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/docs/figures/googleArchitecture.jpg -------------------------------------------------------------------------------- /docs/figures/sysArchitecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/docs/figures/sysArchitecture.png -------------------------------------------------------------------------------- /docs/report/report.aux: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/docs/report/report.aux -------------------------------------------------------------------------------- /docs/report/report.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/docs/report/report.log -------------------------------------------------------------------------------- /docs/report/report.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/docs/report/report.pdf -------------------------------------------------------------------------------- /docs/report/report.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/docs/report/report.tex -------------------------------------------------------------------------------- /hardware/hdl/accumTable/accumCol.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/accumTable/accumCol.v -------------------------------------------------------------------------------- /hardware/hdl/accumTable/accumTable.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/accumTable/accumTable.v -------------------------------------------------------------------------------- /hardware/hdl/busConn.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/busConn.v -------------------------------------------------------------------------------- /hardware/hdl/control/accumTableAddr_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/accumTableAddr_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/accumTableRd_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/accumTableRd_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/accumTableWr_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/accumTableWr_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/fifo_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/fifo_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/fifo_fill_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/fifo_fill_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/master_control/master_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/master_control/master_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/master_control/master_fill_fifo_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/master_control/master_fill_fifo_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/master_control/master_mem_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/master_control/master_mem_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/master_control/master_multip_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/master_control/master_multip_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/master_control/master_output_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/master_control/master_output_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/rd_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/rd_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/wr_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/wr_control.v -------------------------------------------------------------------------------- /hardware/hdl/control/wr_mem_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/control/wr_mem_control.v -------------------------------------------------------------------------------- /hardware/hdl/ip/dsp_multiplier/dsp_multiplier.qip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/dsp_multiplier/dsp_multiplier.qip -------------------------------------------------------------------------------- /hardware/hdl/ip/dsp_multiplier/dsp_multiplier.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/dsp_multiplier/dsp_multiplier.v -------------------------------------------------------------------------------- /hardware/hdl/ip/dsp_multiplier/dsp_multiplier_bb.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/dsp_multiplier/dsp_multiplier_bb.v -------------------------------------------------------------------------------- /hardware/hdl/ip/dsp_multiplier/dsp_multiplier_inst.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/dsp_multiplier/dsp_multiplier_inst.v -------------------------------------------------------------------------------- /hardware/hdl/ip/input_mem/input_mem.qip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/input_mem/input_mem.qip -------------------------------------------------------------------------------- /hardware/hdl/ip/input_mem/input_mem.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/input_mem/input_mem.v -------------------------------------------------------------------------------- /hardware/hdl/ip/input_mem/input_mem_inst.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/input_mem/input_mem_inst.v -------------------------------------------------------------------------------- /hardware/hdl/ip/output_mem/output_mem.qip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/output_mem/output_mem.qip -------------------------------------------------------------------------------- /hardware/hdl/ip/output_mem/output_mem.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/ip/output_mem/output_mem.v -------------------------------------------------------------------------------- /hardware/hdl/memory/memArr.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/memory/memArr.v -------------------------------------------------------------------------------- /hardware/hdl/memory/outputArr.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/memory/outputArr.v -------------------------------------------------------------------------------- /hardware/hdl/mmu/pe.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/mmu/pe.v -------------------------------------------------------------------------------- /hardware/hdl/mmu/sysArr.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/mmu/sysArr.v -------------------------------------------------------------------------------- /hardware/hdl/mmu/sysArr2x2.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/mmu/sysArr2x2.v -------------------------------------------------------------------------------- /hardware/hdl/mmu/sysArrRow.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/mmu/sysArrRow.v -------------------------------------------------------------------------------- /hardware/hdl/reluArr/reluArr.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/reluArr/reluArr.v -------------------------------------------------------------------------------- /hardware/hdl/reluArr/reluMux.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/reluArr/reluMux.v -------------------------------------------------------------------------------- /hardware/hdl/top.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/top.v -------------------------------------------------------------------------------- /hardware/hdl/tpu.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/tpu.v -------------------------------------------------------------------------------- /hardware/hdl/tpu_system.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/tpu_system.v -------------------------------------------------------------------------------- /hardware/hdl/weightFifo/dff8.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/weightFifo/dff8.v -------------------------------------------------------------------------------- /hardware/hdl/weightFifo/weightFifo.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/hdl/weightFifo/weightFifo.v -------------------------------------------------------------------------------- /hardware/synthesis/DE1_SoC.qsf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis/DE1_SoC.qsf -------------------------------------------------------------------------------- /hardware/synthesis/matrixMultiplier.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis/matrixMultiplier.v -------------------------------------------------------------------------------- /hardware/synthesis/messages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis/messages -------------------------------------------------------------------------------- /hardware/synthesis_2.0/db/linux_system.db_info: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis_2.0/db/linux_system.db_info -------------------------------------------------------------------------------- /hardware/synthesis_2.0/db/linux_system.sld_design_entry.sci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis_2.0/db/linux_system.sld_design_entry.sci -------------------------------------------------------------------------------- /hardware/synthesis_2.0/linux_sys.qsys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis_2.0/linux_sys.qsys -------------------------------------------------------------------------------- /hardware/synthesis_2.0/linux_system.qpf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis_2.0/linux_system.qpf -------------------------------------------------------------------------------- /hardware/synthesis_2.0/linux_system.qsf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis_2.0/linux_system.qsf -------------------------------------------------------------------------------- /hardware/synthesis_2.0/linux_system.qws: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis_2.0/linux_system.qws -------------------------------------------------------------------------------- /hardware/synthesis_2.0/linux_system.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/synthesis_2.0/linux_system.v -------------------------------------------------------------------------------- /hardware/testbenches/control/tb_rd_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/control/tb_rd_control.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_TPU.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_TPU.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_accumCol.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_accumCol.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_accumTable.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_accumTable.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_control.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_dff8.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_dff8.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_fifo.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_fifo.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_master_fill_fifo_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_master_fill_fifo_control.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_master_mem.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_master_mem.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_master_output_control.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_master_output_control.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_memArr.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_memArr.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_pe.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_pe.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_sysArr.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_sysArr.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_sysArr2x2.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_sysArr2x2.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_sysArrRow.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_sysArrRow.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_top.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_top.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_top_master.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_top_master.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_weightFifo.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_weightFifo.v -------------------------------------------------------------------------------- /hardware/testbenches/tb_wr_mem.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/hardware/testbenches/tb_wr_mem.v -------------------------------------------------------------------------------- /software/instr_set.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cameronshinn/tiny-tpu/HEAD/software/instr_set.h --------------------------------------------------------------------------------