第一篇技术日志,希望自己能坚持写下去,帮助别人,提升自己。
入职新公司,遇到v
hdl和
verilog混仿问题,十分烧脑,今天终于把问题都解决了,现在分享在这里,与大家一起进步。
【1.vcs编译】
在vcs命令行中加入以下内容
//建立synopsys_sim.setup
mkdir work
echo \"WORK > default\" > synopsys_sim.setup
echo \"default : ./work\" >> synopsys_sim.setup
//分别编译vhdl和verilog
vhdlan -full64 -f vhdl.f -l vhd.log
vlogan -full64 -f tb.f -ntb_opts uvm-1.1 -l vlog.log
vlogan -full64 -ntb_opts uvm-1.1 -f cmp_list +libext+.v -sverilog +vpi +vcsd +v2k -timescale=1ns/10ps -l comlist.log
//+vcs+flush+all是即使刷新文档/波形的意思
vcs tb_top -debug_access+pp -l compile.log -full64 +vcs+flush+all
【2.verdi打开】
在verdi命令中加入以下内容,同时,之前使用的编译文件应该注释掉。
//分别编译各自库文件
$verdi_cmd = "vhdlcom -nc -2000 -f vhdl.f -lib dut_vhd_lib\n";
$verdi_cmd = "$verdi_cmd vericom -nc -2000 -sverilog -f tb.f -lib dut_v_lib\n";
//加入库文件
$verdi_cmd = "$verdi_cmd verdi";
$verdi_cmd = "$verdi_cmd -L dut_vhd_lib";
$verdi_cmd = "$verdi_cmd -L dut_v_lib";
//加入顶层
$verdi_cmd = "$verdi_cmd -top dut_v_lib.tb_top";