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:
Cloning the chisel template project to my local machine
Executing "sbt eclipse" in the root folder (with this tool). In order to be able to import it in Eclipse
Importing the project-template in Eclipse Luna
Copying the common/ and rv32_1stage/ folders from the Sodor Projects src/ folder in my project-templates src/ folder.
It then looks like this:
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..