-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Rebar refactoring #24
base: dev
Are you sure you want to change the base?
Conversation
In an ideal world, I would like everything in firechip/rebar to be simulator-agnostic. i.e. Have all the widgets and SimConfigs be in firesim, while firechip/rebar has only SoC components that are used afterwards in the VLSI flow (or are also used in verilator/vcs). Nevertheless, I still think our vision/goal should be for firechip/rebar to be simulator-agnostic. |
I'm still struggling to understand what the problem is, but it's no problem to put most of the firesim related RTL stuff in a separate package under rebar -- my preference would be Perhaps a better case for this separation relates to whether or not we're going to support making firesim an optional submodule under rebar, as currently none of this will compile without it. |
We had the a previous discussion about making this a "monorepo" vs a "lean project template", and it seems like the majority preferred a "monorepo" where everything is integrated and not modular (I was in a minority). |
lazy val hardfloat = (project in rocketChipDir / "hardfloat") | ||
.settings( | ||
commonSettings, | ||
crossScalaVersions := Seq("2.11.12", "2.12.4")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 2.11 cross scala versions have been dropped, rocket is only 2.12
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool
lazy val firechip = (project in file(".")) | ||
.settings(commonSettings) | ||
.dependsOn(boom, icenet, testchipip, sifive_blocks, midasTargetUtils, midas, | ||
firesim % "test->test;compile->compile") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the test dependency needed? I assume so, otherwise you wouldn't bother, but want to check in case this is no longer true after refactoring.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are common classes in test i extend in tests i've moved into rebar. I could make the dependency more specific.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are common test classes i extend here -- i should be able to make the dependency far more percise as it's more test:compile->test:compile right? I already forget the scope syntax.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could make the dep more precise but it doesn't really matter that much for test.
See firesim/firesim#264.
I started moving things into their proposed locations in rebar.