Skip to content

Questions #1

@jeras

Description

@jeras

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions