Modelsim使用指南

本文讲述Modelsim的使用步骤.

添加一个测试文件,比如modulename.v。

编辑这个Verilog模块。

为了方便讲述,顶层模块名命名为“top”。

Modelsim的参考文档可从:Help > PDF Documentation >选择下载。

1. 设置

如同之前建议的文件组织结构所述,条理清晰的目录会给设计带来很多方便。建议建立一个文件夹,包含以下子文件夹:

l  hdl/    硬件的Verilog设计文件

l  simulation/ Modelsim相关文件

l  synthesis/  Quartus相关文件

l  testbench/  Verilog测试文件

运行SystemBuilder建立一个Quartus工程。顶层模块的设计文件放到hdl/目录下,其他文件放到synthesis/目录下。

2. Modelsim的操作步骤

1.   从开始菜单或桌面快捷方式打开Modelsim。

2.   Modelsim会自动打开上一次的工程。如果不新建工程,跳过第4步。

3.   Simulate > Runtime Options… > Defaults 标签 > Default Radix:binary 这样波形以二进制的形式显示。

4.   File > New > Project …

a)   输入工程名:top。

b)   打开simulation/目录。

c)   缺省的库名用“work”。

d)   单击“Reference Library Mapping”

e)   单击OK.

f)   弹出Add items to the Project窗口

i.      单击Add Existing File(添加硬件设计的Verilog文件)

ii.      Browse …切换至hdl/目录,选中所有的*.v的文件,单击Open

iii.      单击Reference from current location

iv.      单击OK

g)   Add Existing File(添加Verilog测试文件)。把testbench/目录里的测试文件添加到当前工程。

h)   Close

i)   现在在窗口可以看到所有的文件。

5.   若稍后要添加更多的*.v文件。在Project窗口右击 > Add to Project > Existing File …

6.   Compile 〉Compile All …

7.   如果有错误信息提示,双击红色的错误信息,查看问题所在。

8.   Simulate > Start Simulation > 弹出仿真窗口

a)   单击work前的+

b)   单击测试文件top_tb

c)   OK

9.  如果没有看到波形窗口,View > 选择Wave

10.  在窗口左边,单击底部的sim标签,选中测试文件拖拽到波形窗口,这样就把所有的信号添加到波形窗口。

11. Simulate > Run > Run –All(也可用工具栏的按钮).

12. 右侧的窗口会在底部有好几个标签页:Wave和测试文件*.v.单击Wave标签。

13. 按下f键把波形缩放至全屏,或者右击波形窗口,选择相应的缩放项。

14. 右击波形窗口里的信号名,选择合适的Radix便于观测。

15. 如果某些信号没有在波形窗口出现,或者模块修改之后,需要重新仿真。

a)   Simulate > Restart

b)   选择全部。

c)   OK

d)   Simulate 〉Run〉Run –All

e)   如果修改了设计,需要先重新编译,在Project页,右击问号图标的文件,选择Compile out-of Date,然后再执行Compile All,变成绿色的勾后,执行d).

References

1.A Guide for Using Modelsim. EEC 180 • UC Davis • B. Baas . https://www.ece.ucdavis.edu/~bbaas/180/tutorials/modelsim.guide.pdf

Written by YongfengXie

2022/5/25 Written

