使用VCS仿真Vivado里面的IP核時,如果Vivado的IP核的仿真文件只有VHDL時,仿真將變得有些困難,VCS不能直接仿真VHDL,從網上搜索的方案大致有以下幾種:
- 使用VCS-MX的vhdlan編譯vhdl文件,然后以庫的形式加入到編譯中
- Vivado使用export_simulation命令導出對應VCS的仿真IP文件(VCS版僅在Linux for Vivado有)
- 在Linux中使用Vivado聯合VCS仿真
由于Linux虛擬機沒有裝對應19版的Vivado,所以2,3方法暫時都用不了,本想采用第一種方法,但是感覺配置環境,熟悉命令又需要一段時間學習磨合。遂放棄,找尋更好的方法。
本文記錄解決VCS仿真IP核僅有VHDL文件時的解決方法,并不代表其他方法不行或者差,內容涉及基礎的Vivado操作。
查遍網上的方案和資料之后,找到了一個Vivado自帶的TCL命令,write_verilog
在Vivado的Tcl Console命令行下使用這個命令,模板如下:
write_verilog-cell [get_cells upconvert_inst/mult]-mode funcsim mult.v
命令的參數意義如下:
cell
:cell是FPGA工程里面例化實現的模塊,比如模塊名叫upconvert,但是我例化該模塊的時候名字叫做upconvert_inst,cell指的是upconvert_inst;而且cell的路徑是從頂層Top Level開始向下尋找的,不要把頂層模塊掉了,不能直接使用get_cells mult找到上述模板的mult,頂層名是不需要加的,因為最頂層的文件沒有被其他模塊例化。
mode
:mode包含幾種參數可選,design, pin_planning, syth_stub, sta, funcsim, timesim;這里funcsim是生成Verilog文件用于功能仿真,timesim用于時序仿真;
最后一個參數是生成的文件名存放路徑;想了解更多可以在Vivado的Tcl Console輸入write_verilog -help
使用這個命令必須打開Elaborated/Synthesized/Implemented Design中的某一個,命令才能找到Design中的cell
生成文件后,需要注意下,如果這個IP核被多次例化,生成的Verilog的Module名可能跟IP核的名字對應不上,可以手動修改下,否則VCS還是沒辦法找到對應的模塊。
把生成的Verilog文件路徑加入到VCS的命令行中,IP核仿真就會通過。有時間還是會試試1,2,3的方法,因為這些方法可能更方便,通用。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
602998 -
Linux系統
+關注
關注
4文章
593瀏覽量
27392 -
VHDL語言
+關注
關注
1文章
113瀏覽量
18001 -
VCS
+關注
關注
0文章
79瀏覽量
9600 -
虛擬機
+關注
關注
1文章
914瀏覽量
28160
發布評論請先 登錄
相關推薦
評論