-
Notifications
You must be signed in to change notification settings - Fork 674
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
FireSim x Chipyard Decoupled #1984
Conversation
.settings(commonSettings) | ||
.settings(chiselSettings) | ||
// TODO: AJG: ^ Fix |
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.
I'll fix this in another PR.
This is ready for review (passes all CI except for |
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.
I think I understand why bridges are in here - they are target-specific.
It is not as clear to me why the .mk
fragments are here. Aren't those core parts of firesim's build system that should remain with firesim? In what ways are they target-specific?
You can think of them similarly to With VCS/Verilator in Chipyard we directly invoke the |
Ok I see, so this is a side-effect of fs's Python manager invoking makefiles that describe construction of target-specific things. I think a longer-term goal would be to avoid having the interface to firesim be through make fragments, but this arrangement is fine fo rnow. |
I agree. But I think this is sufficient for now (like you said) |
generators/firechip/core/src/main/cc/bridges/cospike/mem_pool.cc
Outdated
Show resolved
Hide resolved
I'm not sure I'm a fan of |
I'm avoiding calling things |
Ah, that conflict is a very good point.
|
How about this instead:
The bridge interfaces should be in a separate SBT project / Edit: Can also combine the package path a bit so things are consistent: |
I find the name
|
IMO |
I would like the name to convey that these are bridge RTL implementations which are elaborated when midas runs. |
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.
Overall this looks fine. Once we resolve the package naming, I think this can be merged
How about this instead:
Ok @joonho3020 how about this? |
I don't want to nitpick too much, but now |
Nitpick now or forever hold your peace.
How about now? |
Thanks, I like it |
Disabling CI since the latest commit(s) shouldn't affect anything. |
Sister PR: firesim/firesim#1791
Originally FireSim and Chipyard were coupled sharing things like (1) Scala sources (and SBT sources) (2) Conda environments (3) Bridges (...) and more. However, this PR decouples FireSim from Chipyard s.t. all "target" (ie. DUT) specific features are located in Chipyard (ie. things like FireSim UART bridges, NIC bridges, etc) and FireSim provides a hook to Chipyard so that I can run the FireSim makefile itself.
This includes the following:
chipyard-run-tests.yml
(in the past, we directly invoked the FireSim compiler to test simple RISC-V tests) in favor of new CI run duringchipyard-full-flow.yml
(Scala-based testing moved from FireSim).firesim-staging
simulator area where there is a FireSim symlink that points to FireSim when FireSim is top.build.sbt
abstracts the Scala test dependencycommon.mk
s.t. it points to the right FireSim sources.core
(FireSim top-level harness and target-specific bridges),bridge-interfaces
(target bridge interfaces that are copied into FireSim),firesim-only
(the FireSim-only side of target-specific bridges).Chipyard documentation is minimally changed (FireSim documentation needs to be updated).
Related PRs / Issues:
Type of change:
Impact:
Contributor Checklist:
main
as the base branch?changelog:<topic>
label?changelog:
label?.conda-lock.yml
file if you updated the conda requirements file?Please Backport
?