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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM