如何用命令行的形式进行仿真及do脚本的使用(仿真工具使用技巧)【Modesim/Questasim】

简介: 如何用命令行的形式进行仿真及do脚本的使用(仿真工具使用技巧)【Modesim/Questasim】

一、写在前面


Modesim/Questasim是Mentor公司用来仿真VHDL/Verilog/Systemverilog的EDA工具,因其可以运行在Windows系统下,同时与各类FPGA的开发平台有较好的适配,所以是很多数字IC或FPGA初学者第一次接触到的仿真工具,但是简体中文互联网上对Modesim/Questasim的使用技巧的归类与整理不够详细,也不够准确,因此创作本前缀为【Modesim/Questasim】的系列文章,对此工具的使用技巧进行整理与归纳总结。

当然modesim/Questasim更多的是提供给FPGA/数字IC领域初学者的仿真工具,对于IC设计来说,真正工作环境使用到的更多的是VCS,也希望有志于从事数字IC领域工作的人员尽早地将环境转移到linux下的VCS上去进行熟悉


二、如何使用命令行进行仿真


本篇博客使用的设计文件和仿真文件依旧为【数字IC手撕代码】Verilog自动售卖饮料机|题目|原理|设计|仿真,其中包含一个有状态机的设计文件和一个仿真文件,有需要的读者可查看自行下载,本篇博客借助此设计与仿真文件进行命令行仿真的讲解。

2.1 vlib命令

打开Modesim/Questasim后,我们首先要在transcript中输入的命令是vlib命令,在我们正式开始仿真之前,我们需要一个libarary,目的是为了存储编译结果,对应的命令就是vlib,对应的GUI操作(图形化操作)是在主菜单上File > New > Library

vlib work


通过这个命令,我们创建了一个名为work的library来存储编译结果。


2.2 vmap命令(可选)

第二个可以输入transcript的命令为vmap命令,目的是将映射逻辑库名到指定的目录

vmap <logical_name> <directory_pathname>


2.3 vlog命令

vlog命令是用来编译Verilog文件的命令,对应于GUI操作的Compile > Compile

假如使用的文件不是Verilog格式,我们也有可能会使用vcom和sccom命令,其中vcom是用来编译VHDL文件的命令,sscom是用来编译System C格式文件的命令

image.png

vlog drink_machine_tb.v drink_machine.v


回车后Questasim会告诉我们编译的结果,如下图为例,Error:0,Warning:0,编译顺利通过。

image.png


2.4 vopt命令(可选)

vopt是用来优化仿真的命令,优化的目的是为了加快仿真,但是Modesim/Questasim的自动优化会使我们丢失掉信号波形,因此一般情况下我们不需要优化仿真,这个命令是不用输入的,这个命令对应的GUI操作为Simulate > Design Optimization


2.5 vsim命令

当我们完成编译后, 就需要使用vsim命令来将所需的仿真文件加载进仿真器了,这个命令对应的GUI操作作为Simulate > Start Simulation

vsim -gui -novopt work.drink_machine_tb


-gui意为图形化仿真,-novopt意为不对波形进行优化,work为library的名字,drink_machine_tb为顶层模块名

通过这个命令,我们顺利的打开了GUI仿真窗口

6aefe6c600e74ab7910936567b430bb5.png


2.6 开始仿真

将仿真文件装载进仿真器后,我们就可以开始仿真了,这个命令对应的GUI操作为 Simulate > Run


2.6.1 add wave命令

这个命令的主要作用是添加并设置波形

