-
Notifications
You must be signed in to change notification settings - Fork 682
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
How to Design a Coprocessor #2518
base: master
Are you sure you want to change the base?
How to Design a Coprocessor #2518
Conversation
✔️ successful run, report available here. |
Great contribution ! Very useful for newcomers. To become contributor, you have to sign the Eclipse agreement, can you ? |
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.
Those instructions to implement a simple coprocessor are good.
Some complementary information about forbidden combinational path between issue and result interface would be great.
// 1 RISCV instruction class for our Coprocessor | ||
parameter int unsigned NbInstr = 1; | ||
parameter copro_issue_resp_t CoproInstr[NbInstr] = '{ | ||
'{ | ||
instr: 32'b0000000_00000_00000_000_00000_0101011, // custom1 opcode | ||
mask: 32'b1111111_00000_00000_110_00000_1111111, // bits that must match | ||
resp : '{ | ||
accept : 1'b1, // We will process this instruction | ||
writeback : 1'b1, // We will write a general-purpose register | ||
dualwrite : 1'b0, | ||
dualread : 1'b0, | ||
loadstore : 1'b0, // No memory operation (Not supported in pipeline) | ||
exc : 1'b0 // Cannot throw exception | ||
} | ||
} | ||
}; |
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.
This looks based on a deprecated version of the cvxif_instr_pkg.sv
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.
I must have been working from the latest tagged release. (v5.1.0 also reportedly doesn't build, sadly, due to a problem with dual-issue parameterisation which was fixed soon after.). I'll update the example to be based on master.
@JeanRochCoulon Apologies, this took us a bit to digest. I believe I have now signed the Eclipse agreement. |
@JeanRochCoulon, can you provide guidance to relaunch this PR as the ECA is now signed? A new commit? @joncapltd, a prerequisite to make the connection on the ECA is to have the same email address in GitHub and the Eclipse account. |
I relaunched the CI, but ECA always fails. Can you double check the email address as suggested by @jquevremont Can you rebase your PR please ? |
Hi joncapltd, any update on this? |
Hi @joncapltd Any news ? |
This adds a tutorial on how to customise the example coprocessor with your own instructions and test them.