Chisel实验笔记(二)
2015-05-29 10:35
239 查看
在上一篇《Chisel实验笔记(一)》中,我们的到了对应的verilog文件,本文将采用Icarus Verilog + GtkWave进行仿真验证。
实验平台还是Ubuntu14.04(64位)
1、安装Icarus Verilog-0.9.7
首先输入如下命令:
然后安装zlib,下载地址http://www.zlib.net/,解压缩后,使用终端进入所在目录,输入如下命令安装:
最后下载Icarus Verilog-0.9.7,使用终端进入所在目录,输入如下命令安装:
2、安装GtkWave3.3.64
首先安装Tcl8.6.4,下载地址http://www.tcl.tk/software/tcltk/download.html,解压缩后,使用终端进入其中的unix目录,输入如下命令:
然后安装Tk8.6.4,下载地址http://www.tcl.tk/software/tcltk/download.html,解压缩后,进入其中的unix目录,输入如下命令:
然后安装xz5.2.1,下载地址http://tukaani.org/xz/,解压缩后,使用终端进入所在目录,输入如下命令:
接下来,执行如下命令:
否则在configure gtk的时候会出现如下错误
最后下载GtkWave3.3.64,解压缩后,使用终端进入所在目录,输入如下命令:
3、编写TestBench
新建文件Max2Test.v,内容如下:
其中有四组输入,每次从中选择一个较大的数作为输出。
4、仿真得到结果
在终端输入如下命令可以仿真得到并查看波形
或者对结果进行压缩,命令如下:
会出现如下波形显示,表示设计的Max2电路实现了预期设想,也就是Chisel翻译得到的verilog模块是正确的。
实验平台还是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模块是正确的。
相关文章推荐
- 二维数组的指针问题
- 收集好的技术文章、网站
- UCOSii(二)——任务的就绪与调度
- 11
- 如何用汇编写51单片机程序之模块化程序
- 云计算安全解决方案白皮书(三)
- 趣味图形之 二次函数与圆相交
- 云计算安全解决方案白皮书(三)
- BING : Binarized Normed Gradients for Objectness Estimation at 300fps 论文笔记
- js之iframe子页面与父页面通信
- Android--如何将android studio项目转换成eclipse
- android studio离线更新
- Android开发常用的颜色值
- virtualbox 中0x80040154错误的解决方法
- wlcsp封装技术的优缺点与未来
- js 面向对象选项卡
- oc调用rest api
- 静态路由的配置
- iOS动画
- Git学习笔记1