Chisel实验笔记(二)

在上一篇《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模块是正确的。

时间: 2024-08-03 16:34:32

Chisel实验笔记(二)的相关文章

Chisel实验笔记(四)

在<Chisel实验笔记(二)>中,通过编写TestBench文件,然后使用Icarus Verilog.GtkWave可以测试,查看相关波形,比较直观,在<Chisel实验笔记(三)>直接对得到C++模拟器进行测试,也可以得到测试结果,实际上对C++模拟器进行测试也可以同时得到vcd文件,从而使用GtkWave查看波形,得到直观的结果.本文就介绍了这个过程. 为了得到对应的vcd文件,需要对<Chisel实验笔记(三)>中的代码做一处修改: 在main方法的margs

Chisel实验笔记(三)

在<Chisel实验笔记(一)>中我们得到了verilog文件,在<Chisel实验笔记(二)>中我们使用Icarus Verilog.GtkWave对的道德verilog文件进行了仿真测试,实际上,时欧诺个Chisel可以得到对应的C++文件,从而可以直接进行仿真,本文就介绍产生C++文件,进行测试的实验过程. 1.修改Max2.scala文件如下: import Chisel._ class Max2 extends Module { val io = new Bundle {

Chisel实验笔记(一)

最近在学习Risc-v,其中伯克利大学开源了一款兼容Risc-v指令集的处理器Rocket,而Rocket处理器是采用Chisel编写的,所以要学习Chisel,Chisel的简单介绍如下: Chisel (Constructing Hardware In a Scala Embedded Language). Chisel is a hardware construction language embedded in the high-level programming language Sc

深度学习入门教程UFLDL学习实验笔记二:使用向量化对MNIST数据集做稀疏自编码

今天来做UFLDL的第二个实验,向量化.我们都知道,在matlab里面基本上如果使用for循环,程序是会慢的一逼的(可以说基本就运行不下去)所以在这呢,我们需要对程序进行向量化的处理,所谓向量化就是将matlab里面所有的for循环用矩阵运算的方法实现,在这里呢,因为之前的实验我已经是按照向量化的形式编写的代码,所以这里我只把我对代码修改的部分发上来供大家参考吧.本文为本人原创,参考了UFLDL的教程,是我自己个人对于这一系列教程的理解以及自己的实验结果.非盈利性质网站转载请在文章开头处著名本文

SQL*Loader实验笔记【二】

所有SQL*Loader实验笔记 实验案例总结(1-7):     SQL*Loader实验笔记[一] 实验案例总结(8-13):   SQL*Loader实验笔记[二] 实验案例总结(14-19): SQL*Loader实验笔记[三]   8)加载序列 初始化 [email protected]>create table t2 (seqno int,name varchar2(20)); Table created. 控制文件 load data infile * into table t2

老男孩培训视频听课笔记二(在51cto上听的)

centos 5.8 文本安装过程    引导采用默认,引导不用设置密码    网络配置,根据实际情况配置,网关是网络出口的地址,一般为wlan出口的路由器的地址或者是代理服务器的内网IP    DNS简单解说图:      主机名--时区--root密码    选择自定义系统安装包--最小化(安全方便工作,建议安装以下的组)      ·base-- 基础      ·editors-编辑器      ·development librarays--开发库      ·development

《卓有成效的程序员》----读书笔记二

六大方面对比Launchy和TypeAndRun(TAR) 对于快速启动工具,很多人都有自己的偏好,多次听到朋友介绍Launchy的好,虽然自己一直在使用着TAR,还是克制不住对于好软件的渴求,下载Launchy进行试用.很多软件都是有一个试用期的,也许新的软件确实不错,但是你习惯了以前使用的那个软件.今天就比较客观的将Launchy和TAR进行一下对比,从界面.上手速度到功能.自定义,以及软件的稳定性.占用资源进行详细的比较. [界面美观]Launchy:毫无疑问这是它的强项.1.0正式版自带

Caliburn.Micro学习笔记(二)----Actions

Caliburn.Micro学习笔记(二)----Actions 上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 我们还是从做例子开始 demo的源码下载在文章的最后 例子1.无参数方法调用 点击button把textBox输入的文本弹出来 如果textbox里没有文本button不可点,看一下效果图 看一下前台代码 <Stac

《逻辑思维简易入门》(第2版) 阅读笔记二

<逻辑思维简易入门>(第2版) 阅读笔记二 本周阅读的是<逻辑思维简易入门>的第三章,也就是说,本书的第一部分就已经读完了. 第三章.信念的优点 信念和负信念是人们在接受一个事物时一种心理态度,延伸来说也就是对事物的认知态度.因为我们在研究 逻辑思维的时候,都有一个前提:“以正常情况以及说话者真诚”,所以有人如果对于一件事物不做回应,我们可以认为这是一种既不相信,也不怀疑的的态度. 信念的优缺点有很多,在书中主要介绍了下面几种: 1.准确性 好的信念实在准确的表达事实,同样真的信念