您的位置:首页

Chisel实验笔记(四)

2017-06-05 13:41 127 查看
在《Chisel实验笔记(二)》中。通过编写TestBench文件,然后使用Icarus Verilog、GtkWave能够測试,查看相关波形。比較直观,在《Chisel实验笔记(三)》直接对得到C++模拟器进行測试。也能够得到測试结果,实际上对C++模拟器进行測试也能够同一时候得到vcd文件,从而使用GtkWave查看波形,得到直观的结果。

本文就介绍了这个过程。

为了得到相应的vcd文件,须要对《Chisel实验笔记(三)》中的代码做一处改动:

在main方法的margs变量中添加一个參数"--vcd"。例如以下:

val margs=Array("--backend","c","--genHarness","--compile","--test","--vcd")  // 添加了一个“--vcd”參数


此时执行该程序。能够输出仿真结果例如以下:

<pre name="code" class="plain">STARTING ./Max2
RESET 5
POKE Max2.io_in0 <-  0x82
POKE Max2.io_in1 <-  0x80
STEP 1 -> 1
PEEK Max2.io_out -> 0x82
EXPECT Max2.io_out <- 130 == 130 PASS
POKE Max2.io_in0 <-  0x65
POKE Max2.io_in1 <-  0xae
STEP 1 -> 2
PEEK Max2.io_out -> 0xae
EXPECT Max2.io_out <- 174 == 174 PASS
POKE Max2.io_in0 <-  0xef
POKE Max2.io_in1 <-  0x3b
STEP 1 -> 3
PEEK Max2.io_out -> 0xef
EXPECT Max2.io_out <- 239 == 239 PASS
POKE Max2.io_in0 <-  0x9c
POKE Max2.io_in1 <-  0xb5
STEP 1 -> 4
PEEK Max2.io_out -> 0xb5
EXPECT Max2.io_out <- 181 == 181 PASS
POKE Max2.io_in0 <-  0x5b
POKE Max2.io_in1 <-  0x2d
STEP 1 -> 5
PEEK Max2.io_out -> 0x5b
EXPECT Max2.io_out <- 91 == 91 PASS
POKE Max2.io_in0 <-  0xc9
POKE Max2.io_in1 <-  0xda
STEP 1 -> 6
PEEK Max2.io_out -> 0xda
EXPECT Max2.io_out <- 218 == 218 PASS
POKE Max2.io_in0 <-  0x2a
POKE Max2.io_in1 <-  0xaa
STEP 1 -> 7
PEEK Max2.io_out -> 0xaa
EXPECT Max2.io_out <- 170 == 170 PASS
POKE Max2.io_in0 <-  0x31
POKE Max2.io_in1 <-  0x64
STEP 1 -> 8
PEEK Max2.io_out -> 0x64
EXPECT Max2.io_out <- 100 == 100 PASS
POKE Max2.io_in0 <-  0x7c
POKE Max2.io_in1 <-  0x86
STEP 1 -> 9
PEEK Max2.io_out -> 0x86
EXPECT Max2.io_out <- 134 == 134 PASS
POKE Max2.io_in0 <-  0x94
POKE Max2.io_in1 <-  0x4f
STEP 1 -> 10
PEEK Max2.io_out -> 0x94
EXPECT Max2.io_out <- 148 == 148 PASS
STEP 1 -> 11
RAN 11 CYCLES PASSED
PASSED



共生成了10组随机数,每次输出当中较大的数据。

同一时候得到了一个Max2.vcd文件,使用gtkwave Max2.vcd就可以打开该文件,结果例如以下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: