zoukankan      html  css  js  c++  java
  • Chisel实验笔记(四)

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



  • 相关阅读:
    Simple DirectMedia Layer常用API总结
    [游戏复刻] Super Mario Brothers(1985. Famicom)
    [游戏复刻] 2048(2014. Android)
    图的结构以及寻路算法的c实现
    散列查找的C实现
    【游戏编程从0开始】一、基本结构
    C++中const关键字用法总结
    C标准库常用函数概要
    字符串表达式计算器的设计
    初探数据结构
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6944511.html
Copyright © 2011-2022 走看看