verilog和VHDL混合编译仿真

在实际项目中,由于项目经历了较多的版本更迭或者设计人员的技术水平限制,有些时候难免有使用到verilog的代码和VHDL代码共同存在一个项目中的情况,那这个时候我们要怎样进行混合编译仿真验证呢?这里以使用vcs工具编译verdi查看波形为例:

如果我们设计代码是vhdl版本的,但是还想使用更高级的代码verilog或者systemverilog作为它的顶层tb,并且还想使用uvm的组件来搭建更方便的验证环境,那么整个环境的编译和执行过程如下:

1.需要准备的软件vcs-mx和verdi,其中vcs-mx版本会有vlogan和vhdlan两个编译程序

2.开始编译

编译vhdl的代码,dut_src.f是vhdl的文件列表:

vhdlan -nc dut_src.f -l cmp_vhdl.log

编译uvm库的sv代码:

vlogan -full64 -timescale=1ns/1ps +v2k -sverilog -ntb_opts uvm -l cmp_uvm.log

编译我们自己设计的sv代码和自己设计的uvm各个组件部分的代码,tb.f是文件列表:

vlogan -full64 -timescale=1ns/1ps +v2k -sverilog tb.f -ntb_opts uvm -l cmp_verilog.log

编译vhdl和verilog各自的库生成可执行文件simv:

vcs -timescale=1ns/1ps  -ntb_opts uvm -top tb_top -debug_access+pp -fsdb -j56 -cm line+fsm+tgl+cond -lint=TFIPC-L +nbaopt +rad +notimingchecks +nospecify +error+30

run起来,生成波形,其中TC_NAME是传入的tc参数:

./simv -cm line+fsm+tgl+cond +fsdb+force +fsdbfile+../wave/tb_top.fsdb +UVM_TESTNAME=$(TC_NAME)

3.查看波形

编译出verdi可以查看的库,使用vhdlcom是编译vhdl文件的库,vericom是编译verilog文件的库

vhdlcom -lib my_work dut_src.f

vericom -lib my_work -sv tb_top.sv

使用verdi打开波形文件:

verdi -lib my_work -top tb_top -ssf tb_top.fsdb

posted @ 2021-12-21 10:38  验证cc  阅读(3088)  评论(0编辑  收藏  举报