ModelSim 使用笔记1
ModelSim 使用笔记1
ModelSim提供了简单仿真方式,还有一种要建立project,目前这种方式暂时够我用了。
总结了以下,做了一个简单的《modelsim quick start》。
简单方针模式下面,操作步骤如下(黄色字符部分为每个操作对应的script指令,打开modelsim软件,在script窗口输入这些指令即可):
1.新建library。“file->new->library"。选择library种类为“Create: a new library and a logical mapping to it”。
vlib newlib
vmap newlib newlib
2.compile所有的源程序。"compile->compile"在弹出对话框选择要编译的源文件即可。compile所有的源程序之后,会将这些编译后的文件全部添加到新建的Library中去。
VHDL程序使用:vcom -work newlib sourcecode.vdl
Verilog程序使用:vlog -work newlib sourcecode.v
(A:源文件编译的前后顺序,对结果没有影响. B:如果前面使用的newlib名字是work,则不许要在这里指定工作lib。)
3.loading module到simulator里面。点击work左侧“+”号,展开lib,双击我们要观察的module。此时,会有signal窗口弹出(窗口标题是vsim)。
vsim lib_name.module_name
(ATT:可能会因为vopt的缘故使得一些不重要signal被modelsim自动忽略,需添加选项 -novopt,即,vsim -novopt module_name)
4.调整窗口,准备调试。“view->..."来打开想要观察的window。(如果wave,signals等窗口都在,就不用执行这一步了)
view signals source wave
add wave -r /*
add signal_name 添加单个信号到wave窗口
6.点击run快捷按钮或者是,simulate->run,开始仿真
run 500(运行500单位时间)
run @ 3000(特定时刻观察)
run -all (运行,直到testbench定义的stop时间)
7.可以使用breakbutton来终止run,“simulate->break”
break
8.设置断点,直接单击要设置断点行的左侧 (不是所有行都可以设置断点,不同版本软件下自行实验)。
当程序停止在设置的断点上时,通过以下方法查看变量值:
1)在signal window里面直接看变量的值
2)在source window里面,鼠标指针停留在变量上面时,会自动显示该变量的值(不确定是否全部版本都有)。
3)在source window里面,右键examine。
4)使用examine命令。在script窗口输入“examine var”
9.wave观察
观察一个数组时,可以选择用二进制,十进制,十六进制,还可以设置有符号无符号。
还可以把它转化为analog方式,如调试一个供da使用sine输出,可以选择用analog方式来查看dout。
Extra topic:compile the ISE standard lib for modelsim SE:
$ise_install_path/ise/bin/lin64/compxlibgui(compxlib is available for cmdline only)
ATT: u'd better run it as root.
2. Copy compiled libs from modelsim XE.
3. compile the library in modelsim.
cd $modelsim_install_path/
mkdir ise_lib
cd ise_lib
mkdir unisim_ver
vlib unisim_ver
vmap unisim_ver unisim_ver
vlog -work unisim_ver $ise_install_path/ise/verilog/src/unisim/*.v
(source code for VHDL is in another dir)
Do such for all libs.
u need to modify the modelsim.ini before using the lib:
add the flowing context(before[vcom]):
simprim = $MODEL_TECH/../ise/simprim
xilinxcorelib = $MODEL_TECH/../ise/xilinxcorelib
cpld = $MODEL_TECH/../ise/cpld
secureip = $MODEL_TECH/../ise/secureip
unimacro = $MODEL_TECH/../ise/unimacro
cpld_ver = $MODEL_TECH/../ise/cpld_ver
simprims_ver = $MODEL_TECH/../ise/simprims_ver
uni9000_ver = $MODEL_TECH/../ise/uni9000_ver
unimacro_ver = $MODEL_TECH/../ise/unimacro_ver
unisims_ver = $MODEL_TECH/../ise/unisims_ver
xilinxcorelib_ver = $MODEL_TECH/../ise/xilinxcorelib_ver
=========================分割线=================================
其他一些零碎:
1.在当前工作目录下,会产生一个名为transcript的文本文件,里面记录了你在modelsim中的所有操作。
无论在哪里做什么,只要坚持服务、创新、创造价值,其他的东西自然都会来的
ModelSim 使用笔记1的更多相关文章
- Modelsim使用笔记(一个完成工程的仿真)
这学期在玩Altera的板子,不不, 现在应该叫intel PSG.在QuartusII13.0上老喜欢用modelsim_ae做仿真,小工程用起来也方便,但是我做IIC配置摄像头的时序仿真时,就显得 ...
- lattice 与 modelsim 仿真 笔记
对于 lattice Diamond 与 modelsim 的联合仿真,我总结了一句话,那就是—— 难者不会,会者不难. 也许刚开始 觉得 摸不着 头脑,但是 一旦学会 感觉还是很简单和直观的. ...
- 易懂的modelsim学习笔记
1. 建一个总文件夹,如cnt2. 为源代码,测试台文件,仿真各建一文件夹.如src,tb,sim3. 编写源代码,testbench.如cnt.v,tb_cnt.v文件,同时文件名里的模块名与文件名 ...
- 基于脚本的modelsim自动化仿真笔记
这里记录一下基于脚本的modelsim自动化仿真的一些知识和模板,以后忘记了可以到这里查找.转载请标明出处:http://www.cnblogs.com/IClearner/ . 一.基本介绍 这里介 ...
- [笔记]Modelsim系列01:编译Altera库的方法
意义:一劳永逸,不用每次对那些包含Quartus II生成文件的工程进行功能仿真时,都需要重新编译一堆东西.节约时间成本. 版本:ModelSim SE 6.5d 打开Modelsim软件,默认会打开 ...
- Lattice 的 Framebuffer IP核使用调试笔记之IP核生成与参数设置
本文由远航路上ing 原创,转载请标明出处. 这节笔记记录IP核的生成以及参数设置. 先再IP库里下载安装Framebuffer 的ipcore 并安装完毕. 一.IP核的生成: 1.先点击IP核则右 ...
- VCS使用学习笔记(0)——写在前面的话
由于毕业设计做的是数字IC相关,虽然不是纯设计,但是也有设计相关.有设计就要有仿真验证,我就趁此机会来学习一下VCS的使用吧.当然,这里只是学习其简单的逻辑仿真功能,从波形仿真到覆盖率等,基本上不涉其 ...
- 搭建Modelsim SE仿真环境-使用do文件仿真
本章我们介绍仿真环境搭建是基于Modelsim SE的.Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera ...
- Modelsim SE 破解教程
第一步:打开我们提供的破解工具包. 第二步:拷贝crack.bat和MentorKG.exe到"C:\modeltech64_10.2c\win64"路径下,如果你的电脑为32位, ...
随机推荐
- NOIP 2015 跳石头
题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石(不 ...
- SD 一轮集训 day3 染色(color)
蜜汁打表题.. (首先L=1和L=N的情况过于傻逼(而且是特殊情况),可以先写出来,然后剩下的L的做法在下面) 首先你要写一个打表程序,找出{1,2,....,n} 乘若干个 循环唯一的轮换可以搞出的 ...
- 【bzoj1370】【团伙】原来并查集还能这么用?!
(画师当然是武内崇啦) Description 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一 ...
- Problem B: 调用函数,求1!+2!+3!+......+10!
#include<stdio.h> double fact(int i); int main() { int i; ; ;i<=;i++) sum=sum+fact(i); prin ...
- oop 知识点回顾
1.抽象,封装 2.继承:连接类的层次模型,并且允许类的重用,提供共性的方法,从现有的类派生(方法的重写,扩展) 派生:新类继承了基类,那么新类就是派生类,适合更合适的需要 3.多态:允许不同的类的对 ...
- PHP超全局变量$_ENV详解,及$_ENV为空的可能原因
PHP中的$_ENV存储了一些系统的环境变量,因为牵扯到实际的操作系统,所以不可能给出$_ENV的完整列表. $_ENV为空的可能原因: 你的php.ini的variables_order值为&qu ...
- 深入了解JavaScript权威指南
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删.JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等.JavaScript对象除了可以保持自有的 ...
- ZK的数据结构特点
ZK的数据结构特点 ZooKeeper这种数据结构有如下这些特点: 1. 每个子目录项如NameService都被称作znode,这个znode是被它所在的路径唯一标识,如Server1这个znode ...
- 【spring boot】4.spring boot配置多环境资源文件
一个spring boot 项目在开发环境.测试环境.生产环境下,好多的配置都是不尽相同的.所以配置多分的资源文件,仅仅在部署在不同环境的时候,选择激活不同的资源文件就可以实现多环境的部署. 项目结构 ...
- 一些WCF DS 的资料(参考)
0.WCF DS 官方博客:http://blogs.msdn.com/b/astoriateam 1. 官方博客: 如何使用WCF DS5 由于V5 的程序集单独出来了! (How to ...