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
小米路由器hdvericom -lib my_work -sv tb_top.sv
使⽤verdi打开波形⽂件:
verdi -lib my_work -top tb_top -ssf tb_top.fsdb
voltage