-
Notifications
You must be signed in to change notification settings - Fork 33
fix #306 #308
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
base: main
Are you sure you want to change the base?
fix #306 #308
Conversation
|
@FrancescoDeMalde-synthara @StMiky @MaurizioCapra-synthara can you please check this PR? |
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.
@davideschiavone Thank you for the changes!
I made some questions, in summary:
- If the modifications on cve2_ex_block are really necessary.
- Add a comment line describing or summarizing the intended scoreboard mechanism introduced.
- A probable mistake on the assignment of the number of the CV-X-IF in-flight instructions.
At this point, we would really benefit of a basic example that tests this code, be it here or as a test on cv32e20-dv.
Co-authored-by: Cairo Caplan <cairo.caplan@eclipse-foundation.org>
hi @cairo-caplan , thanks - I did all the modifications suggested - regarding the test, unfortunately it would need a coprocessor or something like that (or at least an UVM agent) which I believe can be discussed later |
cairo-caplan
left a comment
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.
@davideschiavone, thank you for the changes and for the clear description of the scoreboard mechanism on the ID Stage.
I am approving it.
Thanks @cairo-caplan - I would still like to get @StMiky review as he is the one who found the bug - then I merge. Best |
|
I tested the core with a light-weight vector coprocessor. All the regression tests pass and the X-IF ID is maintained as expected across multiple outstanding instructions. @davideschiavone one thing that might be worth checking is that with the current implementation the core may process interrupts/exceptions/WFI without waiting for the completion of all the offloaded instructions. As an example, a WFI issued right after an offloaded instruction taking multiple cycles to execute may prevent the core from saving the return value from the offloaded instruction. A second, minor change that I would apply is to expose the |
|
Hi @davideschiavone, @StMiky, @cairo-caplan, |
|
@StMiky suggested the following, and I believe @FrancescoDeMalde-synthara likes it:
As this would be a slightly different discussion that fixing #306, I took created a GitHub Discussion, #309 for it. Please add your thoughts there. |
@StMiky - actually this is a very good point and you are right - I will fix and test this with an exception/systcall/debug/interrupt request to be sure the core waits for the scoreboard before taking them - Note that this may have a few complication: (1) today if an interrupt arrives and the core is waiting for a X-IF instruction to write back - it won't take the interrupt best |
SEC when X-IF is expected to fail