Posts: 2
Threads: 1
Joined: Jul 2024
Hello, when trying to ascertain the changes made to the pulp instructions for their core-v re-encoding (
core-v.rst is the most detailed filed I've found) I found it was quite difficult to find what the original instructions actually were!
So far I've been basing my work on
[1] and
[2] and the file mentioned above. I've noticed the "pulp manuals" are mentioned at the beginning of [1], but the only thing that comes close to it is
this datasheet, which appears to be in a somehow abandoned repository (still mentions the
pulp riscv gnu toolchain in its
readme), and only mentions some vector extension instructions.
For reference, I am looking for for information similar to the one in the core-v.rst file or the
cv32e40p user's manual, and the information that can be extracted from [2].
Thank you!
Posts: 152
Threads: 0
Joined: Oct 2018
I am not very sure what it is you want. Note that various different PULP projects make use of available custom extension encoding space and use them differently. Are you talking about a specific core, specific instructions? Are you interested in porting a compiler to run with one of our cores? are you designing your own extensions and want to see what we did?
You mention cv32e40p, that is one of our earlier cores that is now being maintained by OpenHW with much better documentation and verification, we also frequently use this core.
Visit pulp-platform.org and follow us on twitter @pulp_platform
Posts: 2
Threads: 1
Joined: Jul 2024
(08-05-2024, 09:57 AM)kgf Wrote: I am not very sure what it is you want. Note that various different PULP projects make use of available custom extension encoding space and use them differently. Are you talking about a specific core, specific instructions? Are you interested in porting a compiler to run with one of our cores? are you designing your own extensions and want to see what we did?
You mention cv32e40p, that is one of our earlier cores that is now being maintained by OpenHW with much better documentation and verification, we also frequently use this core.
I wanted to know if there is a document which lists the pulp instructions, across the various extensions, with some example usage and intended side effects / description, such as the one provided in the cv32e40p user manual linked above, or to a certain extent in the various other files I linked.
I ask this because I am trying to measure compliance / correctness of various tools (currently x-heep with the cv32e40pv2) and wanted to reuse the core-v-verif tests provided by the openhwgroup. However,
these tests are not functional and as such I need to update them. Some of these have suffered alterations since the RI5CY days, but they are not documented anywhere. As such, I figured comparing the intended use of the new instructions with the intended use of the old instructions would be the most efficient way of seeing if the tests needed refactoring (verifying each one takes some time), so that is why I ask this.
To answer your question, I believe the tests were written back in or close to the RI5CY times, so I reckon that would be a good starting point.
Thanks!
Posts: 152
Threads: 0
Joined: Oct 2018
All our documents and code are openly available, there is nothing 'hidden' that I could point you to. As I mentioned earlier, OpenHW group has more resources and experiences to provide this, if you were unable to find things through them, I do not think we can not provide you more information. Sorry about that.
Visit pulp-platform.org and follow us on twitter @pulp_platform