```
#!/usr/bin/env bash
#UFUNCTION=sverilog仿真脚本
#by yunahp 2020/6/4
####################### system verilog仿真脚本 #######################
dir=$(pwd)
SHELL_NAME="msv"
main(){
pwd
cmd=$1
case $cmd in
"--help" | "-h") mhelp;;
"-c" | "--compile")compile $2 ;; #编译执行单文件仿真项目
"-i" | "--init")init ;; #初始化项目
"*") echo "over";;
esac
}
mhelp(){
echo "使用说明:本脚本用于编译仿真简单的system verilog文件"
echo "$SHELL_NAME -c filename编译仿真svetem verilog文件"
echo "$SHELL_NAME --help显示帮助"
exit 0
}
#编译项目
compile(){
file_name=$1
echo "-> 准备编译$file_name文件"
if [ ! -f $file_name ] ; then
echo "-> $file_name文件不存在"
exit 1
else
echo "-> 开始编译$file_name文件"
vcs -full64 -LDFLAGS -Wl,-no-as-needed -V -R -sverilog $file_name
fi
}
#执行仿真项目
executeSim(){
if [ -f "simv"]; then
echo "-> 查看system verilog的仿真结果"
./simv
else
echo "err -> 仿真文件不存在!请先编译生成simv文件!"
exit 1
fi
}
# 初始化项目
init(){
if [ ! -f tb.sv ];then
echo "-> 不存在顶层文件tb.sv,生成tb.sv文件!"
cat < tb.sv
module tb ;
initial begin
\$display("test running!");
end
endmodule
EOF
if [ ! -f run ];then
echo "#!/usr/bin/env bash " > run
echo "find -name \"*.sv\" > compile.file" >> run
echo "vcs -full64 -LDFLAGS -Wl,-no-as-needed -V -R -sverilog -f compile.file">>run
fi
fi
}
#执行主函数
main $*
```