Modelsim使用指南的更多相关文章

  1. FPGA/SOPC学习转载

    转自小時不識月http://www.cnblogs.com/yuphone/archive/2010/08/27/docs_plan.html 新网址为:http://andrewz.cn [连载计划 ...

  2. 用ModelSim仿真SDRAM操作

    之前写了两篇关于Modelsim仿真的blog,其中模块管脚的命名可能让人觉得有些奇怪,其实不然,之前的两篇内容都是为了仿真SDRAM操作做铺垫的. 由于SDRAM的仿真过程相对比较复杂,也比较繁琐. ...

  3. modelsim脚本文件的编写

    第一章 ModelSim介 绍 本指南是为 ModelSim5.5f版本编写的,该版本运行于UNIX和Microsoft Windows 95/98/Me/NT/2000的操作系统环境中.本指南覆盖了 ...

  4. modelsim使用命令

    1. 常用仿真命令 vlib work    // 建立work仿真库 vmap work wrok   // 映射库 vlog   -cover  bcest  *.v    // 加覆盖率分析的编 ...

  5. 【黑金原创教程】【Modelsim】【第一章】Modelsim仿真的扫盲文

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  6. (转)新手学习System Verilog & UVM指南

    从刚接触System Verilog以及后来的VMM,OVM,UVM已经有很多年了,随着电子工业的逐步发展,国内对验证人才的需求也会急剧增加,这从各大招聘网站贴出的职位上也可以看出来,不少朋友可能想尽 ...

  7. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  8. UE4新手之编程指南

    虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...

  9. JavaScript权威指南 - 对象

    JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...

  10. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

随机推荐

  1. nginx 自定义日志格式输出

    修改 nginx.conf 自定义日志格式.路径 log_format my_format '$remote_addr $msec $http_host $request_uri'; 使用精准配准,对 ...

  2. KingbaseES V8R6数据库运维案例之---用户权限导致的备份恢复故障

    案例说明: 由于限制了用户对数据库的访问,导致在执行'sys_backup.sh init'初始化物理备份时,执行失败. 适用版本: KingbaseES V8R6 一.问题现象 如下所示,执行'sy ...

  3. KingbaseESV8R6中查看索引常用sql

    前言 KingbaseES具有丰富的索引功能,对于运行一段时间的数据库,经常需要查看索引的使用大小,使用状态等. 尤其重复索引的存在,有时会因为索引过多而造成维护成本加大和减慢数据库的运行速度. 下面 ...

  4. KingbaseES 函数与存储过程内容加密

    说明: 数据库系统使用过程中,有些业务功能在特殊的安全级别情况下,需要对数据库中的函数和存储过程进行加密存储,以保证数据库函数和过程的代码安全性.KingbaseES 数据库,提供了DBMS_DDL扩 ...

  5. MVC架构设计浅析(WEB网页开发)

    MVC架构设计浅析 杨传伟 (石家庄铁道大学信息科学与技术学院,河北省,石家庄市,050043) 摘 要:本文以图书管理系统为案例(当前主流框架SpringMVC的原理来分析MVC的设计理念等),深入 ...

  6. HTTP长连接和短链接代理与网关

    长连接和短链接 代理与网关 HTTP/)服务器端网关:网关与客户端使用HTTP协议通信,使用其他协议与服务端通信 (/HTTP)客户端网关:网关与客户端使用其他协议通信,使用HTTP协议与服务端通信 ...

  7. #排列组合#CF1550D Excellent Arrays

    洛谷传送门 CF1550D 分析 对于excellent的 \(a\) 来说 \(|a_i-i|=x\) 的值是固定的,考虑枚举它 一半正一半负时函数值是最大的,当 \(n\) 为奇数时要分为两种情况 ...

  8. #树形dp#洛谷 1272 重建道路

    题目 给出一个大小为 \(n\) 的树, 问至少断掉多少条边使得存在一个大小为 \(m\) 的连通块 \(n\leq 150\) 分析 设 \(dp[x][s]\) 表示以 \(x\) 为根的子树至少 ...

  9. #线段树,组合计数,二项式定理#CF266E More Queries to Array

    洛谷传送门 CF266E传送门 分析 首先区间修改区间查询首选线段树 要找突破口,\((i-l+1)^k\)中\(i\)不是定值, 显然得拆开,而且\(k\)很小,根据二项式定理, \[\sum_{i ...

  10. #贪心,树#C 平衡的树

    分析 处理出子树内剩余删减以及最大的剩余\(a\)和, 如果删了还是超过\(b\)输出无解 代码 #include <cstdio> #include <cctype> #de ...