在《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就可以打开该文件,结果例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpc2hhbmd3ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

最新文章

  1. html5调取手机摄像头或相册
  2. 试试用有限状态机的思路来定义javascript组件
  3. 第二百一十天 how can I 坚持
  4. 【成都GamEver游戏公司诚邀服务器伙伴】【7~15k一年4次项目奖金】
  5. hdu3830 (二分+LCA)
  6. Swift - 经纬度位置坐标与真实地理位置相互转化
  7. ubuntu14下python环境的配置
  8. C语言作业评价标准
  9. Springboot项目启动后访问不到Controller
  10. SqlServer查询某个表的列名称、说明、备注、类型等
  11. Python爬虫html解析工具beautifulSoup在pycharm中安装及失败的解决办法
  12. RV32FD指令集
  13. 转 Kubernetes 入门 概念理解
  14. javascript和jquery如何判断元素是否存在最佳。
  15. win7 x64+iis7.5 配置错误:CS0016: 未能写入输出文件&ldquo;c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\7cb4f3
  16. 【洛谷P3225】[HNOI2012]矿场搭建
  17. 主攻ASP.NET.4.5 MVC4.0之重生:二维码生成和谷歌二维码
  18. Sicily 8843 Ranking and Friendship
  19. java.lang.UnsupportedClassVersionError: com/dw/Function : Unsupported major.minor version 52.0
  20. 如何修改IOS的默认字体

热门文章

  1. mongodb后台执行
  2. 从零单排入门机器学习:线性回归(linear regression)实践篇
  3. PHP 7给我震撼
  4. 指针,c语言的灵魂
  5. 英语发音规则---R字母
  6. oracle性能检测sql语句
  7. 2017第34周复习Java总结
  8. [JavaEE]Hibernate 所有缓存机制详解
  9. 编译libvlc。。。
  10. oracle导入导出操作