0

I'm trying to setup the Sodor Processor Collection (RISC-V) from Github. My main goal is to setup the 1-Stage Processor in my own chisel project in order to modify it and possibly write a scala testbench.

Currently i'm doing the following:

  1. Cloning the chisel template project to my local machine

  2. Executing "sbt eclipse" in the root folder (with this tool). In order to be able to import it in Eclipse

  3. Importing the project-template in Eclipse Luna

  4. Copying the common/ and rv32_1stage/ folders from the Sodor Projects src/ folder in my project-templates src/ folder.

It then looks like this:

enter image description here

However, Eclipse shows 72 errors:

    not found: object Node  configurations.scala    /riscv-sodor-own/src/main/scala/common  line 4  Scala Problem
    not found: object Node  consts.scala    /riscv-sodor-own/src/main/scala/rv32_1stage line 13 Scala Problem
    not found: object Node  core.scala  /riscv-sodor-own/src/main/scala/rv32_1stage line 21 Scala Problem
    not found: object Node  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 11 Scala Problem
    not found: object Node  csr.scala   /riscv-sodor-own/src/main/scala/common  line 13 Scala Problem
    not found: object Node  decode.scala    /riscv-sodor-own/src/main/scala/common  line 4  Scala Problem
    not found: object Node  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 12 Scala Problem
    not found: object Node  htif.scala  /riscv-sodor-own/src/main/scala/common  line 4  Scala Problem
    not found: object Node  instructions.scala  /riscv-sodor-own/src/main/scala/common  line 6  Scala Problem
    not found: object Node  memory.scala    /riscv-sodor-own/src/main/scala/common  line 21 Scala Problem
    not found: object Node  tile.scala  /riscv-sodor-own/src/main/scala/rv32_1stage line 10 Scala Problem
    not found: object Node  top.scala   /riscv-sodor-own/src/main/scala/rv32_1stage line 4  Scala Problem
    not found: object Node  util.scala  /riscv-sodor-own/src/main/scala/common  line 9  Scala Problem
    not found: value Lit    decode.scala    /riscv-sodor-own/src/main/scala/common  line 20 Scala Problem
    not found: value Lit    decode.scala    /riscv-sodor-own/src/main/scala/common  line 20 Scala Problem
    not found: value Lit    util.scala  /riscv-sodor-own/src/main/scala/common  line 131    Scala Problem
    not found: value Literal    decode.scala    /riscv-sodor-own/src/main/scala/common  line 11 Scala Problem
    overloaded method value apply with alternatives:   (x: String,radix: Int)scala.math.BigInt <and>   (numbits: Int,rnd: scala.util.Random)scala.math.BigInt <and>   (signum: Int,magnitude: Array[Byte])scala.math.BigInt  cannot be applied to (Any, Int)    decode.scala    /riscv-sodor-own/src/main/scala/common  line 12 Scala Problem
    overloaded method value apply with alternatives:   (x: String,radix: Int)scala.math.BigInt <and>   (numbits: Int,rnd: scala.util.Random)scala.math.BigInt <and>   (signum: Int,magnitude: Array[Byte])scala.math.BigInt  cannot be applied to (Any, Int)    decode.scala    /riscv-sodor-own/src/main/scala/common  line 12 Scala Problem
    overloaded method value apply with alternatives:   [T <: chisel3.core.Data](size: Int, t: T)chisel3.core.Mem[T] <and>   [T <: chisel3.core.Data](t: T, size: Int)chisel3.core.Mem[T]  cannot be applied to (chisel3.core.UInt, Int, seqRead: Boolean)   memory.scala    /riscv-sodor-own/src/main/scala/common  line 86 Scala Problem
    overloaded method value apply with alternatives:   [T <: chisel3.core.Data](size: Int, t: T)chisel3.core.Mem[T] <and>   [T <: chisel3.core.Data](t: T, size: Int)chisel3.core.Mem[T]  cannot be applied to (chisel3.core.UInt, Int, seqRead: Boolean)   memory.scala    /riscv-sodor-own/src/main/scala/common  line 87 Scala Problem
    type mismatch;  found   : Any  required: chisel3.core.Data  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 139    Scala Problem
    type mismatch;  found   : Any  required: chisel3.core.Data  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 140    Scala Problem
    type mismatch;  found   : Any  required: chisel3.core.Data  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 141    Scala Problem
    type mismatch;  found   : Any  required: chisel3.core.Data  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 142    Scala Problem
    type mismatch;  found   : Any  required: chisel3.core.Data  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 158    Scala Problem
    type mismatch;  found   : Any  required: chisel3.core.Data  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 159    Scala Problem
    type mismatch;  found   : Any  required: chisel3.core.Data  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 181    Scala Problem
    type mismatch;  found   : Array[(chisel3.core.UInt, List[chisel3.core.UInt])]  required: Array[(chisel3.util.BitPat, List[?])]  cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 52 Scala Problem
    type mismatch;  found   : chisel3.core.Bool  required: Int  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 104    Scala Problem
    type mismatch;  found   : chisel3.core.Bool  required: Int  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 105    Scala Problem
    type mismatch;  found   : chisel3.core.Bool  required: Int  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 106    Scala Problem
    type mismatch;  found   : chisel3.core.Bool  required: Int  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 108    Scala Problem
    type mismatch;  found   : chisel3.core.Bool  required: Int  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 227    Scala Problem
    type mismatch;  found   : chisel3.core.SInt  required: chisel3.core.UInt    csr.scala   /riscv-sodor-own/src/main/scala/common  line 240    Scala Problem
    type mismatch;  found   : chisel3.core.UInt  required: Int  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 101    Scala Problem
    type mismatch;  found   : chisel3.core.UInt  required: Int  dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 107    Scala Problem
    type mismatch;  found   : Int(11)  required: chisel3.UInt     (which expands to)  chisel3.core.UInt dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 108    Scala Problem
    type mismatch;  found   : Int(12)  required: chisel3.UInt     (which expands to)  chisel3.core.UInt dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 107    Scala Problem
    type mismatch;  found   : Int(19)  required: chisel3.UInt     (which expands to)  chisel3.core.UInt dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 106    Scala Problem
    type mismatch;  found   : Int(20)  required: chisel3.UInt     (which expands to)  chisel3.core.UInt dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 104    Scala Problem
    type mismatch;  found   : Int(20)  required: chisel3.UInt     (which expands to)  chisel3.core.UInt dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 105    Scala Problem
    type mismatch;  found   : Int(27)  required: chisel3.UInt     (which expands to)  chisel3.core.UInt dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 101    Scala Problem
    type mismatch;  found   : Int(32)  required: chisel3.UInt     (which expands to)  chisel3.core.UInt dpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 227    Scala Problem
    value & is not a member of Chisel.Bits  decode.scala    /riscv-sodor-own/src/main/scala/common  line 20 Scala Problem
    value & is not a member of Chisel.Bits  util.scala  /riscv-sodor-own/src/main/scala/common  line 31 Scala Problem
    value & is not a member of Chisel.Bits  util.scala  /riscv-sodor-own/src/main/scala/common  line 41 Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 123    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 124    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 125    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 126    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 127    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 128    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 129    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 130    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 131    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 147    Scala Problem
    value === is not a member of Any    cpath.scala /riscv-sodor-own/src/main/scala/rv32_1stage line 147    Scala Problem
    value === is not a member of Chisel.Bits    decode.scala    /riscv-sodor-own/src/main/scala/common  line 20 Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 182    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 182    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 183    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 183    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 184    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 184    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 211    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 212    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 213    Scala Problem
    value === is not a member of Chisel.Bits    memory.scala    /riscv-sodor-own/src/main/scala/common  line 214    Scala Problem
    value litOf is not a member of Chisel.Bits  decode.scala    /riscv-sodor-own/src/main/scala/common  line 9  Scala Problem
    value litOf is not a member of Chisel.Bits  decode.scala    /riscv-sodor-own/src/main/scala/common  line 38 Scala Problem
    value litOf is not a member of Chisel.Bits  decode.scala    /riscv-sodor-own/src/main/scala/common  line 38 Scala Problem

