It would be beneficial to enable testing that did not rely on instantiating a rocket chip. This is faster, enables VCD debugging, and would enable unit testing of individual modules. The problem relates to properly pulling in all the dependencies and parameters needed by X-FILES/DANA.
It seems like there are four ways of pulling in dependencies:
Defining dependencies as projects, e.g., lazy val rocket = project in file(...). This has problems related to the project living in a separate directory.
Defining dependencies as a RootProject, e.g., lazy val rocketChip = RootProject(file(...)). This is questionable because an entire rocket-chip isn't needed.
Defining dependencies as unmanaged source, e.g., unmanagedSourceDirectories in Compile += baseDirectory.value / "../rocket/src/main/scala". This works alright for everything except Chisel.
Defining dependencies as libraries, e.g., pulling Chisel locally or from the Maven repo.
A mixture of these seems to work except I'm unable to pull in all the requisite parameters. If I don't include the rocket-chip configuration, then I have trouble with PAddrBits. However, if I do include the rocket-chip configuration, I have trouble with TLId.
There should be a way to do this and do it cleanly, but I'm at a loss presently.
It would be beneficial to enable testing that did not rely on instantiating a rocket chip. This is faster, enables VCD debugging, and would enable unit testing of individual modules. The problem relates to properly pulling in all the dependencies and parameters needed by X-FILES/DANA.
It seems like there are four ways of pulling in dependencies:
lazy val rocket = project in file(...)
. This has problems related to the project living in a separate directory.RootProject
, e.g.,lazy val rocketChip = RootProject(file(...))
. This is questionable because an entire rocket-chip isn't needed.unmanagedSourceDirectories in Compile += baseDirectory.value / "../rocket/src/main/scala"
. This works alright for everything except Chisel.A mixture of these seems to work except I'm unable to pull in all the requisite parameters. If I don't include the rocket-chip configuration, then I have trouble with
PAddrBits
. However, if I do include the rocket-chip configuration, I have trouble withTLId
.There should be a way to do this and do it cleanly, but I'm at a loss presently.