-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Hi,
I was looking for something like regbits
since yesterday :).
Not really for a long time, so I am not sure yet if I found what I was looking for.
Additionally C++ is not a language I write code in although I reed it sometimes.
This is starting to look like an online recipe which starts with a history lesson.
Still I would like to have more of a discussion than to report an issue.
I would like to use a SystemRDL register set definition to generate C/C++ headers.
I was thinking of Rust too, then I checked, and there seem to be a few options already available.
The standard is good but not great (it can be confusing sometimes), but there is a great Python project implementing the standard SystemRDL Compiler.
The compiler itself is of great quality, it covers all parts of the standard I could think of checking, and it has a few projects already using it on GitHub.
I was able to use it to create a MarkDown and DOCX documentation generator in about 5 days, which is below my usual 'getting used to something' time, so I would say the compiler is very user friendly too.
SystemRDL provides a broad overview off all the functionality you might wish to implement in regbits
, for example there is a list of supported field types in section 9.6 Software access properties.
There are other comparable register definition standards:
IP-EXACT is similar to SystemRDL, but broader is scope. There are few open source projects using it, maybe, because it is broad.
UVM is meant to be used in combination with the SystemVerilog HDL, so it is not generic enough to be used as the top definition.
It would be more common to write the definition in SystemRDL and than use it to generate UVM code.
UVM-SystemC LRM (inside linked tarball) has a related section 15. Register abstraction classes.