If i directly import the cloned Sodor Processor Collection project from github into eclipse, it shows no errors. But as far as i understood, i can't write a scala testbench there.

I'd very much like to know if it's even possible to create a src/main/scala/test/ folder and write a scala testbench for the Sodor Processor Collection, like it's always done in the chisel tutorials (e.g. here)

My best guess is, that i have to configure the build.sbt file correctly, but i don't know how. (Please tell me if i'm completely wrong with this setup or missed out on something.)

In short

- Sodor Processor Collection in Eclipse?

- Scala testbenches for Sodor Processor Collection?

- If yes to the above, how to resolve the errors?

EDIT

After some research i think the main problem lies within the chisel version compatibility. I found Chisel3 vs. Chisel 2 and saw this:

the Node class and object no longer exist (the class should have been private in Chisel2)

By removing all the unnecessary import Node._ lines, i eliminated 13 of the errors. But 59 remain..

mtosch
  • 351
  • 4
  • 18
  • Sodor has not been updated to Chisel3. It would be quite a lot of work to do so, including changing out the C++ emulator to use Verilator instead. – Chris Nov 17 '16 at 20:29
  • Yes, i ran in some version problems indeed. See your point. Gonna try working with the Rocket Chip Generator as a next step. – mtosch Nov 17 '16 at 21:52

0 Answers0