Chisel实验笔记(四)
2015-06-04 09:20
316 查看
在《Chisel实验笔记(二)》中,通过编写TestBench文件,然后使用Icarus Verilog、GtkWave可以测试,查看相关波形,比较直观,在《Chisel实验笔记(三)》直接对得到C++模拟器进行测试,也可以得到测试结果,实际上对C++模拟器进行测试也可以同时得到vcd文件,从而使用GtkWave查看波形,得到直观的结果。本文就介绍了这个过程。
为了得到对应的vcd文件,需要对《Chisel实验笔记(三)》中的代码做一处修改:
在main方法的margs变量中增加一个参数"--vcd",如下:
此时运行该程序,可以输出仿真结果如下:
共生成了10组随机数,每次输出其中较大的数据。
同时得到了一个Max2.vcd文件,使用gtkwave Max2.vcd即可打开该文件,结果如下:
为了得到对应的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即可打开该文件,结果如下:
相关文章推荐
- 融云 Android sdk 2.1+ 稳定版 UI 和 模块功能自定义(二)
- zoj 1659 Mobile Phone Coverage(矩形面积并)
- 内网IPC$种马的三种方法
- Android NDK开发篇(一):新版NDK环境搭建(免Cygwin,超级快)
- 抓住本质问题:读《戒嗔的白粥馆》 有感
- 实验四
- 实验三
- 深度学习综述(LeCun、Bengio和Hinton)
- JS对于Android和IOS平台的点击响应的适配
- (转)App工程结构搭建:几种常见Android代码架构分析
- [转载] Docker背后的容器管理——Libcontainer深度解析
- 构建 iOS 风格移动 Web 应用程序的8款开发框架
- Win7 64位中MinGW和MSYS的安装
- 都是自动挡,AT/CVT/AMT双离合究竟谁最强?
- jquery datagrid 参数及使用
- C#的百度地图开发(三)依据坐标获取位置、商圈及周边信息
- 【转】Android HAL实例解析
- Android 应用开发推荐书单
- MYSQL下什么命令查看当前正在使用的数据库
- Letex画复杂表格的方法