Chisel實驗筆記(二)
阿新 • • 發佈:2018-12-25
在上一篇《Chisel實驗筆記(一)》中,我們的到了對應的verilog檔案,本文將採用Icarus Verilog + GtkWave進行模擬驗證。
實驗平臺還是Ubuntu14.04(64位)
1、安裝Icarus Verilog-0.9.7
首先輸入如下命令:
sudo apt-get install gperf
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install build-essential
然後安裝zlib,下載地址http://www.zlib.net/,解壓縮後,使用終端進入所在目錄,輸入如下命令安裝:
./configure
make
sudo make install
如果沒有安裝zlib,那麼在執行vvp -n test -lxt2的時候,會出現如下錯誤:LXT2 support disabled since zlib not available
最後下載Icarus Verilog-0.9.7,使用終端進入所在目錄,輸入如下命令安裝:
./configure
make
sudo make install
2、安裝GtkWave3.3.64
首先安裝Tcl8.6.4,下載地址http://www.tcl.tk/software/tcltk/download.html,解壓縮後,使用終端進入其中的unix目錄,輸入如下命令:
./configure
make
sudo make install
然後安裝Tk8.6.4,下載地址http://www.tcl.tk/software/tcltk/download.html,解壓縮後,進入其中的unix目錄,輸入如下命令:
./configure
make
sudo make install
然後安裝xz5.2.1,下載地址http://tukaani.org/xz/,解壓縮後,使用終端進入所在目錄,輸入如下命令:
./configure
make
sudo make install
如果沒有安裝xz,在configure gtk的時候會出如下錯誤:LZMA support for VZT is enabled, but xz could not be found
接下來,執行如下命令:
sudo apt-get install "libglib2.0-dev"
apt-get install libgtk+2.0-dev libesd0-dev
否則在configure gtk的時候會出現如下錯誤
ackage requirements (gtk+-2.0 >= 2.2.0) were not met
最後下載GtkWave3.3.64,解壓縮後,使用終端進入所在目錄,輸入如下命令:
./configure
make
sudo make install
3、編寫TestBench
新建檔案Max2Test.v,內容如下:
其中有四組輸入,每次從中選擇一個較大的數作為輸出。
module Max2Test;
reg[7:0] in0;
reg[7:0] in1;
wire[7:0] out;
initial begin
in0 = 8'h35;
in1 = 8'h56;
#1 in0 = 8'h39;
in1 = 8'h28;
#1 in0 = 8'h10;
in1 = 8'h09;
#1 in0 = 8'h15;
in1 = 8'h20;
#1 $stop;
end
Max2 Max2instance(
.io_in0(in0),
.io_in1(in1),
.io_out(out)
);
initial begin
$dumpfile("Max2Test.vcd");
$dumpvars(0, Max2Test);
end
endmodule
4、模擬得到結果
在終端輸入如下命令可以模擬得到並檢視波形
iverilog -o test Max2.v Max2Test.v
vvp -n test
gtkwave Max2Test.vcd
或者對結果進行壓縮,命令如下:
iverilog -o test Max2.v Max2Test.v
vvp -n test -lxt2(增加了-lxt2引數)
cp Max2Test.vcd Max2Test.lxt
gtkwave Max2Test.lxt
會出現如下波形顯示,表示設計的Max2電路實現了預期設想,也就是Chisel翻譯得到的verilog模組是正確的。