一、do脚本实现自动化仿真

  Modelsim是支持命令的,我们可以用 .do 文件将这些命令先写好然后在Modelsim上调用。因为我的编辑器不支持.do的语法,所以这里改用 .tcl文件,它和 .do 的使用是没有任何区别的。

1. 我习惯设置一个test文件夹,里面放着仿真文件 XX_tb.v,然后在这test文件夹里放一个sim文件夹,在此文件夹内新建一个sim.tcl文件,这样后面的工程和乱七八糟的文件都在内部的sim文件夹里。

2. 在sim .tcl文件里写好以下代码,这些代码建议保存或制作成代码片段,以后只需要稍微改一改就能用。

 # ========================< 清空软件残留信息 >==============================

 # 退出之前仿真
quit -sim # 清空信息
.main clear # =========================< 建立工程并仿真 >=============================== # 建立新的工程库
vlib work # 映射逻辑库到物理目录
vmap work work # 编译仿真文件
vlog ./../*.v # 编译设计文件
vlog ./../../rtl/*.v # 无优化simulation *** 请修改文件名 ***
vsim -novopt work.fsm_tb # =====================< 状态机名称,不用请删除 >============================= # 结构体设置
virtual type {
{'b0001 S0}
{4'b0010 S1}
{'b0100 S2}
{4'b1000 S3}
} fsm_type; # 结构体和信号名关联,命名为state_name
virtual function {(fsm_type)/fsm_tb/u_fsm/state} state_name # ============================< 加载波形 >================================= # 添加波形,高度30,以unsigned格式显示 *** 请修改路径名 ***
add wave -height -radix unsigned /fsm_tb/u_fsm/* # 清空信息
.main clear # 跑完
run -all

3.打开Modelsim,点击 Files --- Change Directory ,找到刚刚那个 tcl 文件所在的文件夹。

4.在Transcript窗口输入 do sim.tcl,敲击Enter回车键。现在Modelsim就会自动帮你工作啦!

ps:

1.如果你的文件夹结构设置的和我一样,而且testbench文件命名为:XX_tb.v,里面例化的名称为 u_XX ,那么以后只需要将上述代码的 fsm 以"不匹配全词"方式替换成XX即可,当然手动修改也是很方便的,毕竟只要改2处地方即可。

2.这样操作在Project区域是空白的,那我们改了代码后怎么编译调试呢?在Library里找到模块用鼠标右键选择编译即可,和在Project里编译是一样的效果。然后在波形那restart一下重跑就行了。

二、利用do文件保存波形

  变好颜色,设置显示格式,定位时间点,终于看到想要的漂亮波形啦!这时按Crtl + S 保存当前状态为wave.do,路径为默认路径。关闭软件,走人!下次想再看到之前的费了半天调好的漂亮波形,只需要这样做:

1.在你刚刚那个工程的文件夹,出现一个vsim.wlf文件和刚刚保存的wave.do文件。我们双击vsim.wlf,Modelsim就打开了,并且定位到了之前的文件夹,也打开了sim区域,但是没有波形。

2.如果你在sim区域选中模块右键点击add wave,那么波形出现了,却不是你之前的那个漂亮波形,所以我不建议这么做。你应该在做完上面第1步后直接在Transcript输入:do wave.do,按Enter回车键。噔噔噔噔,原来的波形回来了!

三、用bat命令直接运行Modelsim

  如果你懒得连Modelsim都不想打开,那可以试试 .bat文件的操作。

1.在 sim.tcl文件边上新建一个 <新建文本文档.txt> 文件,里面写好下面的的代码然后保存。注意第4行需要和你的 .tcl 文件名称保持一致。

::请按任意键继续...
pause ::打开Modelsim并执行do sim.tcl
vsim -do sim.tcl

2.将刚刚那个 <新建文本文档.txt> 文件重命名为 <点我仿真.bat> 文件

3.打开这个bat文件,按任意键,电脑自动打开Modelsim自动仿真出波形了!

Modelsim——do脚本、bat命令的更多相关文章

  1. 直接用bat命令对Inno Setup的脚本文件.iss进行编译

    直接用bat命令对Inno Setup的脚本文件.iss进行编译 2010-06-17 15:17 qjn0059 | 浏览 2163 次 编程语言外语学习 分享到:   2010-06-29 11: ...

  2. sqlserver2008数据库自动备份的sql脚本及使用bat命令执行脚本

    -----sql脚本 declare @fileName varchar(255) ,--定义备份文件名变量         @dbname varchar(255)--定义备份数据库名变量decla ...

  3. penghui_031413 Bat命令学习

    penghui_031413   Bat命令学习 基础部分:====================================================================== ...

  4. bat(批处理)命令(tomcat 7.0.75 startup.bat 命令集)

    本文主要介绍tomcat 7.0.75中startup.bat(位置:tomcat目录\bin)中涉及到的bat命令,为tomcat源码研究做准备. startup.bat中涉及到的bat命令如下: ...

  5. windows下创建启动脚本bat

    最主要是运用bat命令. call执行命令 比如 启动solr的服务,以前要进去solr的目录,然后bin/solr start    这样很麻烦.可以写个脚本放到桌面. call %CATALINA ...

  6. bat 命令 常用配置及其用法

    1.初衷: bat 批处理文件:当我懒得一个个操作的时候,可以把若干东西放到一个文件里面,开机运行或者需要的时候手动运行.节省时间. 2.命令集说明 2.1 常用命令 2.1.0 help 命令 /? ...

  7. linux-shell-screen后台调用-后台运行脚本和命令-仿start命令-伪窗口界面

    序 我比较熟练bat.cmd脚本.刚接触使用shell时,总会习惯想用windows窗口界面来套用shell脚本.于是找到screen后台命令,它可以交互shell脚本,保持后台运行.但是在批处理ba ...

  8. bat命令2

    echo.@.call.pause.rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起. echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的 ...

  9. BAT 命令 .bat

      echo.@.call.pause.rem(小技巧:用::代替rem)是批处理文件最常用的几个命令 echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本 ...

随机推荐

  1. Configure JSON.NET to ignore DataContract/DataMember attributes

    https://stackoverflow.com/questions/11055225/configure-json-net-to-ignore-datacontract-datamember-at ...

  2. Python 元类使用讲解

    我要一大群的类都具有一种特点,我怎么给他们加上呢?模板嘛,我从这个模板创建一群类不就OK了?那就需要元类了. 定义一个元类(就是一个类的模板!莫多想,还要记住这是类级别的,不是对象级别的!):代码如下 ...

  3. GoCN每日新闻(2019-09-30)

    GoCN每日新闻(2019-09-30) 1. 使用Sqlmock测试数据库 https://medium.com/ralali-engineering/testing-database-using- ...

  4. Vue.js2.5+cube-ui重构饿了么App*下载

    第1章 课程导学 第2章 项目准备工作 第3章 头部组件开发 第4章 Tab 组件开发 第5章 商品页面开发 第6章 商品详情页开发 第7章 评价和商家页面开发 第8章 create-api 原理分析 ...

  5. 【算法编程 C++ Python】字符串替换

    题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.   C++使用string,pyt ...

  6. 银联高校极客挑战赛第一场 A.码队女朋友的王者之路[水题]

    目录 题目地址 题干 代码和解释 题目地址 计蒜客回顾比赛 码队女朋友的王者之路 题干 代码和解释 本题难度不大,但是一开始没有读懂题,以为净胜场次是确定的,没有"最高净胜场次"的 ...

  7. 第07组 Beta版本演示

    组长博客:求戳 队名:摇光 成员 学号 姓名 组长 031702203 容慧珺 杨明哲 031702202 高星 杨明哲 031702307 黄森敏 杨明哲 031702308 朱丽辰 杨明哲 031 ...

  8. NGINX心跳检测

    NGINX心跳检测 upstream springboot { server 10.3.73.223:8080 max_fails=2 fail_timeout=30s; server 10.3.73 ...

  9. XmlIgnore的解释和使用

    XmlIgnore是一个自定义属性,用来指明在序列化时是否序列化一个属性.如下面的例子: public class Group { public string GroupName; [XmlIgnor ...

  10. Android HIDL学习(2) ---- HelloWorld【转】

    本文转载自: 写在前面 程序员有个癖好,无论是学习什么新知识,都喜欢以HelloWorld作为一个简单的例子来开头,咱们也不例外. OK,咱这里都是干货,废话就不多说啦,学习HIDL呢咱们还是需要一些 ...