-
Notifications
You must be signed in to change notification settings - Fork 62
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
Model an Interconnect for Olympia #60
Comments
Hi Arup Is there an existing plan for this issue or someone is planning to pick it up? |
There are no plans nor volunteers at this time to take on this task -- you're the first to ask! To start the discussion, here's my thinking (feel free to augment/add):
The important development task is building the appropriate gaskets to allow Olympia's BIU (also needing development to support multiple outstanding requests + instruction requests) to "bolt" to ... whatever is on the other side. For example:
In this example, the BIU has no idea what it's connected to -- and it never should. |
Hi, @knute-sifive I'm really curious about the methodology of designing SoC/interconnection performance model. We actually give a shot for Sparta this Q1, See here, However what I found is the Sparta scheduler is not suitable for interconnection/SoC modeling, since the handshake logic from Sparta doesn't support Decoupled(which is a common use in interconnection designs). Thus I don't think Sparta is a good idea here. My current idea is providing a SystemC based BFM for TileLink/CHI, and use Diplomacy + Verilator to construct the SoC to work around from the Sparta scheduler. I'm not sure about if this is a correct way:( but I'm still open minded to Sparta, if there are some better examples. |
Fantastic! Be interesting to see what unfolds...
Not sure what you mean by "decoupled." Are you referring to disparate clock domains? Sparta's scheduler coupled with SyncInPort and SyncOutPort should work. Can you elaborate on the issue you have here? I can confirm (without giving too much detail 😉 ) that Sparta has been used to model extremely complex interconnects with success. If you continue with the SystemC route, that's definitely feasible with Sparta (see SystemC Modeling and Sparta). In this mode, Sparta scheduler is slave to SystemC. Note that this modeling direction is significantly slower. |
Hi, Knute,
We take these assumption:
Here are issues we encountered:
So basically the issue is: while Chisel+diplomacy provides a full flexibility, I didn't find a good way in Sparta to align Sparta model and Chisel. I know in SiFive you guys made it possible, but I'm curious:
I mean the ready-valid interface in RTL design, which is call
LOL, I know, that's the reason why our group are trying to use Sparta, rather than GEM5 ;p
Yes, so I have been wondering what's the best practice here. |
Assigning to @jeffnye-gh to complete the description of the issue, per discussion in weekly. |
A NOC related project proposal for Olympia. Olympia is a scalable trace driven performance model which focuses on enabling investigation. For new areas typically an API is developed and a use case is written as proof of principle. Providing Olympia an API for the investigation of NoC topology and behavior would be an important addition to Olympia's capabilities. As part of this project a NoC centric API would be developed and we propose exercising the API with a TileLink or Garnet 2.0 network model. |
Develop an API for Interconnect model and implement an example Interconnect microarchitecture.
Please see #60 (comment) for more details
The text was updated successfully, but these errors were encountered: