紫光同创HMIC_S(DDR) IP与Modelsim的仿真

紫光同创HMIC_S(DDR) IP与Modelsim的仿真

0 致读者

此篇为专栏 《紫光同创FPGA开发笔记》 的第一篇,记录我的学习紫光同创 FPGA 的一些开发过程和心得感悟,刚接触 FPGA 的朋友们可以先去我主页置顶 《FPGA零基础入门学习路线》来做最基础的扫盲。

本篇内容基于笔者实际开发过程和正点原子资料撰写,将会详细讲解此 FPGA 实验的全流程,诚挚地欢迎各位读者在评论区或者私信我交流!

本篇内容基于2023年FPGA创新设计竞赛的例程,旨在解决紫光同创 HMIC_S(DDR) IP 无法仿真的问题。

1 更改 sim/modelsim 中的具体文件

在这里插入图片描述

1.1 增加 Windows 批处理文件

在此文件夹下新建一个文本文档(.txt),添加如下内容:

vsim -gui -do sim.tcl

保存后退出,然后将其重命名sim.bat。这一步的作用是能够直接双击运行 modelsim。

在这里插入图片描述

1.2 更改 sim.tcl 文件

“记事本” 打开方式,打开 sim.tcl 文件,找到最后两行代码,并将其注释掉。

在这里插入图片描述

在最后一行添加如下代码:

vsim -novopt -suppress 3486,3680,3781  -c ddr_test_top_tb -L work -l sim.log

这一步的作用是防止 modelsim 闪退

在这里插入图片描述

接着更改下PDS的安装路径,将路径更改为自己电脑上的:

在这里插入图片描述

在这里插入图片描述

1.3 更改 sim_file_list.f 文件

这个文件包含了仿真要用的设计文件、测试文件、各种库,由于里面存在绝对路径,因此需要进行更改。

“记事本” 打开方式,打开 sim_file_list.f 文件。

在这里插入图片描述

在文件的最后部分找到 “含有绝对路径的内容”

在这里插入图片描述

含有绝对路径的内容更改为自己的 PDS 安装的位置(我安装在C盘下),否则运行 modelsim 时会报错,提示找不到相应的文件。

在这里插入图片描述

2 更改 example_design/bench/ddr3_tb 中的仿真文件

在这里插入图片描述

查看 ddr_test_top_tb.v 中对 test_ddr.v 例化的代码:

在这里插入图片描述

由于官方例程中将 free_clk 做了修改,让其直接 assign free_clk = ref_clk,并注释掉了 free_clk 端口,因此这里要把例化部分的 free_clk 端口删掉。

在这里插入图片描述

修改后如下:
在这里插入图片描述

3 例化 HMIC_S IP 注意事项

HMIC_S 1.4 IP多了 debug 调试的一些接口,debug 的一些接口必须配置才能够实现仿真运行。参考例化代码(demo10_HDMI_DDR3_OV5640_test):

在这里插入图片描述

4 总结

我们按照如上步骤修改后,即可正常仿真。同时当添加完仿真所需观察的信号后,我们可以将其另存为一个 .do 文件,这样在下次需要仿真时就可以省去查找和添加信号的时间。选择 File 后点击 Save Format 即可。

如果想对紫光同创DDR3 进一步学习,可以参考本专栏中的《基于紫光同创 FPGA 的 DDR3 读写实验》,内含3万字的详细讲解,以此抛砖引玉。

希望以上的内容对您有所帮助,诚挚地欢迎各位读者在评论区或者私信我交流!

微博:沂舟Ryan (@沂舟Ryan 的个人主页 - 微博 )

GitHub:ChinaRyan666

微信公众号:沂舟无限进步(内含精品资料及详细教程)

如果对您有帮助的话请点赞支持下吧!

集中一点,登峰造极。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChinaRyan666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值