soDLA is a self-driving car optimized DLA.
In the beta phase, an NVDLA can be generated by chisel(nvgen). These are the tutorials for chisel3, nvdla, somnia.
somnia is a tutorial for you to get familiar with soDLA flow.
cora as an extension accelerator, will focus on the localization and control algorithm.
nvgen and cora shares the same design flow and library.
soDLA_equi shows the unittest and equivalence checking results between NVDLA and soDLA.
$ sbt run
Most verilog sources are not verified yet, but welcome to test on firesim and send me the issues. Before you generate nv_large as a whole, you will need to increase heap space in java first, or
$ env JAVA_OPTS="-Xmx4g" sbt run
-
Package data with valid/ready interface, data with valid interface, data bundle with valid/ready interface into DecoupledIO(UInt), ValidIO(UInt) and Decoupled(Bundle).
-
Package configuration data from ping-pong register into 'field' Bundle.
-
Wrap the basic reg_single in ping-pong register into NV_NVDLA_BASIC_REG_single, csb logic in ping-pong register into NV_NVDLA_CSB_LOGIC, input-skid pipe into NV_NVDLA_IS_pipe, bubble-collapse pipe into NV_NVDLA_BC_pipe, fifo generator(from ness) into NV_NVDLA_fifo, they are under slibs folder.
-
ODIF(open deep learning interface) is defined under nvdla/spec.
//updt 11/27/2019
- nv_large suport
//updt 11/28/2019
- nv_small without DRAM support
- PeekPokeTester under chisel, and verification with formal verification tools.
- soDLA doc page.
- Chisel3.2 full support(soDLA_beta will face "OutofMemory" issue in the latest Chisel3.2).