An open API service indexing awesome lists of open source software.

https://github.com/hdl-registers/hdl-registers

An open-source HDL register code generator fast enough to run in real time.
https://github.com/hdl-registers/hdl-registers

asic axi axi-lite c cplusplus csr eda fpga generator html python register register-interface rtl vhdl

Last synced: 8 months ago
JSON representation

An open-source HDL register code generator fast enough to run in real time.

Awesome Lists containing this project

README

          

.. image:: https://hdl-registers.com/logos/banner.png
:alt: Project banner
:align: center

|

.. |pic_website| image:: https://hdl-registers.com/badges/website.svg
:alt: Website
:target: https://hdl-registers.com

.. |pic_repository| image:: https://hdl-registers.com/badges/repository.svg
:alt: Repository
:target: https://github.com/hdl-registers/hdl-registers

.. |pic_chat| image:: https://hdl-registers.com/badges/chat.svg
:alt: Chat
:target: https://github.com/hdl-registers/hdl-registers/discussions

.. |pic_pip_install| image:: https://hdl-registers.com/badges/pip_install.svg
:alt: pypi
:target: https://pypi.org/project/hdl-registers/

.. |pic_license| image:: https://hdl-registers.com/badges/license.svg
:alt: License
:target: https://hdl-registers.com/rst/about/license_information.html

.. |pic_ci_status| image:: https://github.com/hdl-registers/hdl-registers/actions/workflows/ci.yml/badge.svg?branch=main
:alt: CI status
:target: https://github.com/hdl-registers/hdl-registers/actions/workflows/ci.yml

.. |pic_python_line_coverage| image:: https://hdl-registers.com/badges/python_coverage.svg
:alt: Python line coverage
:target: https://hdl-registers.com/python_coverage_html

|pic_website| |pic_repository| |pic_pip_install| |pic_license| |pic_chat| |pic_ci_status|
|pic_python_line_coverage|

The hdl-registers project is an open-source HDL register interface code generator fast enough to run
in real time.
It makes FPGA/ASIC development more fun by automating a lot of time-consuming manual work.
It also minimizes the risk of bugs by removing the need for duplicate information.
`Read more `_

**See documentation on the website**: https://hdl-registers.com

The following features are supported:

* Register fields

* `Bit `_.
* `Signed/unsigned fixed-point bit vector `_.
* `Enumeration `_.
* `Positive/negative-range integer `_.

* `Register arrays `_.
* `Default registers `_.
* `Register constants `_.

Registers can be defined using
a `TOML/JSON/YAML data file `_
or the `Python API `_.
The following code can be generated:

* `VHDL `_

* AXI-Lite register file wrapper using records and native VHDL types for values.
* Simulation support packages for compact read/write/wait/checking of register and field values.

* `SystemVerilog `_

* AXI-Lite register file using structures and native types to represent field values.

* `C++ `_

* Complete class with setters and getters for registers and fields.
Uses structs and native C++ representation of values.
* Includes an abstract interface header for unit test mocking.

* `C header `_
with register addresses and field information.

* `HTML `_
website with documentation of registers and fields.

* `Python `_
class with methods to read/write/print each register and field on a target device.

The tool can also be extended by
`writing your own code generator `_
using a simple but powerful API.

This project is mature and used in many production environments.
The maintainers place high focus on quality, with everything having good unit test coverage and a
thought-out structure.