Modelsim中使用TCL脚本编写do文件实现自动化仿真
通常我们使用Modelsim进行仿真,是通过图形界面点点点来进行操作,殊不知Modelsim完美支持TCL脚本语言及批处理命令do文件。简单来说就是从你修改完代码后到你重新编译把需要的信号拉出来查看,现在只需要一个动作即可完成。大大提高了工作效率,博主之前也是点点点了好久,最后发现有这么好的仿真技巧,真是相见恨晚。
下面列举一些常见的TCL脚本命令
Run do文件的一些常用命令 #打开现有工程 project open C:/Users/jayash/Desktop/sim/ImageProcess #新建一个库 vlib my_lib #将其映射到work vmap my_lib work #删除制定库 vmap -del my_lib #添加指定设计文件 project addfile src/Verilog/test.v #编译工程内所有文件 project compileall #编译指定verilog文件 vlog src/Verilog/test.v #编译指定的vhdl文件,同时检查可综合性 vcom –check_synthesis src/video_cap.vhd ##仿真work库下面的test_tb实例,同时调用220model_ver库,不再进行任何优化,仿真分辨率1ns。 vsim –t 1ns –L 220model_ver –gui –novopt work.test_tb #取消warning,例如‘x’,‘u’,‘z’信号的警告,对提高编译速度很有帮助 set StdarithNoWarning 1 #查看object View objects #查看局部变量 View locals #查看source View source #添加模块顶层所有信号到波形图 add wave* #10进制无符号显示 Radix usigned #16进制显示 Radix hex #重新进行仿真 Restart #开始仿真 Run #仿真指定时间 Run 1ms #时钟激励50ns周期 占空比50% Force –repeat 50 clk 0 0,1 25 #指定信号置0 Force rst_n 0 #指定信号置1 Force rst_n 1 #指定信号赋值 Force din_a 123 Force din_b 39
下面是博主经常用的仿真脚本模板,仿真新的工程只需要修改一点点,就可以直接使用了。将sim.do文件放在仿真工程目录下,即和Modelsim仿真工程xxx.mpf在同一个文件夹。sim是我定义的do文件名,用户可自行定义。
#退出当前仿真 quit -sim vlib work #编译修改后的文件,我这里把设计文件和仿真文件分开放了,所以写两个。 vlog "../Src/*.v"
vlog "../Sim/*.v" #开始仿真 vsim -voptargs=+acc work.tb_Cordic_Cos_Sin #添加指定信号
#添加顶层所有的信号
# Set the window types
# 打开波形窗口 view wave
view structure # 打开信号窗口 view signals # 添加波形模板 add wave -divider {tb_Cordic_Cos_Sin}
add wave tb_Cordic_Cos_Sin/*
add wave -divider {tb_Cordic_Cos_Sin}
add wave tb_Cordic_Cos_Sin/uut/* .main clear #运行xxms run 100us
不必每次都输入指定do文件的命令,在脚本控制台直接按上键就会显示上一个执行过的命令。

最后在Transcript窗口下,直接输入do sim.do + 回车即可自动化仿。

点击wave窗口的这里可以不用显示信号的相对路径。最后直接可以看仿真波形了。
适当的修改do脚本文件,可以添加任意你需要的信号,以及仿真库文件,让我们共同学习,高效工作吧。
最后欢迎关注博主的个人微信订阅号【开源FPGA】,总结、记录自己的学习过程,一个FPGA工程师的养成之路。

转载请注明出处:NingHeChuan(宁河川)
个人微信订阅号:开源FPGA
如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号
知乎ID:NingHeChuan
微博ID:NingHeChuan
原文地址:http://www.cnblogs.com/ninghechuan/p/8685991.html
Modelsim中使用TCL脚本编写do文件实现自动化仿真的更多相关文章
- modelsim如何使用tcl脚本来写编译文件
对于modelsim进行仿真,可以通过GUI来进行仿真,当然更加快速的方法可以使用TCL脚本文件进行快速仿真. Modelsim采用TCL脚本文件仿真的具体流程如下所示: 具体的操作步骤如下 ...
- SQL Server 中执行Shell脚本计算本地文件的内容大小
SQL Server 数据库中除了能执行基本的SQL语句外,也可以执行Shell脚本.默认安装后,SQL中的Shell脚本的功能是关闭的,需要手动打开, 执行以下脚本即可打开该功能. -- 允许配置高 ...
- 在c#中运行js脚本(将js文件生成为.dll文件)
原文链接:http://www.cnblogs.com/xhan/archive/2010/10/22/1857992.html 前言: 本来在搞一个Google翻译的接口--向Google翻译发送请 ...
- Modelsim调用用do脚本自动化仿真
前言 EDA发展的趋势是自动化,使用脚本自动化仿真可以减少不必要的时间浪费. 流程 在windows下新建批处理脚本bat文件(linux下可用shell脚本或者其他,注意给脚本运行权限即可:chmo ...
- LoadRunner学习---脚本编写(4)(比较重要)
今天接着来翻译http://www.wilsonmar.com/中关于LoadRunner脚本编写部分,下面该翻译脚本编写中一些比较重要的部分了. Web用户Action 在VuGen中,脚本产生的默 ...
- Modelsim仿真tcl脚本与wave.do文件
Modelsim的仿真,如果一直使用图形界面建工程,编译,仿真,一个个加入观察波形的话,未免复杂了一些,尤其是当工程较大,需要观察的信号较多时,下面贴出一些常用的tcl脚本命令和wave.do常用语法 ...
- 在Quartus中如何使用TCL脚本文件配制管脚
quartus软件分配管脚的方法有两种,一是选择菜单“assignments->pins”进入管脚分配视图手动分配:第二种方法是利用tcl脚本文件自动分配.这里我来介绍第二种方法. 1.生成tc ...
- tcl脚本直接执行脚本中中文识别不了的处理
上一篇说tcl中文乱码是因为我写了个bat调用该脚本,但是脚本中的中文路径是乱码.今天刚好有时间进行解决下: 首先看看调用代码 "./bin/base-tcl8.6-thread-win32 ...
- 28nm工艺下,自动生成管脚排列文件,给设计加PAD,并在PAD上面打Label的流程(含Tcl脚本)
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
随机推荐
- 手把手带你走进MVP +Dagger2 + DataBinding+ Rxjava+Retrofit 的世界
0.0 Android开发现在的变化用一个词来形容就是 :翻天覆地 越来越多的项目使用了MVP + Rxjava+Retrofit +Dagger2 + DataBinding等等东西.. 但是这些东 ...
- svn 集成 redmine 账户验证的终极解决方案
svn 集成 redmine 账户验证的终极解决方案 赖勇浩(http://laiyonghao.com) 动机 对于大部分开发团队来说,一般都需要一套 SCM 系统,通常是 svn + redmin ...
- [GitHub]第七讲:GitHub issues
文章转载自:http://blog.csdn.net/loadsong/article/details/51591701 Github 上的每个项目仓库,都有三套基础设置可供使用:一个是通过 Gith ...
- 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)
好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...
- Android学习之Animation(一)
3.0以前,android支持两种动画模式,Tween Animation,Frame Animation,在android3.0中又引入了一个新的动画系统:Property Animation,这三 ...
- Java图片加文字水印
Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...
- 【leetcode73】经典算法-Guess Number Higher or Lower
题目描述: 从1-n中,随便的拿出一个数字,你来猜测. 提示 提供一个guess(int num)的api,针对猜测的数字,返回三个数值.0,-1,1 0;猜中返回num -1:比猜测的数值小 1:比 ...
- (四十二)tableView的滑动编辑和刷新 -局部刷新和删除刷新 -待解决问题
tableView的局部刷新有两个方法: 注意这个方法只能用于模型数据的行数不变,否则会出错. [self.tableView reloadRowsAtIndexPaths:<#(NSArray ...
- (NO.00002)iOS游戏精灵战争雏形(二)
在SpriteBuilder中新建Images文件夹,将所需要的图片素材全部拖入其中: 别忘了将其转换为智能精灵图表文件夹. 因为我们不需要为ipad和安卓设计,所以在项目设置里将所有出iphone以 ...
- 关于jQuery中的trigger和triggerHandler方法的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...