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

Spike-as-a-Tile #1307

Merged
merged 8 commits into from
Feb 2, 2023
Merged

Spike-as-a-Tile #1307

merged 8 commits into from
Feb 2, 2023

Conversation

jerryz123
Copy link
Contributor

@jerryz123 jerryz123 commented Jan 6, 2023

This PR integrates a spike processor model as a tile into chipyard.
The spike processor model supports any RISC-V ISA configuration Spike supports, and dynamically links with spike-as-a-library.
The spike processor interfaces with chipyard through a cache-coherent Tilelink model.
Of course, this shouldn't be used for any performance-modelling.

It is useful for stress-testing MMIO devices, or accelerators.
Adding RoCC support would be a cool extension.

Also, atomics aren't guaranteed to be atomic.

TODO:

  • some documentation

Related PRs / Issues:

Type of change:

  • Bug fix
  • New feature
  • Other enhancement

Impact:

  • RTL change
  • Software change (RISC-V software)
  • Build system change
  • Other

Contributor Checklist:

  • Did you set main as the base branch?
  • Is this PR's title suitable for inclusion in the changelog and have you added a changelog:<topic> label?
  • Did you state the type-of-change/impact?
  • Did you delete any extraneous prints/debugging code?
  • Did you mark the PR with a changelog: label?
  • (If applicable) Did you update the conda .conda-lock.yml file if you updated the conda requirements file?
  • (If applicable) Did you add documentation for the feature?
  • (If applicable) Did you add a test demonstrating the PR?
  • (If applicable) Did you mark the PR as Please Backport?

Copy link
Member

@tianrui-wei tianrui-wei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very impressive work overall :)

Copy link
Contributor

@abejgonzalez abejgonzalez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to look at spiketile.* still but here is a temp. review.

sims/common-sim-flags.mk Show resolved Hide resolved
val masterNode = visibilityNode
val slaveNode = TLIdentityNode()

override def isaDTS = "rv64gcv_Zfh"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this true with the current CY toolchain?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't passed to the toolchain.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know it's not passed but right now we can't compile code outside gc right? I'm not sure it would make sense to restrict this to rv64gc for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rv64gcv_Zfh is a superset of rv64gc. The cpu is always allowed to report that it has more capability than the software needs.

Copy link
Contributor

@abejgonzalez abejgonzalez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Skimmed the C++/V side and it seems fine for now (esp. since this is an experimental feature)

@abejgonzalez
Copy link
Contributor

Now that this exists, maybe it makes sense to boot Linux in CI with this.

@jerryz123
Copy link
Contributor Author

Now that this exists, maybe it makes sense to boot Linux in CI with this.

This needs a faster firemarshal linux image,

@jerryz123 jerryz123 marked this pull request as ready for review January 26, 2023 18:50
@jerryz123 jerryz123 merged commit e732fdf into main Feb 2, 2023
@jerryz123 jerryz123 deleted the spiketile branch February 5, 2023 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants