打怪升级之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把很多主流的模块都已经告诉你了,尽情用吧。
打怪升级之modelsim联合仿真相关推荐
- FPGA学习之路—Vivado与Modelsim联合仿真
Vivado与Modelsim联合仿真 笔者在学习FPGA过程中遇到了如何使用Vivado和Modelsim进行联合仿真的问题,特此记录. 首先确定版本 笔者Vivado用的是2018.3版本,先是随 ...
- vivado和modelsim联合仿真实现占空比1:15的分频
上一讲我们看了偶数分频 vivado和modelsim联合仿真实现偶分频,只需要在clk计数到一半时进行翻转即可,这是占空比为50%的情况,如果占空比任意数值就需要重新设计 16需要从0计数到15=4 ...
- vivado和modelsim联合仿真实现偶分频
首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件div6.v,代码来源于以下视频,稍作修改. 在复位时给输出信号clk6赋值为0,不然输出不确定 判断条件cnt为1 ...
- debussy和modelsim联合仿真配置
debussy是一款十分强大的波形查看软件,乃FPGA调试必备杀器之一,下面介绍一下debussy和modelsim联合仿真的配置方法. 1.安装debussy和modelsim软件. 2.复制C:\ ...
- Quartus II与ModelSim联合仿真
Quartus II与ModelSim联合仿真 目录 Quartus II与ModelSim联合仿真 一.创建新工程 二.创建新文件 三.配置ModelSim的路径 四.关联Test Bench文件 ...
- 超详细 quartus 新建工程 及 quartus 和 modelsim 联合仿真 以及 modelsim 的简易教程
文章目录 一.新建工程 1. 新建工程 2. 添加源文件以及ip核并编译 添加代码文件 添加IP核 编译 3. 自动生成testbench文件并添加路径到工程中 生成testbench文件 添加tes ...
- simulink与modelsim联合仿真buck闭环设计
simulink与modelsim联合仿真buck闭环设计 主电路用simulink搭建,控制电路完全有verilog语言实现(包括DPWM,PI补偿器) 适用于验证基于fpga的电力电子变换器控制, ...
- quartus和modelsim联合仿真详细教程
利用quartus和modelsim联合仿真的功能,实现功能产生波形.详细步骤如下: 1.编辑verilog HDL语言 本次拟实现组合逻辑功能,其代码如下: 此为一组合逻辑电路,其原理图可在quar ...
- 关于Vivado和Modelsim联合仿真的爱恨情仇
关于Vivado和Modelsim联合仿真的爱恨情仇 心路历程 版本对应 仿真设置 错误解决 关于使用modelsim查看状态转移图 心路历程 vivado自带仿真工具虽然可以使用,但是每一次修改代码 ...
最新文章
- 共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例
- GIT_服务器与本地环境构建
- oracle/PL/SQL编程(4)
- php 正则提取连续字母,PHP匹配连续的数字或字母的正则表达式
- 摄影测量学(第三版)_王佩军_考试复习资料
- 项目经理之我思员工能动性
- Python Unitest 自动化测试框架(V2.0)生成测试报告 发送邮件 excel用例数据驱动 接口自动化 Selenium 页面自动化 测试结果记录数据库
- 人工智能研究中心快递柜——代码分析十一
- Client-Initiated场景下的L2TP实验配置
- Ubuntu 复制文件报设备空间不足解决办法
- nginx的location匹配字段后斜杠的作用
- python实验日记
- redirectType=Found和redirectType=Permanent哪个是301哪个是302?
- HTTP请求OPTION方法
- 复合字面量(compound literals)详解
- 山东师范大学计算机专硕考研人数,考研高校就业和薪酬数据统计:山东师范大学...
- 制造业WMS仓库管理系统解决方案,规范化数字仓库管理
- 2023年社工工资多少钱一月 能领多少补贴
- .nomedia文件的作用
- 生肖迷宫之福娃吃蛋糕问题