打怪升级之modelsim联合仿真

为什么要联合仿真

Quartus工程联合modelsim的仿真主要任务是将Quartus中的一些IP核也配置到modelsim中去,这样写出来的东西才方便。

准备好你的工程文件

如题,tb文件和v文件,以及相应的工程文件都要自己准备,在Quartus下做到能够通过编译这一步就可以开始仿真了。

配置库文件

无论你是用modelsim SE(官方),还是modelsim-altera(altera公司给modelsim打的补丁),在你实际运行联合仿真之前,都需要配置好库函数(这往往对小白来说比较困难)。
配置库函数的主要目的在于将FPGA公司推出的各类预编译完成的代码加载到库函数中去,避免单独仿真的时候没有对应器件的文件。当你的库函数文件配置好时,你可以直接用modelsim建立工程仿真(altera的所谓联合仿真一点也不联合,就是altera公司的各类代码而已,本质上就是modelsim本身)。
配置库函数的方法为:
1.确定你想要的库所在的位置和名字,你可以使用modelsim下的file->change_directory(在编译前)改变你新建库函数的地方(modelsim公司的屎一样的UI设计,你在new library的时候指定一个路径不行么),然后new一个library(如果是添加到一个新库,需要带上mapping)。
2.将器件库编译进去。搞定第一步之后用compile指令编译对应的v文件,编译完成的v文件会被library记住,你下次进来它还在,除非你主动删它(所以library就跟个垃圾站似的,diss modelsim公司好好学学人家git的程序管理方式,工程管理搞得又臭又长)。具体来说,altera家的器件库位置在quartus\eda\sim_lib文件夹里面。不论你是用vdh语言,还是v语言(反正就是那些个模块)编译到你在第一步指定的library中去。也就是你选择compile,然后直接选中你的器件库里的各类v文件,注意这里modelsim公司把library就直接放在选择界面上了(真是屎一样的GUI),你一步要做两步的活,记得把你的模块编译到你指定的library里面去。完成这一步之后,你就可以愉快的开始编程了。

PS:compile就直接compile就行了,出了问题就直接去源代码里找对应行哪里出错。这一步只会判断你的语法问题的,你语法没问题,器件模块能正常编译通过就行。如果你引用的器件模块有什么离谱的你不知道的函数或者引用的话,根据报错的内容,找找对应语句的意思。相信我,Verilog只有那么些关键词,函数也就那些,你总能搞明白的,一般都是编译环境的错误。

最后提醒一点:很多所谓联合仿真的错误,各种缺包什么的,搞得挺唬人,实际上就是你library里没有对应得模块而已。你找到你引用的别人模块的source文件(这个,大家起名字的方式千奇百怪,你得百度一下或者怎么样,就百度“器件库位置”),然后把这些source文件在library里编译一遍,好了,这就算你环境配置好了。

testbench

在Quartus的processing->start->start test bench template writer下生成testbench文件,在你工程文件夹下的simulation->modelsim文件夹之中(testbench是一个VT文件)。

接下来,你添加testbench到Assignments->settings->simulation界面中的compile test bench中添加路径,一般文件名为你的文件模块名后缀_vlg_tst,添加路径时将模块名和路径写全再test bench name 和file name 的省略号上,并点击add添加。

联合仿真

再Quartus中添加modelsim路径,或者如果你使用得是modelsim-alter得话,添加其到你的联合仿真路径之中。具体添加方式为:tools->options->EDA tool option栏目下找到对应文件写入路径。
在你生成testbench的时候,在工程文件夹下会自动生成一个新的目录叫simulation->modelsim,在此目录下,会有一个.vt文件。这是一个Quartus自动生成的标准tb文件,可以用它来直接写对应的测试程序。

在你完成了testbench的配置,并合适的关联了modelsim和quartus之后(其实主要就是用quartus自动生成一定的IP核来让modelsim识别并使用)直接tools->run simulation tool->rtl simulation就可以使用了,他会将你的testbench文件和对应的源文件添加到modelsim中,你可以直接开始仿真。

FIFO读取实验举例

下图是FIFO例化后的联合仿真实例:
在这里插入图片描述可以看到成功的引用了altera内部的IP核FIFO,完成了联合仿真。fifo是altera给你写好了的模块,用就是了。
实际上altera把很多主流的模块都已经告诉你了,尽情用吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

考琪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值