add wave drink_machine_tb/u1/*


add wave是添加波形的命令,drink_machine_tb是顶层模块名,通过u1一路向下延申,最后使用*来代表添加该级所有的信号,此操作过后,u1下面的所有信号都被添加到波形窗口中

image.png


2.6.2 run命令

这个命令的作用是进行一段时间仿真

run 100ns


当我们输入这个命令后,仿真进行了100ns,波形窗口出现了对应的波形

image.png


2.6.3 其他命令

image.png


2.7结束仿真

当我们进行完仿真需要退出时,可以使用如下的命令,仿真会自动结束

quit -sim


2.8 总结

image.png


三、do文件


我们也可以将以上的命令进行组合与挑选,写入.do文件,do文件是Modesim/Questasim可以识别的脚本文件

3.1 do文件案例

将以下的命令保存在文本文件中,后缀名改为“.do”放到设计仿真文件所在文件夹即可

## part 1: new lib
vlib work
vmap work work
## part 2: load design
vlog drink_machine_tb.v drink_machine.v
## part 3: sim design
vsim -novopt -gui work.drink_machine_tb
## part 4: add wave
add wave drink_machine_tb/u1/*  
## part 5: run  
run 100ns


3.2 运行do文件

3.2.1 GUI形式运行.do文件

依次选择File ——load——Macro File,最后选择所写.do文件即可

image.png


3.2.2 命令行形式运行.do文件

在transcript窗口键入以下命令,也可以开启脚本化仿真

do cmd.do


3.3.3 运行结果

Modesim/Questasim会按照脚本的内容一步一步的进行执行,新建工程,编译文件后,会加载100ns的波形

image.png


四、其他Modesim/Questasim使用技巧


如何在仿真窗口查看信号频率

如何设置“tab”键缩进数量

如何去除仿真时的信号前缀

如何设置一个清爽的仿真窗口

如何使用delta cycle来观察相同边沿的先后顺序

如何使用Modesim查看状态机状态跳转

如何用命令行的形式进行仿真及do脚本的使用


五、仿真工具的User Manual 下载


5.1 Modesim User Manual下载

点赞并关注作者,回复“Modesim”关键词即可获得下载链接


5.2 Questasim User Manual下载

点赞并关注作者,回复“Questasim”关键词即可获得下载链接

若是回复了没消息也可自取

2e6fe3cd89e343a89fb6feb4a9625d41.png

相关文章
|
10月前
|
机器学习/深度学习 SQL 算法
命令行上的数据科学第二版:十一、总结
命令行上的数据科学第二版:十一、总结
76 0
|
7月前
|
运维 监控 Linux
深入理解Linux系统运维:命令行与脚本的奥秘
【8月更文挑战第30天】在Linux的世界里,命令行是运维人员的灵魂之窗。掌握命令行,就像握住了一把钥匙,能开启系统管理的宝藏箱。本文将带你走进Linux的命令行世界,通过实际代码示例,解锁那些高效管理和维护系统的秘籍。你将学到不仅仅是命令本身,更是如何将这些命令编织成强大的脚本,让日常的运维工作变得游刃有余。准备好跟随我的步伐,一起深入探索Linux命令行与脚本的奥秘吧!
|
8月前
|
异构计算
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
FPGA新起点V1开发板(七-语法篇)——程序框架+高级语法(选择性做笔记)
|
9月前
|
Java Linux 网络安全
Linux常用50个命令分享:功能、示例与实用技巧
Linux常用50个命令分享:功能、示例与实用技巧
|
10月前
|
数据采集 存储 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 模拟波形的生成 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 模拟波形的生成 例程与相关资料
70 9
|
10月前
|
算法
LabVIEW开发仿真转矩加载系统
LabVIEW开发仿真转矩加载系统
44 0
|
10月前
|
存储 JSON Shell
进一步学习 nox 教程,轻松掌握命令行用法
进一步学习 nox 教程,轻松掌握命令行用法
81 1
|
10月前
|
缓存 算法 Python
【python实操】如何改善你的程序,让你的程序更快执行?
【python实操】如何改善你的程序,让你的程序更快执行?
76 0
|
uml C++
VS工具使用——代码图
引用: 《论语·卫灵公》中,子贡问为仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。”大概的意思是:子贡问怎样修养仁德。孔子说:“工匠要做好工作,必须先磨快工具。住在一个国家,要侍奉大夫中的贤人,与士人中的仁人交朋友。” 今天我将用我的工具——VS2013为大家介绍一下我对“工欲善其事,必先利其器”的理解。
154 0
|
Linux 异构计算 Windows
如何设置一个清爽的仿真窗口(仿真工具使用技巧)【Modesim/Questasim】
如何设置一个清爽的仿真窗口(仿真工具使用技巧)【Modesim/Questasim】
如何设置一个清爽的仿真窗口(仿真工具使用技巧)【Modesim/Questasim】