Skip to content
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

MultiSoC Configs should handle uniquification between harness and multiple ChipTops #1624

Closed
2 tasks done
abejgonzalez opened this issue Oct 16, 2023 · 7 comments · Fixed by #1640
Closed
2 tasks done

Comments

@abejgonzalez
Copy link
Contributor

Background Work

Feature Description

Currently, both firtool and scripts/uniquify-* support having 1 ChipTop to uniquify modules (firtool can only mark 1 module underneath the harness as a DUT - used to generate the corresponding json)(scripts/uniquify-* directly checks if the --dut arg matches a specific module).

This should be supported somehow.

Motivating Example

Can't generate multi-SoC config. where modules might need to be uniquified between the harness and multiple chiptops.

@jerryz123
Copy link
Contributor

jerryz123 commented Oct 16, 2023

Shouldn't the multi-soc config treat everything that is not ChipTop0 as within the harness, from a unifuification perspectivice?

@abejgonzalez
Copy link
Contributor Author

Correct, it does. However, I think all "ChipTop{_*}"'s should be "bundled" together. Otherwise, there are modules that are uniquified incorrectly causing missing Verilog errors in VCS/Verilator.

@jerryz123
Copy link
Contributor

Hmmm, does the default compile for some multi-top config fail because of this? I thought the uniquification would never cause modules to be "lost" like this

@abejgonzalez
Copy link
Contributor Author

Yea I was seeing errors with my specific SoC config (fairly beefly dual-Rocket-SoC + rocc accelerators + mmio devices config). I'll try to recreate this, but this issue serves as a reminder that this is an issue.

@abejgonzalez
Copy link
Contributor Author

Also, I'm not sure this is related exactly to this issue but also comes up in a similar setup...

If you have two addPath (from HasBlackBoxPath) calls that are the same for two modules firtool errors saying "can't find " even though it exists. This can be bypassed by using addResource (from HasBlackBoxResource) which inlines the aforementioned file and then re-emits it.

@jerryz123
Copy link
Contributor

If you have two addPath (from HasBlackBoxPath) calls that are the same for two modules firtool errors saying "can't find " even though it exists. This can be bypassed by using addResource (from HasBlackBoxResource) which inlines the aforementioned file and then re-emits it.

Does this happen for a single-soc build as well?

@abejgonzalez
Copy link
Contributor Author

Untested right now but this should be easy to replicate both in/out of Chipyard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants