NVDLA Environment Setup Guide

Tools and Dependency Libraries Setup

Required tools and libraries and version could be found in TOT/makefile.

tree.make setup

TOT> make

Please install corresponding tools and point to the actual path in your environment.

Note that the current source code has only been tested for the nv_small configuration, and while the nv_small configuration passes many tests, additionall coverage is necessary to get it to tapeout quality.

Any project name specified should have a project spec file located at hw/spec/defs/<project_name>.spec.

Creating tree.make to setup your working environment and projects

Enter projects name (Press ENTER if use: nv_small nv_large):

Enter to determine designware_noexist (Press ENTER 0 to use design ware, 1 to not use design ware: 1):

Enter design ware path (Press ENTER if use: /home/tools/synopsys/syn_2011.09/dw/sim_ver):

Enter c pre-process path (Press ENTER if use:
/home/utils/gcc-4.8.2/bin/cpp):

Enter gcc path (Press ENTER if use: /home/utils/gcc-4.8.2/bin/gcc):

Enter g++ path (Press ENTER if use: /home/utils/gcc-4.8.2/bin/g++):

Enter perl path (Press ENTER if use:
/home/utils/perl-5.10/5.10.0-threads-64/bin/perl):

Enter java path (Press ENTER if use:
/home/utils/java/jdk1.8.0_131/bin/java):

Enter systemc path (Press ENTER if use:
/home/ip/shared/inf/SystemC/1.0/20151112/systemc-2.3.0/GCC472_64_DBG):

Enter python path (Press ENTER if use:
/home/tools/continuum/Anaconda3-5.0.1/bin/python):

Enter vcs_home path (Press ENTER if use:
/home/tools/vcs/mx-2016.06-SP2-4):

Enter novas_home path (Press ENTER if use:
/home/tools/debussy/verdi3_2016.06-SP2-9):

Enter verdi_home path (Press ENTER if use:
/home/tools/debussy/verdi3_2016.06-SP2-9):

================================================================

tree.make is created successfully, and you can edit tree.make
manually later

================================================================

After this setup, a file named tree.make will be generated under TOT directory.

Project name setup

During tree.make file setup process, project name has been specified. The project name could be changed after tree.make generation. It’s allowed to build multiple projects. To change target project names, open generated TOT/tree.make , and modify line which starts with projects, for example, we can remove other project name, only build nv_small:

##=======================
## Project Name Setup, multiple projects supported
##=======================
PROJECTS := nv_small

Designware Components

The NVDLA design utilize the following Designware components.

  • DW02_multp
  • DW02_sum
  • DW_lsd

For best QOR, the EDA vendor supplied versions should be used for both synthesis and simulation. They can be obtained directly from the EDA vendors.

If no designware implementation is available, the NVDLA repository contains an alternate implementation. The design can be compiled to using the alternate implementation by setting the tree.make variable DESIGNWARE_NOEXIST to 1.

DESIGNWARE_NOEXIST := 1

If designware implementation is available, set the tree.make variable DESIGNWARE_NOEXIST to 0. When using a designware implementation, the designware directory also needs up be added to tree.make with the DESIGNWARE_DIR variable. This variable should point to a directory where the simulation version of the designware component is avaiable. Synthesis will pick up an internal optimized version.

DESIGNWARE_NOEXIST := 0
DESIGNWARE_DIR := \<PATH_TO_DESIGNWARE_DIRECTOTRY\>

Build Tree

Build RTL

Once tree.make has been setup, RTL can be build with following command

TOT > ./tools/bin/tmake -build vmod

In the end of build process, following line will be show in the last line:

[TMAKE]: DONE

There will be a new directory named outdir under TOT. RTL file can be found under TOT/outdir/<project_name>/vmod.

Build Test Bench

TOT > ./tools/bin/tmake -build ready_for_test

Several messages begin with [TMAKE] will be show on terminal output during build process, and in the end of the process, following line will be show in the last line:

[TMAKE]: DONE

There will be a new directory named outdir under TOT, it’s generated by build flow and contains generated RTL and verification environment.

Build test bench and run protect tests

To validate tree healthness after download from git server, or to make sure changes are not break base line functions, use following command to build tree and then run protection tests

TOT > ./tools/bin/tmake -build verif_protection

In the end of build process, following line will be show in the last line:

[TMAKE]: DONE

Build CMOD

There is a tmake target for the Cmodel of NVDLA, which lives in the cmod/ directory. If building the Virtual Platform, or another application that uses the NVDLA Cmodel, please use following command

TOT > ./tools/bin/tmake -build cmod_top

In the end of build process, following line will be show in the last line:

[TMAKE]: DONE

CMOD headers and dynamically linked shared object library could be found under outdir/<project_name>/cmod/release

Here is the end of NVDLA Environment Setup Guide.