1. 代码生成
1.1 参数设置:
在nvdla中,一些功能是否使能,以及参数的大小都是可以设置的,之后的代码根据参数设置自动生成。nvdla对应的脚本都已经写好,我们只需要设置参数即可;
所在的目录为: spec/defs/nv_full.spec 这是目前现有的, 你可以重新设置一个文件,设置自己的;
1.2 tree.make
在hw目录下 执行make 命令生成tree.make.
注意在project 输入 对应spec 的名字, cpp 对应就输入cpp, gcc 对应输入 g++, perl 对应输入perl, systemC 也是输入systemC。
1.3 命令执行
执行 ./tools/bin/tmake -build vmod 生成代码, 代码路径是有个outdir的目录下;
1.4 注意点
注意1. 在执行上述命令时,在tmake 中用到 YAML和IO包, 一般perl自动安装的都没有, 需要重新装;
注意2: 在perl中一般不支持这种写法, 要将 unless @bulid 改为 unless(@build != 0);
2. verif 路径下仿真
2.1 sim/Makefile 的修改点
2.1.1 修改一:
Makefile中cp命令用到了 cp -Trf , 发部分 环境不支持-T操作, 随意 需要在自己的环境中 cp --help 查看是否支-T , 如果支持,万事大吉; 如果不支持,将对应的 cp -Trf A B, 更改为 cp -rf A/* B即可,其中A,B分别代指文件夹名;
2.1.2 修改一:
makefile 文件里面需要注意修改对应VCS/verdi等对应的路径;
注: 改了画线部分,设置为自己目录下的路径即可, 其中VCS_HOME 和VCS _CC直接设置为VCS 和 g++ 即可,因为已经安装好,可以自动识别;
2.2 编译,仿真运行
如果是用默认的dve工具打开最终的波形图,可以执行命令:
1. make build DESIGNWARE_NOEXIST=1
2. make run TESTDIR=../traces/traceplayer/sanity0 DESIGNWARE_NOEXIST=1
3. dve -full64 -vpd **
如果想用Verdi 打开,则执行命令:
1. make build DUMP=1 DUMPER=VERDI DESIGNWARE_NOEXIST=1
2. make run DUMP=1 DUMPER=VERDI TESTDIR=../traces/traceplayer/sanity0 DESIGNWARE_NOEXIST=1
3. make verdi DUMP=1 DUMPER=VERDI DESIGNWARE_NOEXIST=1
2.3 注意点:
注意1 : 在编译之前 确保 sim文件下的脚本 和 verif/synth_tb/sim_scripts/下的pl脚本都是可执行的;
注意2: 如果在第一步代码生成阶段重新设置了一个spec文件,且改了名字,则需要将 verif/dut/dut.f文件对应的文件目录名进行更改;