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, 但在后边对应位置也要加上。 此时,不再报错。