modelsim波形仿真的新手问题

1、实验目的

在刚接触modelsim时,被其繁复的操作流程所困,一度只能依靠在quartus中修改代码编译后再重启modelsim,自动导入才能得到波形。这样的操作最大的问题就是修改代码的成本巨大。每次更新波形的时间在5分钟左右。为此,通过不断地学习,终于将波形仿真的各个事项了解清楚。这里做一下记录,方便以后回顾。

2、实验操作

①纯modelsim的verilog仿真

一般来说,前仿真是不需要器件的。如果使用了IP核就另论。这里先通过纯modelsim仿真了解modelsim的工作目录的结构,为后面的联合仿真的刷新提供基础。

这里直接使用图片集描述:

这个操作感觉意义不大,在新建工程中也也可以创建library。

这个可以添加project和library,构建设计平台。

然后进入project窗口,这个窗口就是用于编辑工程的,具体操作在前面的一篇关于modelsim的操作中有,这里不具体说明。

添加本地文件和编译都在右击中。接下来转到library界面,就在上图的左下角的library中。

进入仿真阶段。这是后会自动出现sim界面。(还是在左下角可以看到)

这里是没有波形的,需要手动添加观测信号。

这里的wave是暗的,为什么?可以看到sim的亮线指在sim_capacity上,而非mux2_tb上,导致没有可以选择的观察信号。同理,如果指向其他的地方,被选择的观察信号可能是别的模块,比如被测模块。如果两个模块有同名变量且没有连接,那就可能出现多个同名不同值的波形。(这里值得注意,但凡是右击,都要确定光标所在,否则容易出错)

正确地添加信号后会出现wave(有些是浮动的,有些是嵌入的)

有信号名,但是没有波形。这里出现的问题是没有运行。光开显示器不开主机,有啥子用。运行的快捷键在运行时间的右侧,三种方式。第一个是正常运行,第二种是继续(一般有stop系统函数的时候使用较多,第三个一直运行。运行时间的位置比较明显,就是一堆快捷键中的数字输入框。

这是初始的波形,显然看着不爽。调整波形的常用按键:

基本上掌握这三个键基本的功能就可以使用了。放大缩小也重要,但是一看就知,这里就不说明了。

基于软件的顺序逻辑,如果想要修改Verilog源文件,就要关闭工程,修改文件,保存文件、保存文件、保存文件,然后再编译。重要的事情说三遍。modelsim的编译是不会提醒文件是否保存的。一定要自己保存,否则,你得到的一直是修改前的文件编译结果。

②基于联合仿真的波形修改

通过几次实验,发现使用重新启动编译的话,如果使用软件操作的话还不如直接重启后在启动联合仿真。比较合理的方法是使用现成的脚本,也就是联合仿真时的.do文件。在控制台再执行一次即可。

3、实验结果

基本了解了modelsim的波形仿真的基本操作。但是对于联合仿真的修改还是比较费时间,毕竟要编译库。不想记住的也可以重启,反正差别不大。联合仿真中会生成可执行工程文件,这个相当于一个快捷方式。这里说明一下。

modelsim常用操作之波形仿真的更多相关文章

  1. Modelsim的使用——复杂的仿真

    相对于简单的仿真,复杂的仿真是指由多个文件.甚至调用了IP核.使用tcl脚本进行的仿真.其实仿真步骤跟图形化的差不多,只不过每一步用脚本写好,然后再在软件里面run一下,主要过程就是: 1.准备好各种 ...

  2. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  3. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  4. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  5. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  6. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

  7. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

  8. python 异常处理、文件常用操作

    异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm

  9. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  10. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

随机推荐

  1. STC12C5A56S2和DS12C887做的电子闹铃

    配件信息 控制器: STC12C5A56S2 定时芯片: DS12C887 显示: 4位0.56寸数码管 其它: 无源蜂鸣器, 三极管S9012, 电阻10K*2, 100*1, 电容30p*2, 1 ...

  2. 全排列II

    全排列II 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 题解 /** * @param { ...

  3. 全流程点云机器学习(一)使用CloudCompare自制sharpNet数据集

    前言 这不是高支模项目需要嘛,他们用传统算法切那个横杆竖杆流程复杂耗时很长,所以想能不能用机器学习完成这些工作,所以我就来整这个工作了. 工欲善其事,必先利其器,在正式开始之前,我们先要搞懂如何切分数 ...

  4. 使用Java语言搭建一个简易的局域网直播(live)系统

    演示一下 由于是局域网直播系统,那么最简单的情况应该也有两部分构成:录制直播和播放直播. 录制直播 录制直播使用的是本机的摄像头和麦克风,使用Java自带的JFrame窗口播放,支持音视频的录制.效果 ...

  5. win32 - 匿名管道的使用

    目标: 创建一个父进程和子进程,在子进程的控制台窗口输入数据,数据通过管道发送给父进程,父进程的控制台窗口读取数据,最后将数据打印出来. Parent.cpp //CMD.exe #include & ...

  6. 类型注解Callable

    from collections.abc import Callable """ Callable[[ParamType1, ParamType2], ReturnTyp ...

  7. 在矩池云安装使用PaddleHub 和 PaddlePaddle

    之前在安装 PaddleHub 导入的时候遇到各种错误,不是这个包没这个模块,就是哪个包没这个属性 ...很头痛,网上也没有 PaddleHub 和 PaddlePaddle 对应的版本,只能自己慢慢 ...

  8. Gitlab 16.9.0 用Access Token注册Gitlab Runner

    升级到当前最新版Gitlab之后 在"管理中心"的"CI/CD"--"Runners"下,提示以前的那种注册令牌的方式已经过时了. 点击右上 ...

  9. 用容器部署Nexus 3作为Nuget和Docker的仓库

    1.准备docker-compose的配置文件 version: '3' services: nexus: image: 'sonatype/nexus3:3.42.0' container_name ...

  10. HttpClient实现https调用

    在HttpClient 4.x版本中引入了大量的构造器设计模式 https请求建立详解 首先建立一个信任任何密钥的策略.代码很简单,不去考虑证书链和授权类型,均认为是受信任的: class AnyTr ...