简约而不简单的DO文件--Modelsim的TCL应用

DO文件是什么?

	DO文件是一次执行多条命令的脚本。这个脚本可以就像带有相关参数的一系列ModelSim的命令,或者是带有变量和执行条件等等的Tcl命令程序。可在GUI或者系统命令提示符中执行DO文件。

首先了解一下Modelsim仿真!

	第一步:
	创建一个工程和工程库;
	第二步:
	加载设计文件(功能模块和Tb模块);
	第三步:
	编译源文件;
	第四步:
	运行仿真,并查看结果。
	do文件的作用就是把上述的步骤①---④用tcl脚本语言来编写出来,让Modelsim来运行该do文件宏命令,并自动执行仿真的步骤。这种好处也许在小设计中没怎么表现,但是如果在一个大的工程中,常常需要对一个设计单元进行反复的调试和仿真,但是仿真时的设置是不变的,这时如果使用了do文件,把仿真中使用到的命令都保存下来了,就可以节省大量的人力,提高了工作效率。

ModelSim中常用的Tcl命令


ModelSim的tcl最大的优势就在于它可以让整个仿真自动运行,免除每次进行各种用户界面控制操作的麻烦。用tcl就可以自动完成建库、映射库到物理目录、编译源代码、启动仿真器、运行仿真等一系列操作。
执行Tcl(.do文件)
do name.do
编译
vlog iic_write.v
启动仿真
vsim tb_iic_write.v
将信号加入wave
add wave tb_iic_write *
执行仿真
run 2000000/-all
退出仿真
quit -sim

DO文件如何编写呢

	do文件就是Modelsim中Tcl命令的整合!
	具体操作如下:
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20200223211901302.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21vY2hlbmJhb2JlaQ==,size_16,color_FFFFFF,t_70)
	do文件编写完成!下一步:
	在Modelsim中,将工作目录切换到功能模块所在目录下,然后在Modelsim的File窗口中的Change Directory选项中切换工作目录。
	调用do文件
	在Modelsim的Transcript窗口中的命令行输入:do test.do命令即可。

Modelsim中的do文件编写小技巧!

	我们先了解Transcript窗口的作用和用处?
	![Transcript窗口记录着我们在Modelsim中使用的每个操作步骤,同时在代码运行的时候的Error和Warning也是通过该窗口显示给使用者,以及Transcript窗口的命令行控制。](https://img-blog.csdnimg.cn/20200223212119249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21vY2hlbmJhb2JlaQ==,size_16,color_FFFFFF,t_70)
	技巧1:
	既然我们的每个操作命令都能在Transcript窗口显示出来,也就是说在我们遇到不会的Tcl命令时,可以通过Modelsim界面上通过鼠标操作一遍,查看该操作是的Tcl命令,再编写进我们的do文件中就可以在调用do文件时实现我们想要的操作。
	技巧2:
	![当我们没了仿真波形更容易分析,将波形设置为不同的颜色或者不同进制等,此时我们可以在Wave窗口的左上角“Save Format”保存为do文件(或者Ctrl + S)。](https://img-blog.csdnimg.cn/20200223212509996.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21vY2hlbmJhb2JlaQ==,size_16,color_FFFFFF,t_70)
	![](https://img-blog.csdnimg.cn/20200223212822475.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21vY2hlbmJhb2JlaQ==,size_16,color_FFFFFF,t_70)
	![打开wave.do文件我们发现也是许多的Tcl命令,这些Tcl命令也是可以编写进我们的test.do文件,再通过Modelsim调用。这样Wave窗口最终输出的波形就是我们之前设计过的风格了。](https://img-blog.csdnimg.cn/20200223212838495.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21vY2hlbmJhb2JlaQ==,size_16,color_FFFFFF,t_70)
	***注意***
  1. do文件编写时,Tcl命令的顺序需要正确

  2. do文件中的注释符号“#”的使用,注释必须在代码的下一行进行解释,不能在代码后注释

  3. 功能模块一定要放在工作目录所在的文件夹,并且文件夹不能有中文

  4. 如果do文件运行时,出现了错误。可以通过在Model的Transcript窗口的命令行按顺序将我们的do文件中Tcl命令运行,就可以发现并纠正Error。

    关注我们了解更多资讯:
    [ModelSim仿真软件介绍(一)](https://mp.weixin.qq.com/s/83I5NJZtn0CZZg7IJZS7Rw)
    [FPGA数字信号处理(二)数字混频](https://mp.weixin.qq.com/s/EIgpnPZ6n3-zC6muDoYhOQ)
    [【FPGA信号处理一】5分钟学会FIR 滤波器设计](https://mp.weixin.qq.com/s/Y7mo7i-lNMqvmve9w76fHw)
    [在Vivado中,您使用过TCL吗?](https://mp.weixin.qq.com/s/l17R94pella2UdshP4wjFw)
    [编写可综合的FPGA代码经验总结(二)](https://mp.weixin.qq.com/s/bzPugk5gVTeNbWbGltt_kQ)
    [【干货分享】编写可综合的FPGA代码经验总结(一)](https://mp.weixin.qq.com/s/adNvO2IQPMtl0ZNLosqFWw)
    [【干货分享】异步电路中的时钟同步处理方法](https://mp.weixin.qq.com/s/G3vxa0l6eCIS-AVMuGLyMA)
    [【干货分享】同步电路分析---异步和同步电路的区别(二)](https://mp.weixin.qq.com/s/mmgmro_I3L_NdyB_8gbLFA)
    

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值