Modelsim基础使用二


注意,不建议使用Modelsim进行代码编辑!易乱码。

软件界面:

下图是基本界面,左边是库和工程;右边是Transcript用于显示信息及输入命令。其他界面在使用到相应功能时会自动出现,如Memory List、Wave等,当然也可以从菜单栏的View中主动点出。
通过Transcript可以学习如何写do脚本命令!
界面认识

仿真使用:

仿真使用分成大体上分成使用do脚本和使用gui界面(鼠标点击)两种,但是实际上熟练之后就无所谓了,完全可以混合,怎么方便怎么来。

do脚本的语法和tcl相似,而tcl是较常用的脚本拓展名,因此可以参考tcl脚本,甚至可以直接将后缀改为tcl,更加方便。

二、使用脚本进行仿真

1.常用脚本命令

勤用vmap,大大加快仿真速度

次序作用命令示例必要性
1建立库(工程)vlibif ![file exists work] {vlib work}必要
2映射库vmapvmap cctt_lib path/cctt_lib非必要,常用
3编译vlogvlog testbench.v必要
4仿真vsimvsim -t 1ns -novopt -L altera_lib work.testbench必要
4+添加待绘信号add waveadd wave /testbench/*非必要
4+执行其他脚本dodo wave.do非必要
最后运行runrun 200us非必要

2.完整示例脚本文件

所有的脚本命令及其格式,都可以通过在GUI中执行相应的操作来寻找。

# 使用“#”标识注释,注释只能为行注释!!!
# 清屏
.main clear

# 工程
# modelsim的Library窗口中如果不存在work库,则新建一个work库
# 如果手动建立库其实就不需要执行vlib了
if [file exists work] {
    vdel -all
}
# 建立库
vlib work

# 将其他不用修改的.v文件先行编译所得的library映射到Modelsim软件Library目录中
# 对于有多个.v文件的ip核例化,用此方法可以大大加快modelsim运行时间
# 与添加到modelsim.ini对比,需要用时才添加,
vmap	cctt_lib	ip/cctt_lib

# 设置基础路径;
# set的作用类似于define,只是别名,属于简单地等价作用;
# 通过set设置目录的别名,可以简化后续vlog命令中路径的书写,而且方便统一更改;
# 注意此处的路径中为“/”,而在windows的文件资源管理器中则为“\”;
# 引用set所定义的常量时使用“$”符号
set PrjPath D:/modelsimtest
set path1 ..			# 对于路径,两个点".."代表上层目录(一层)
set path2 ../..			# 理同上,代表上上层目录(两层)
set path3 "d:/A B/目录"	# 对于中文目录和目录中含有空格的路径,必须使用双引号

# 编译
# 注意编译时,越深层的模块需要写在越前,如ip例化文件等;
# 而越靠近顶层的文件则需要写在越后;
# 否则,会因为被例化模块不存在而报错
vlog $PrjPath/ip/fifo/abcd.v
vlog $path1/ip/ram/abcd.v
vlog $path1/port/abcd.v
vlog $path1/port/abcd.v
vlog $path2/src/port/abcd.v
vlog $path2/src/abcd.v
vlog $path2/abcd.v
vlog $path2/src/port/abcd.v

# 编译path3目录下的所有.v文件
vlog $path3/*.v					
# 编译与本do脚本同目录的所有.v文件
vlog *.v						


# 启动仿真
# -t 1ns:设置最小时间单位为纳秒
# -novopt:无优化
# -L:添加xilinx_lib和altera_lib两个ip库
# 如果工程中例化了ip核,则此处必须添加所例化的ip核所在的库
# 一种比较简单的方法是直接将altera或xilinx中的所有ip例化到一个库中
# work.仿真的模块名
# pcie_lib是上文用vmap映射过来的临时库
vsim -t 1ns -novopt -L xilinx_lib -L altera_lib -L cctt_lib work.testbench

# 添加波形
# 注意,在使用do wave.do时,如果模块中的信号发生了变化(如减少)则可能会报错;
# 如果模块中的信号添加了,则不会绘制新出现的信号;
do wave.do						# 执行先前保存的wave.do文件
add wave /testbench/gen_case/*	# 添加gen_case模块中的所有reg和net信号

# 设置默认格式
radix -hex

# 最大运行时间
# run all
run 500us

3.使用bat脚本快速打开modelsim执行tcl\do脚本

  1. 在同目录下新建txt文件,内容:
::打开Modelsim并执行do sim.tcl
vsim -do sim.tcl
  1. 保存然后更改后缀名为.bat
  2. 双击bat即可自动打开modelsim并执行do sim.tcl
  3. 相当于:自己手动打开modelsim,然后在Transcript中执行:
cd d:/xxx(你的工程目录)		#更改路径
do sim.tcl

4.一点心得

其实可以直接建立一个空的modelsim工程,然后双击打开工程,然后在Transcript中执行do sim.tcl,好处是在modelsim中的project窗口中能够看到各个模块,在对.v文件进行小改时,不需要重新执行整个sim.tcl,直接重新compile,然后重新run。特别是在工程比较大的时候,能省很多时间,而且Modelsim软件也不会“剧烈变化”。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值