本文针对vcs入门写的一个简易Tcl脚本
1.工程的目录结构
2.Tcl脚本Source code
在terminal中输入vim Makefile
Makefile中源文件如下
.PHONY:com cov clean debug
OUTPUT = cpu_top
#compile command
VCS = vcs -sverilog +v2k -timescale=1ns/1ns \
-debug_all \
+notimingcheck \
+nospecify \
+vcs+flush+all \
-o ${OUTPUT} \
-l compile.log \
#simulation command
SIM = ./${OUTPUT} -l ${OUTPUT}.log
#start compile
com:
${VCS} -f file_list.f
#start simulation
sim:
${SIM}
#show the coverage
cov:
dve -covdir *vdb &
#start debug commnd
debug:
dve -vpd ${output}.vpd &
#clean some file
clean:
rm -rf ./csrc *.daidir ./csrc *.log *.vpd *.vdb simv* *.key *race.out*
在terminal中输入命令:vim file_list.f
vim file_list.f文件内容如下:
-timescale=1ns/1ns
//Macro define
//+define+INC_COUNTER
//Source file
../rtl/cpu_top.v
../rtl/rom.v
../rtl/ram.v
../rtl/RISC_CPU_8bit.v
../rtl/clk_gen.v
../rtl/register.v
../rtl/accum.v
../rtl/alu.v
../rtl/datactl.v
../rtl/adr.v
../rtl/counter.v
../rtl/machinectl.v
../rtl/machine.v
../rtl/addr_decode.v
//Testbench
../test_bench/cpu_top_tb.v