为什么要联合仿真

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把很多主流的模块都已经告诉你了,尽情用吧。

打怪升级之modelsim联合仿真相关推荐

  1. FPGA学习之路—Vivado与Modelsim联合仿真

    Vivado与Modelsim联合仿真 笔者在学习FPGA过程中遇到了如何使用Vivado和Modelsim进行联合仿真的问题,特此记录. 首先确定版本 笔者Vivado用的是2018.3版本,先是随 ...

  2. vivado和modelsim联合仿真实现占空比1:15的分频

    上一讲我们看了偶数分频 vivado和modelsim联合仿真实现偶分频,只需要在clk计数到一半时进行翻转即可,这是占空比为50%的情况,如果占空比任意数值就需要重新设计 16需要从0计数到15=4 ...

  3. vivado和modelsim联合仿真实现偶分频

    首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件div6.v,代码来源于以下视频,稍作修改. 在复位时给输出信号clk6赋值为0,不然输出不确定 判断条件cnt为1 ...

  4. debussy和modelsim联合仿真配置

    debussy是一款十分强大的波形查看软件,乃FPGA调试必备杀器之一,下面介绍一下debussy和modelsim联合仿真的配置方法. 1.安装debussy和modelsim软件. 2.复制C:\ ...

  5. Quartus II与ModelSim联合仿真

    Quartus II与ModelSim联合仿真 目录 Quartus II与ModelSim联合仿真 一.创建新工程 二.创建新文件 三.配置ModelSim的路径 四.关联Test Bench文件 ...

  6. 超详细 quartus 新建工程 及 quartus 和 modelsim 联合仿真 以及 modelsim 的简易教程

    文章目录 一.新建工程 1. 新建工程 2. 添加源文件以及ip核并编译 添加代码文件 添加IP核 编译 3. 自动生成testbench文件并添加路径到工程中 生成testbench文件 添加tes ...

  7. simulink与modelsim联合仿真buck闭环设计

    simulink与modelsim联合仿真buck闭环设计 主电路用simulink搭建,控制电路完全有verilog语言实现(包括DPWM,PI补偿器) 适用于验证基于fpga的电力电子变换器控制, ...

  8. quartus和modelsim联合仿真详细教程

    利用quartus和modelsim联合仿真的功能,实现功能产生波形.详细步骤如下: 1.编辑verilog HDL语言 本次拟实现组合逻辑功能,其代码如下: 此为一组合逻辑电路,其原理图可在quar ...

  9. 关于Vivado和Modelsim联合仿真的爱恨情仇

    关于Vivado和Modelsim联合仿真的爱恨情仇 心路历程 版本对应 仿真设置 错误解决 关于使用modelsim查看状态转移图 心路历程 vivado自带仿真工具虽然可以使用,但是每一次修改代码 ...

最新文章

  1. 共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例
  2. GIT_服务器与本地环境构建
  3. oracle/PL/SQL编程(4)
  4. php 正则提取连续字母,PHP匹配连续的数字或字母的正则表达式
  5. 摄影测量学(第三版)_王佩军_考试复习资料
  6. 项目经理之我思员工能动性
  7. Python Unitest 自动化测试框架(V2.0)生成测试报告 发送邮件 excel用例数据驱动 接口自动化 Selenium 页面自动化 测试结果记录数据库
  8. 人工智能研究中心快递柜——代码分析十一
  9. Client-Initiated场景下的L2TP实验配置
  10. Ubuntu 复制文件报设备空间不足解决办法
  11. nginx的location匹配字段后斜杠的作用
  12. python实验日记
  13. redirectType=Found和redirectType=Permanent哪个是301哪个是302?
  14. HTTP请求OPTION方法
  15. 复合字面量(compound literals)详解
  16. 山东师范大学计算机专硕考研人数,考研高校就业和薪酬数据统计:山东师范大学...
  17. 制造业WMS仓库管理系统解决方案,规范化数字仓库管理
  18. 2023年社工工资多少钱一月 能领多少补贴
  19. .nomedia文件的作用
  20. 生肖迷宫之福娃吃蛋糕问题

热门文章

  1. 开元系统2.0框架平台
  2. 故障排查思路,有这篇文章就够了
  3. unity实现自转及公转
  4. 为什么我们要邀请孙老师来分享?
  5. 文明大爆炸服务器维护,《文明大爆炸》完整版萌新攻略来袭!
  6. 11月14日云栖精选夜读:轻松使用阿里云资源编排_方便你的API管理
  7. 【立创开源】基于N32/STM32物联网终端设备
  8. Android与电影
  9. 前端网页开发实例入门
  10. Hub control