VCS+Verdi 聯合模擬-----FPGA開發
阿新 • • 發佈:2018-12-30
VCS+Verdi 聯合模擬-----FPGA開發
簡述
上篇文章記了VCS和Verdi的安裝和破解,這篇文章
主要記的是VCS和Verdi的聯合模擬。重點當然是配置vcs和verdi 的一大堆引數。因為我也是初學者,所以用的到引數並不多,之後可能回遇到更高深的用法,到時候再補充。這裡主要是完成一個38譯碼器的模擬。
注:上篇筆記中的lmg_vcs每次關機重啟都會失效,需要重新lmg_vcs啟用,也可以加到啟動項中。啟用之後,斷網執行模擬會更加流暢。
模擬步驟
1. 開發資料夾結構
#模擬檔案
–decoder38_tb.v
#RTL級或行為級程式碼
–decoder38.v
#支援vcs或verdi -f引數,寫著.v檔案的路徑
–filelist.f
#Makefile 檔案用於編寫vcs、verdi、clean等命令
–Makefile
2. 檔案內容
下面內容僅供測試。
我的Makefile內容,可根據需要自由更改。
vcs:
vcs \
-full64 \ #vcs以64位執行
-f filelist.f \ #如不使用-f引數,可以替換成每個檔案的路徑。filelist.f也就是將所有的需要模擬檔案集合。但模擬檔案一定要放在第一個位置
-debug_all \ #不加此引數, 在生成fsdb波形檔案時可能會出錯。
+define+DUMP_FSDB \ #定義巨集,也可在模擬檔案中新增,用於生成fsdb波形檔案
-P /home/chenqw/synopsys/verdi_2016.06-1/share/PLI /VCS/LINUXAMD64/novas.tab \ #用於生成fsdb波形檔案,修改成自己的路徑
/home/chenqw/synopsys/verdi_2016.06-1/share/PLI/VCS/LINUXAMD64/pli.a \ #用於生成fsdb波形檔案,修改成自己的路徑
| tee vcs.log #輸出模擬資訊,並儲存到vcs.log檔案
./simv #最終生成fsdb 檔案。
verdi:
verdi \
+v2k \
-sverilog \
-f filist.f \
-ssf test.fsdb & #模擬檔案產生的波形檔案
clean:
rm -rf `ls | grep -v "Makefile"|grep -v "filelist.f" | grep -v "\.v"` #清除模擬過程檔案
clean_all:
rm -rf `ls | grep -v "Makefile"|grep -v "filelist.f"` #清除模擬過程檔案和設計檔案.v
decoder38_tb.v
`timescale 1ns/1ns
module decoder38_tb();
reg[2:0] indata;
wire[7:0] out_data;
code code_1(.in(indata),.led(out_data));
initial
begin
indata = 3'b000;
#10;
indata = 3'b001;
#10;
indata = 3'b010;
#10;
indata = 3'b011;
#10;
indata = 3'b100;
#10;
indata = 3'b101;
#10;
indata = 3'b110;
#10;
indata = 3'b111;
#10;
indata = 3'b000;
#10;
end
`ifdef DUMP_FSDB
initial
begin
$fsdbDumpfile("test.fsdb"); #產生波形檔案
$fsdbDumpvars(0,decoder38_tb);
$fsdbDumpon;
end
`endif
endmodule
decoder38.v
`timescale 1ns/1ns
module code(
in,
led);
input in;
output led;
wire[2:0] in;
reg[7:0] led;
[email protected](*)
case(in)
3'b000: led = 8'b00000001;
3'b001: led = 8'b00000010;
3'b010: led = 8'b00000100;
3'b011: led = 8'b00001000;
3'b100: led = 8'b00010000;
3'b101: led = 8'b00100000;
3'b110: led = 8'b01000000;
3'b111: led = 8'b10000000;
default: led = 8'b00000000;
endcase
endmodule
filelist.f
/home/chenqw/HDK/design/decoder38_tb.v #模擬檔案在第一位
/home/chenqw/HDK/design/decoder38.v
3. 模擬方式
-
vcs+dve
在執行make vcs命令後,同文件夾下會產生過程檔案,其中.vpd檔案適用於輸入到dve中,實現波形顯示。但由於這種vpd檔案較大,導致模擬速度慢。推薦下面一種模擬方法。
command:
./simv -gui
-
vcs+verdi
這時候,前面千辛萬苦得來的fsdb檔案就派上用場的。使用make vcs命令後,同文件夾下也會生成fsdb檔案。由於fsdb檔案精簡,模擬速度較快。
使用make verdi命令,可以觀察輸出波形。
結語
祝諸君成功。下篇筆記預定綜合工具安裝。