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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

推荐!国外程序员整理的系统管理员资源大全(一)

备份软件 Amanda -客户端-服务器模型备份工具 Bacula - 另一个客户端-服务器模型备份工具 Backupninja -轻量级,可扩展的元数据备份系...

47310
来自专栏FreeBuf

iOS“远程越狱”间谍软件Pegasus技术分析

上周苹果紧急发布了iOS 9.3.5,修复了三个0day漏洞,这3个漏洞能让攻击者对全球范围内的iPhone进行监听。 ? 这三个漏洞被爆出的起因是因为以为阿联...

8318
来自专栏阮一峰的网络日志

网站开发人员应该知道的61件事

通常情况下,你需要把所有人的发言从头到尾读一遍。但是,Stack Overflow有一个很贴心的设计,它允许在问题下方开设一个wiki区,让所有人共同编辑一个最...

1564
来自专栏翻译

Universe入门

Universe是一个用于衡量和训练AI的软件平台,适合世界上的所有游戏,网站和应用程序。本项目是一个universe开源库,它为 每个Universe环境提供...

6666
来自专栏Android群英传

Siri 帮我开灯

1002
来自专栏大内老A

WCF版的PetShop之一:PetShop简介[提供源代码下载]

在《WCF技术剖析(卷1)》的最后一章,我写了一个简单基于WCF的Web应用程序,该程序模拟一个最简单的网上订购的场景,所以我将其命名为PetShop。PetS...

2305
来自专栏進无尽的文章

基础篇-iOS后台运行以及相关

对于APP的前后台运行情况的了解,有助于我们在实际开发中规避一些问题,以及采取稳妥的方法处理和解决问题,是很必须的。

3381
来自专栏hadoop学习笔记

菜鸟如何使用hanlp做分词的过程记录

最近在学习hanlp的内容,准备在节后看看有没有时间整理一波hanlp分享下,应该还是会像之前分享DKHadoop一样的方式吧。把整个学习的过程中截图在配文字的...

1194
来自专栏FreeBuf

正确姿势:如何调戏蹭网者

这篇文章本来是知乎回答的一个问题,但是由于本人五行缺勤奋,所以一直没写(其实是忘了=。=),下面是我的一个实验,如何通过squid调戏那些蹭网的人。没什么技术含...

2398
来自专栏重庆的技术分享区

MPic神器-上传照片直接生成外链

3965

扫码关注云+社区