2021-02-10

记述Xilinx,V9.0 Ifft Core,C模型仿真平台搭建之旅

近期由于项目开发的需要,对于K7160t的Ifft Core做算法仿真,验证链路处理的正确性.很长时间没有做过FPGA项目的算法仿真了,所以也把困难想得多了一些,想从模型的搭建上入手,把算法先验证正确.可没有想到这个搭建的过程还真不容易.
1. EDA工具是Vivado 2017.4, 新建一个工程,然后选择器件为 xc7k160tfbg676-2,然后再打开 IP-catalog,选择了 FFT Core 进行例化,然后找到了生成的CModel(这个直接在工程目录下找,很不好找,要在 IDE-IP Source-C Simulation, 查看仿真模型包所在的目录.)。
2. 选择生成的 C Model, 有 xfft_v9_0_bitacc_cmodel_lin64.zip 和 xfft_v9_0_bitacc_cmodel_nt64.zip,因为在 Windows 上做事, 所以就选择 xfft_v9_0_bitacc_cmodel_nt64.zip 解压打开.打开后文件清单如下

gmp.h
libgmp.dll                          libgmp.lib
libIp_xfft_v9_0_bitacc_cmodel.dll   libIp_xfft_v9_0_bitacc_cmodel.lib
make_xfft_v9_0_mex.m                run_bitacc_cmodel.c
run_xfft_v9_0_mex.m                 xfft_v9_0_bitacc_cmodel.h
xfft_v9_0_bitacc_mex.cpp

3. 文件中有 mex 文件,明显是可以在 matlab 上进行模型的仿真运行了,由于当前项目要用一些新的工具组件,所以就用了 MatLab 2020(结果没想到,走了很多弯路),

4. 在 matlab 的命令窗口中,执行 make_xfft_v9_0_mex.m ,马上报错,显示没有 mexw64 文件, 找了资料大致看了一下,才知道,这个是要编译的.要装 C/C++ 编译器, 于是上 Matlab 的网页上看了兼容的 MinGW64 编译器,然后开始了漫长的下载,结果 download 不下来.
5. 通过万能的度娘, 终于找到了一个 MATLAB Support for MinGW-w64 CC++ Compiler.rar, 打开压缩包后,又看见一个压缩包 和 一个 mingw.mlpkginstall 文件, 不知道何为. 然后想通过 MatLab 附加功能管理 安装 MinGW-w64 编译器, 各种尝试都宣告失败.

6. 然后还是通过万能的度娘,终于找到了tdm64-gcc-9.2.0.exe, 按照网上先行者们的建议, 直接 C:/TDM-GCC-64 路径进行编译器安装, 然后,在系统信息中,添加 环境变量 MW_MINGW64_LOC=c:/TDM-GCC-64,  
7. 在 matlab 的命令窗口中,执行 mex -setup , 终于看到编译器安装成功(虽然显示编译器不是兼容版本, 不管它,只要能编译就先往下进行)
8. 后面发现,其实在 windows 上还是选 VS2017 之类的编译器吧, 这样少折腾很多时间.
9. 在 matlab 的命令窗口中,执行 make_xfft_v9_0_mex.m ,显示成功, 执行 run_xfft_v9_0_mex.m, 显示 demo 例程执行成功,数据比对正确. 好难啊, 走了这么多弯路.
10. 宜将余勇追穷寇, 那继续把 VC 调用 matlab 库的仿真平台也搭建了吧, 没想到,这里又是一连串的坑
11. 在VS2017中新建工程, 然后把 matlab/extern/include   matlab/extern/lib/win64/microsoft 导入目录都添加进工程, 然后开始编译, 死活报 mxGetPi 找不到, 上网搜,发现是 matlab 的 C库变化了, 想改写代码适应新的库, 尝试了一天后主动放弃了.
12. 做事情还是慢慢来吧, 重新安装了一个 matlab 2017, 再重新建工程,重新添加 matlab/extern/include   matlab/extern/lib/win64/microsoft, 添加动态链接库, 执行编译, 啊!终于编译通过了. 
13. 在VS2017 中开始执行 F5, 马上显示,找不到 dll, 网上搜了一下, 都说添加 /matlab/2017a/bin/win64 路径在 环境变量里就行了, 我加了, 结果一样报找不到. 如果手动拷 dll , 差不多是要把 /matlab/2017a/bin/win64 下的 dll 全部拷贝完了. 难道就这样了?
14. 在当前登陆的用户 Adminstrator 用户的环境变量中,再次添加 /matlab/2017a/bin/win64 ,再执行. 啊! 通过! 世界终于清静了.
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值