通常我们使用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文件实现自动化仿真的更多相关文章

  1. modelsim如何使用tcl脚本来写编译文件

    对于modelsim进行仿真,可以通过GUI来进行仿真,当然更加快速的方法可以使用TCL脚本文件进行快速仿真. Modelsim采用TCL脚本文件仿真的具体流程如下所示:      具体的操作步骤如下 ...

  2. SQL Server 中执行Shell脚本计算本地文件的内容大小

    SQL Server 数据库中除了能执行基本的SQL语句外,也可以执行Shell脚本.默认安装后,SQL中的Shell脚本的功能是关闭的,需要手动打开, 执行以下脚本即可打开该功能. -- 允许配置高 ...

  3. 在c#中运行js脚本(将js文件生成为.dll文件)

    原文链接:http://www.cnblogs.com/xhan/archive/2010/10/22/1857992.html 前言: 本来在搞一个Google翻译的接口--向Google翻译发送请 ...

  4. Modelsim调用用do脚本自动化仿真

    前言 EDA发展的趋势是自动化,使用脚本自动化仿真可以减少不必要的时间浪费. 流程 在windows下新建批处理脚本bat文件(linux下可用shell脚本或者其他,注意给脚本运行权限即可:chmo ...

  5. LoadRunner学习---脚本编写(4)(比较重要)

    今天接着来翻译http://www.wilsonmar.com/中关于LoadRunner脚本编写部分,下面该翻译脚本编写中一些比较重要的部分了. Web用户Action 在VuGen中,脚本产生的默 ...

  6. Modelsim仿真tcl脚本与wave.do文件

    Modelsim的仿真,如果一直使用图形界面建工程,编译,仿真,一个个加入观察波形的话,未免复杂了一些,尤其是当工程较大,需要观察的信号较多时,下面贴出一些常用的tcl脚本命令和wave.do常用语法 ...

  7. 在Quartus中如何使用TCL脚本文件配制管脚

    quartus软件分配管脚的方法有两种,一是选择菜单“assignments->pins”进入管脚分配视图手动分配:第二种方法是利用tcl脚本文件自动分配.这里我来介绍第二种方法. 1.生成tc ...

  8. tcl脚本直接执行脚本中中文识别不了的处理

    上一篇说tcl中文乱码是因为我写了个bat调用该脚本,但是脚本中的中文路径是乱码.今天刚好有时间进行解决下: 首先看看调用代码 "./bin/base-tcl8.6-thread-win32 ...

  9. 28nm工艺下,自动生成管脚排列文件,给设计加PAD,并在PAD上面打Label的流程(含Tcl脚本)

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

随机推荐

  1. OpenCV Python教程(1、图像的载入、显示和保存)

    原文地址:http://blog.csdn.net/sunny2038/article/details/9057415 转载请详细注明原作者及出处,谢谢! 本文是OpenCV  2 Computer ...

  2. ad network

    全称:Advertising network.即"在线广告联盟".一种介于想出售广告空间的网站与想在网站上刊登广告的广告主之间的平台.比较知名的公司有Google的AdSense. ...

  3. 关于CKEditor4.5.6的使用,自定义toolbar配置,上传图片案例(SpringMVC+MyBatis案例),自定义行高,去编辑器的中内容,将编辑器中内容设置到指定的位置等

     关于CKEditor的一个配置整理,改文件为config.js: 文件内容如下: /** * @license Copyright (c) 2003-2016, CKSource - Frede ...

  4. Leetcode_13_Roman to Integer

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41486885 通过本文你可能学到的知识如下: (1)理解本 ...

  5. Chipmunk碰撞形状:cpShape

    目前有3种碰撞类型: 圆(Circles):最快并且最简单的碰撞形状 线段(Line segment):主要用于静态形状.可以表示斜线(Can be beveled in order to give ...

  6. (NO.00001)iOS游戏SpeedBoy Lite成形记(十九)

    最后就是要完成前面设定的第3件事:如果玩家赌对了则赢钱,反之输钱. 前面的框架搭的差不多了,所以这里实现起来也就不难了 ;) 首先我们怎么知道用户输入完毕,然后关闭窗口了?只有在这个点上GameSce ...

  7. 小强的HTML5移动开发之路(8)——坦克大战游戏2

    来自:http://blog.csdn.net/cai_xingyun/article/details/48629015 在上一篇文章中我们已经画出了自己的坦克,并且可以控制自己的坦克移动,我们继续接 ...

  8. Leetcode_101_Symmetric Tree

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42087039 Given a binary tree, c ...

  9. JSP 对象的作用范围

    在JSP中,对象有四种范围:page.request.session和application page范围             所谓的page范围指单一的JSP页面范围,page范围内的对象只能在 ...

  10. 移动App设计的十条建议

    原文链接: 10 Key Design Tips for Great Mobile Apps 原文日期: 2014年03月24日 翻译日期: 2014年04月01日 使用Android和iOS编写一个 ...