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

Project Contribution Outreach #13

Open
Mluckydwyer opened this issue Mar 15, 2021 · 7 comments
Open

Project Contribution Outreach #13

Mluckydwyer opened this issue Mar 15, 2021 · 7 comments

Comments

@Mluckydwyer
Copy link
Contributor

Hello, I am a member of a small undergraduate team that is currently working on a project to extend the documentation and support for this project. Ultimately, we hope to emulate a simulation data interface that would allow a developer to interact with a SystemC model to perform end-to-end modeling. We hope to make meaningful contributions to this repository and similar projects over the coming year and wanted to reach out to gain feedback on our proposed additions and identify areas that would be good additions/areas of improvement. Listed are a few initial ideas as we continue to learn the tools (we are all new to QEMU, SystemC TLM). Please feel free to leave any feedback, as we would like to build a strong foundation for our work on this project and our future contributions. Also, please let us know if there is another preferred method of collaboration (forum posts, maining list, support tickets, etc.).

  • Drafting a comprehensive startup document for this demo (we encountered a number of issues/had a lot of support bringing the demo up, so we feel a detailed example setup might be beneficial). This would be in addition to the documentation provided and curated in Confluence here.
  • Integrate a UDP like protocol to the host OS to allow for multiple tests to be conducted/bi-directional information transactions to occur throughout the simulation process without the need for intervention to switch data or tests. This would allow for the replay of realistic data to be piped into the system and allow for a double blind (black box hw/sw implementation) simulation to recreate realistic interaction scenarios.
  • Extend the demo application to include a basic bi-directional memory mapped sensor (accelerometer, temp. sensor, etc.) example with clear bring-up and implementation documentation, enabling complex hardware and software interface integration.
@spencer-davis
Copy link

I am a member of this project group. Just commenting to join the thread.

@edgarigl
Copy link
Collaborator

Hello,

Thanks for reaching out. I agree that better documentation and examples would be very helpful.
Creating a demo with the sensors you mention sounds like a good idea!

I'm not sure I fully understand the UDP host OS protocol, perhaps you could elaborate a little more on that idea?

Thanks & best regards,
Edgar

@ctomkins1
Copy link

I am also a member of this group. Our idea was to create a sort of UDB "bridge" that will allow the transfer of data from a host pc to the SystemC application and vice versa. Like Matt said, it will allows us to create more realistic interaction scenarios by piping realistic data into the stream and creating a double blind simulation.

@edgarigl
Copy link
Collaborator

Thanks for clarifying! Sounds interesting. I guess the devil will be in the details.

Would you be reusing the packet formats of libremote-port or are you thinking to create something separate?

Best regards,
Edgar

@Mluckydwyer
Copy link
Contributor Author

My team and I are currently exploring the use of the libremote-port and it looks like that may be the best option for connecting our SystemC to the host OS. With regard to that, I have been investigating the libsystemctlm-soc repo for information about how to implement it but have encountered issues. It seems this demo and that repo are the best examples I have found to date of the libremote-port but due to what I believe is a breaking Verilator version difference I cannot get the tests of the libsystemctlm-soc to compile. If you have any other resources regarding the libremote-port and the packet formats you mentioned I would love to take a look at those as well.

Thank you again,
Matt

@rc-matthew-l-weber
Copy link

For your verilator version difference, have you tried locking in all the specific versions like shown at the end of this similar compilation failure ticket?

Xilinx/libsystemctlm-soc#9

@Mluckydwyer
Copy link
Contributor Author

Mluckydwyer commented Apr 15, 2021

@rc-matthew-l-weber For the time being we have been developing our own demos by looking into the libremote-port as suggested by @edgarigl. We seem to be making progress on that front since that better resembles how our Host OS communication into the SystemC simulation. We hoped to use the demos as a springboard in our understanding but have made do without them for the time being. We hope to come back to this at some point and document the proper procedures to get them up and running as well.

Thanks for clarifying! Sounds interesting. I guess the devil will be in the details.

Would you be reusing the packet formats of libremote-port or are you thinking to create something separate?

@edgarigl We have also taken further looks into the libremote-port implementation and packet protocals and determined that they should be sufficient for our needs (rather than our initial custom UDP ideas). At the current time, we are still decoding and understanding the packet protocol with the tools provided by the libsystemctlm-soc repository. We hope to soon have an MVP working to publish and document.

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

No branches or pull requests

5 participants