(转载)Modelsim10.2c使用教程(一个完整工程的仿真)-来自 宁河川
之前玩过Altera的板子,不不, 现在应该叫intel PSG。在QuartusII13.0上老喜欢用modelsim_ae做仿真,小工程用起来也方便,但是我做IIC配置摄像头的时序仿真时,就显得有些吃力,所以还是用modelsim_se才是正点。
以前老想用QuartusII和modelsim单独仿真,找了很多方法都没有实现,但看了一个前辈的视频后,一下改变了我的想法,光使用modelsim也可以完成一个工程的建立,而且在建立工程的时候将代码,仿真,和ip都分类管理,会更加方便后面的工程设计。我把我的做的笔记整理出来,介绍使用modelsim单独仿真。(还是modelsim_se用起来快。。)
一、 使用modelsim完成一个工程的仿真
双击打开modelsim se-64 10.2c
弹出如图所示界面
点击new——project——弹出如图所示界面
点击browse,选择你要将仿真工程建立的位置,这里再顺便提一下,工程的建立,在使用QuartusII13.0建立工程时,软件不会像vivado将工程代码仿真自动分类,所以作为一名合格工程师,首先是工程建立有序、明朗,不能乱糟糟。所以在添加文件的时候要将文件分类如下图所示
在这个工程中,分为四个文件夹IP core文件夹,专门放置需要调用的IP核,Dev工程文件夹,新建工程目录时写在里面即可,sim仿真文件夹,将仿真文件新建在其中,最后是src代码文件夹,将代码单独放在一个文件夹里,需要时可以进行再次细分。
如图所示,选择将新建的modelsim仿真文件添加到对应工程的sim文件夹下,然后点击确定
输入工程名,点击OK,注意仿真工程名尽量与待测试工程名一致,虽然不一致也不会有什么影响。
然后添加需要测试的文件
先将sim文件夹中的文件添加进来,
重复上面步骤,再讲scr工程中的文件添加进来
然后点击close完成操作
点击如图所示操作可以将文件进行编译查错,
然后选择tb文件,右键点击simulate without optimization
会弹出wave、objects、library、project等窗口
在transcript上输出命令,.main clear 可以进行清屏操作
输入run 200us可以是工程跑200us
输入restart是重新开始
点击sim窗口,右键点击可以add wave,添加波形
点击如图所示按钮,可以将信号变简
Ctrl A全选+Ctrl G将信号智能排序
然后在transcript中输入,.main clear可以清屏
输入run xxxus可以按你的要求让波形跑多少us s ms。
最后点击wave就可以查看波形
二、 添加新的文件进行仿真
当更改文件后,要重新添加文件进来,右键点击add project——>exiting file,找到文件添加进来,点击OK,重新编译。
输入.main clear清除当前窗口的内容
输入run200us + run 50us可以看出,仿真完全正确的。
三、使用modelsim打开曾经的工程
File——open——找到需要仿真工程对的sim文件夹——打开.mpf文件即可。
转载请注明出处:NingHeChuan(宁河川)
个人微信订阅号:NingHeChuan
如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号
知乎ID:NingHeChuan
微博ID:NingHeChuan
原文地址:https://www.cnblogs.com/lcq-manji/p/15154486.html
- ASP.NET Core知多少(6):VS Code联调Angular + .NetCore
- 线程安全知多少
- Parallel线程安全问题
- 厚土Go学习笔记 | 25. 函数值 函数是函数也是值
- GoStub框架使用指南
- 厚土Go学习笔记 | 24. map字典测试用例(文字出现次数统计)
- .NET Core+MySql+Nginx 容器化部署
- Trie树分析
- 厚土Go学习笔记 | 23. map字典的使用
- JDK动态代理的底层实现原理
- 冷场了吗?我带着phpcms9.6.2 注入来救场了
- 厚土Go学习笔记 | 22. 实现Pic
- ie8和chrome获取上传图片的宽度和高度等尺寸
- 厚土Go学习笔记 | 21. range用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- macbook-12-2015款 安装win10系统 自用 实践笔记
- OpenGL ES 之attribute
- windows server 2012 r2 搭建文件服务器 问题记录 自用 实践笔记
- OpenGL ES 之uniform和varying
- OpenGL ES 绘制纹理
- Win10+Unlocker3+VMware15.5+MacOS10.14+xcode+QT for ios+虚拟机苹果系统 自用 实践笔记
- OpenGL ES 纹理过滤模式-glTexParameteri
- Jenkins时间修改为北京时间
- OpenGL ES for Android 绘制一个点
- OpenGL ES for Android 绘制线
- Jenkins自定义主题
- OpenGL ES for Android 绘制三角形
- Centos7 安装 Tomcat8 的正确姿势 并设置开机自启 实践笔记
- ASP.NET Core 使用 Google 验证码(reCAPTCHA v3)代替传统验证码
- Centos7 安装 Tomcat8 伪集群 的正确姿势 并设置开机自启 实践笔记