vcs是synopsys的仿真器,基于Linux系统,有命令行模式和图形化模式,图像化模式是dve
vcs要使用图形化界面dve,必须先编译得到vpd文件
编译命令:
vcs verilog.v
[-y 搜索路径 +libext+.v -debug_all -ncli]
-y 搜索路径,指定编译的verilog代码在什么路径下
+libext+.v 是指该路径下所有的.v文件
-debug_all 是调试用的,如果要进行调试,需要加上这个命令
-ncli 是命令行ncli调试
编译文件:vcs
top_tb.v top.v -full64
编译完成后,会在当前目录下生成一个simv文件,这是一个可执行文件,执行这个文件就能看到仿真结果,以文本形式显示
执行文件:./simv
在tb中没有写显示内容,可以用dve查看波形
脚本:./simv
-gui
还需要生成vpd文件。VCS的dve是执行vpd文件的,需要加上-debug_all或者-debug或者-debug_pp
脚本:vcs
verilog.v -y ./rtl +libext.+v -debug_all
再进行:./simv
-gui
打开了dve。同时在当前目录下,产生了inter.vpd文件
命令行调试
命令行调试不用看波形,用命令执行仿真观看信号。命令行仿真是在ucli中进行的,在编译命令中,要加入-ucli
使用命令行调试,可以在tb中添加$stop语句,可以查看各个信号的值。
执行命令:vcs
verilog.v -y ./rtl +libext.+v -debug_all -ucli -R
-R 表示编译后立即执行
不加的化需要执行完上个命令后执行命令./simv -ucli启动ucli调试
ucli中常用命令
scope 显示当前顶层模块
scope u1 表示进入到当前顶层模块的u1模块,同时将u1模块设置为顶层模块
scope -up 回到目前顶层模块的上一层
scope 可以用来选择不同的模块,以此来显示不同的信号
show 显示当前顶层模块的信号和子模块
show 信号 -value -radix hex/bin/dec
显示信号的值,以特定的进制显示
run 运行仿真
run 一直运行,直到遇到 $stop 或者设置的断点
run time 运行多少时间停止
run -posedge 信号 运行到信号的上升沿停止
run -negedge 信号 运行到信号的下降沿停止
run -change 信号 运行到信号有变化时停止
stop 显示断点
stop -posedge 信号 在信号的上升沿设置断点
stop -negedge 信号 在信号的下降沿设置断点
stop -condition {信号表达式} 信号表达式为真的时候设置断点
stop -delete 断点值 删除断点值的断点
restart 重新开启ucli调试模式
-h 帮助命令
命令后面接 -h 显示当前命令的帮助
可执行文件修改
chmod 修改文件权限 +r 读取 +w 写入 +x 执行
chmod u+x makefile
修改makefile 为可执行文件
781

被折叠的 条评论
为什么被折叠?



