问题描述
楼主在Alinx公司出品的FPGA开发板上复现MIPI接口单目摄像头的工程,根据教程设计了如下的block design。
综合过程通过了,但是在实现过程中遇到了以下错误:
[Synth 8-439] module 'design_1_v_gamma_lut_0_0_v_gamma_lut' not found ["e:/VivadoLab/mipi_test/mipi_test.srcs/sources_1/bd/design_1/ip/design_1_v_gamma_lut_0_0/synth/design_1_v_gamma_lut_0_0.v":185]
另外一个 Sensor Demosaic模块也报了相同的错误。
软硬件配置
开发板使用的是Alinx的axu15eg。
Windows Vivado版本是2020.1。
解决方法
报错的两个模块都带有Vivado HLS的图标,经过查找后,推断是vivado和HLS的IP不兼容。参考官方社区的一个问答帖子链接1。
方案一(未验证)
上述链接回复区有人指出这可能是vivado的一个bug,vivado 2022版可以编译通过。所以可以试试升级一下vivado到2022版以上,但我没有试过这个方法。
方案二(验证可行)
回复区还有人给了另外一个帖子链接2,按照这个帖子的步骤可以修复该问题。
步骤
-
在链接2附件中下载
y2k22_patch-1.2.zip
-
解压上面的文件,并且要把文件夹
y2k22_patch
放到Xilinx的安装根目录下面。
如上图,我的Xiinx根目录是D:\Xilinx
。
如果操作系统是Linux,一般来说默认的安装根目录是/tools/xilinx
。 -
打开
y2k22_patch/README
,找到自己Vivado的版本号
Windows上在Xilinx根目录打开cmd命令行,运行Vivado\2020.1\tps\win64\python-2.7.16\python.exe y2k22_patch\patch.py
Linux上Xilinx根目录打开terminal,运行
export LD_LIBRARY_PATH=$PWD/Vivado/2020.1/tps/lnx64/python-2.7.16/lib/ Vivado/2020.1/tps/lnx64/python-2.7.16/bin/python y2k22_patch/patch.py
上述步骤其实就是用python执行了
y2k22_patch
中的patch.py
脚本。如果系统本身安装了python,也可以直接在根目录下运行python y2k22_patch/patch.py # Windows上python可能要换成python3
但是这个脚本需要python版本大于等于2.7.5。
Vivado2019.x及之后的版本,都会带有python解释器,因此保险起见,直接按照前面的官方指定的命令即可。但如果是Vivado 2018及以下版本,就只能使用单独安装的python解释器了。 -
运行之后得到下面的结果,即表示运行成功
运行该脚本不会修改或删除已有文件,只是新增了某些文件。
如果后续vivado更新,无需再次执行脚本。
重新打开Vivado 实现刚刚的工程,没有报错。