PULP Community
Extension documentation and manual - Printable Version

+- PULP Community (https://pulp-platform.org/community)
+-- Forum: PULP's Community forum (https://pulp-platform.org/community/forumdisplay.php?fid=1)
+--- Forum: PULP General questions (https://pulp-platform.org/community/forumdisplay.php?fid=2)
+--- Thread: Extension documentation and manual (/showthread.php?tid=351)



Extension documentation and manual - Guilherme Sequeira - 07-31-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! Smile


RE: Extension documentation and manual - kgf - 08-05-2024

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.


RE: Extension documentation and manual - Guilherme Sequeira - 08-14-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!


RE: Extension documentation and manual - kgf - 08-14-2024

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.