NVDLA NV_small代码生成

1. 前提条件

代码链接:GitHub - nvdla/hw: RTL, Cmodel, and testbench for NVDLA

nvdla/hw 默认的代码分支为nvdlav1,在这个分支下 ,采用nv_small.spec生成的代码不是期望的,中间具体原因不详。

因此选择需要采用master 分支。

2. 注意事项

与nvdlav1分支类似,tmake脚本中 对应的几个perl 的模块,需要安装。

此处需要安装perl 模块有 YAML 和 Capture::Tiny

 

其中 Capture::Tiny 可参考安装链接为:

linux下使用CPAN安装Perl模块 - —小郑同学— - 博客园

再次执行报错如下图所示,解决方法: 安装 XML/Simple.pm 

 

对应模块下载链接: http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-Simple-2.20.tar.gz

3. 代码修改

当上述工作执行完成后, 执行 ./tool/bin/tmake -build vmod, 依然会报错,错误如下图所示:

 

修改方案

报错是出现在NV_NVDLA_CSC_dl.v文件中, 且错误的原因 是Global symbol “$quat” requires explicit package name , 这个错误的解决方案 是 写成 MY $quat

因此在 vmod 目录下 打开 NV_NVDLA_CSC_dl.v, 搜索 dat_rsp_sft_d2_en 找到对应位置,即使在第一次出现的时候已经 定义了 MY $quat, 但在后边对应位置也要加上。 此时,不再报错。