linux系统下基于QuestaSim的systemverilog仿真TCL命令
一.终端打开QuestaSim
vsim -i
二.QuestaSim中TCL脚本指令
1.仿真库的创建(vlib)-非必要
vlib 库名
2.编译命令(vlog)
(1)语法:
vlog 选项 文件1名字 … 文件2名字
(2)常用选项:
-f/-file 文件名:对应一个参数文件,文件内可添加更多编译选项
-l 文件名:生成编译时的log记录文档
-novopt:编译时不做优化
-lint:编译时作语意检查(例如,为input端口赋值,访问未声明变量)
-quiet:过滤一些加载库的信息,使log信息更加简洁
-timescale=时间单位/时间精度:指明时间单位和时间精度
-sv:制定systemverilog作为编译语法
-cover 覆盖率选项:指定需要收集的代码覆盖率,分别为代码跳转覆盖率t(toggle)、行覆盖率s(stmt)、分支覆盖b(branch)、条件覆盖率c(cond)。
-work 库名:创建新的库并在新的库中编译。
(3)例子:
vlog -timescale=1ns/1ps -sv questasim_use.sv
3.仿真命令(vsim)
(1)语法:
vsim -voptargs=+acc 仿真选项 库名.文件名
(2)常用选项:
-classdebug:支持更多更细节的systemverilog调试功能;
-debugdb:生成电路图;
-onfinish 脚本或命令:指定仿真结束后执行的tcl脚本和命令比如stop停止仿真;
-cover:开启收集代码覆盖率
-cvgperinstance:启用每个实例的覆盖率收集
-cvgmergeinstance:运行多次仿真后合并覆盖率数据,保证多个仿真中,同一个模块有多次实例,覆盖率也能正确合并;
-sv_seed 种子值:指定随机种子
-l 文件名.log:记录仿真过程中生成的仿真信息并生成日志文件
(3)例子:
vsim -voptargs=+acc work.questasim_use
4.运行命令(run)
(1)语法:
run 时间
(2)例子:
run 100ns