在上一篇《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 install2、安装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 install3、编写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
endmodule4、仿真得到结果
在终端输入如下命令可以仿真得到并查看波形
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模块是正确的。
版权声明:本文为leishangwen原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。