chisel学习笔记 (一)tutorial踩坑记录

前言:

作者对chisel刚开始入手学习,今天看完chisel-book第五章,想跑一些实验加深学习。。。。但过程有点艰辛。

1、环境

1.Ubuntu20.04:第三期一生一芯中选择使用这个版本,可以使用大佬们已搭建好的工具;

2.IDEA工具:对java工具挺友好的;

3.chisel-tutorial:找了好几个版本chisel相关,这个挺适合新生;

2、准备阶段

        打开chisel-tutorial后,系统会运行build.sbtli里的内容,时间会长一些(这里我选择去吃饭,23333)。

        这里build.sbt里的内容感觉挺全面的,要是下载chisel模板,build.sbt里面scala版本要注意,2.12.**里有一个版本不支持chisel,编译会出问题,显示main函数出错。(此处欠一张截图,后面碰到补上)

        推荐阅读chisel-tutorials中的readme,会有检查工具是否完好。

3、编译hello

1.在终端直接运行

sbt run

2.这里会直接编辑src/main/scala/hello/Hello,其中Hello是完整的代码,并包含测试。

3.编译成功会在终端显示:

4.运行完成后会在test_run_dir生成三个文件。

 

5、编译main/scala/problem/Max2

由于Max2中没有加入object,直接编译会出错误。

这里我还对如何导入包疑惑,一直出问题,故直接像Hello文件一样,将所需要的文件都放在一个文件中。

// See LICENSE.txt for license details.
package problems

import chisel3._
import chisel3.iotesters.{Driver, PeekPokeTester}
import solutions.Mux2
//import solutions
// Problem:
//
// Implement a test for this module. Please edit:
// .../chisel_tutorial/src/test/scala/problems/Max2Tests.scala
//
class Max2 extends Module {
  val io = IO(new Bundle {
    val in0 = Input(UInt(8.W))
    val in1 = Input(UInt(8.W))
    val out = Output(UInt(8.W))
  })
  io.out := Mux(io.in0 > io.in1, io.in0, io.in1)
}

class Max2Tests(c: Max2) extends PeekPokeTester(c) {
  //for (i <- 0 until 10) {

  // Implement below ----------

  poke(c.io.in0, 1)
  poke(c.io.in1, 0)
  step(1)
  expect(c.io.out, 1)

  // Implement above ----------
  //}
}


object Max2 {
  def main(args: Array[String]): Unit = {
    if (!Driver(() => new Max2())(c => new Max2Tests(c))) System.exit(1)
    //  (new chisel3.stage.ChiselStage).emitVerilog(new Hello())
  }
}

6.(1)我在这里直接编译Max2这个文件

runMain problem.Max2

(2)因为我已经试过,这里已经生成main class(个人理解好像生成相应模型模型导入JVM进行编译)

(3)根据提示运行

show discoveredMainClasses

这里会显示当前生产的MainClass。

(4)运行

run last Compile or run Main

 会让你选择加载的模型,这里输入数字(不会显示)即可。

我也是第一次正式实验,其中对chisel只了解皮毛,欢迎大家指点。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值