Metadata-Version: 2.1
Name: hdl_registers
Version: 5.1.1
Summary: An open-source HDL register interface code generator fast enough to run in real time
Author: Lukas Vik
Author-email: 10241915+LukasVik@users.noreply.github.com
License: BSD 3-Clause License
Project-URL: Homepage, https://hdl-registers.com
Project-URL: Documentation, https://hdl-registers.com/
Project-URL: Changelog, https://hdl-registers.com/rst/about/release_notes.html
Project-URL: Source, https://github.com/hdl-registers/hdl-registers
Project-URL: Issues, https://github.com/hdl-registers/hdl-registers/issues
Keywords: python,c,html,asic,generator,fpga,cplusplus,register,vhdl,eda,rtl,csr,axi,axi-lite,register-interface
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
Requires-Dist: GitPython
Requires-Dist: PyYAML
Requires-Dist: rtoml
Requires-Dist: tsfpga>=12.3.1
Provides-Extra: develop
Requires-Dist: black; extra == "develop"
Requires-Dist: flake8; extra == "develop"
Requires-Dist: GitPython; extra == "develop"
Requires-Dist: mypy; extra == "develop"
Requires-Dist: packaging; extra == "develop"
Requires-Dist: pybadges; extra == "develop"
Requires-Dist: pycairo; extra == "develop"
Requires-Dist: PyGObject; extra == "develop"
Requires-Dist: pylint; extra == "develop"
Requires-Dist: pytest; extra == "develop"
Requires-Dist: pytest-cov; extra == "develop"
Requires-Dist: pytest-xdist; extra == "develop"
Requires-Dist: PyYAML; extra == "develop"
Requires-Dist: rtoml; extra == "develop"
Requires-Dist: setuptools; extra == "develop"
Requires-Dist: sphinx; extra == "develop"
Requires-Dist: sphinx_sitemap; extra == "develop"
Requires-Dist: sphinx-rtd-theme; extra == "develop"
Requires-Dist: sphinx-toolbox; extra == "develop"
Requires-Dist: sphinxcontrib-wavedrom; extra == "develop"
Requires-Dist: sphinxext-opengraph; extra == "develop"
Requires-Dist: twine; extra == "develop"
Requires-Dist: types-PyYAML; extra == "develop"
Requires-Dist: vunit_hdl; extra == "develop"

.. 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 <https://hdl-registers.com/rst/about/about.html>`_

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

**Check out the source code on GitHub**: https://github.com/hdl-registers/hdl-registers

The following features are supported:

* Register fields

  * `Bit <https://hdl-registers.com/rst/field/field_bit.html>`_.
  * `Signed/unsigned fixed-point bit vector <https://hdl-registers.com/rst/field/field_bit_vector.html>`_.
  * `Enumeration <https://hdl-registers.com/rst/field/field_enumeration.html>`_.
  * `Positive/negative-range integer <https://hdl-registers.com/rst/field/field_integer.html>`_.

* `Register arrays <https://hdl-registers.com/rst/basic_feature/basic_feature_register_array.html>`_.
* `Default registers <https://hdl-registers.com/rst/basic_feature/basic_feature_default_registers.html>`_.
* `Register constants <https://hdl-registers.com/rst/constant/constant_overview.html>`_.

Registers can be defined using
a `TOML/JSON/YAML data file <https://hdl-registers.com/rst/user_guide/toml_format.html>`_
or the `Python API <https://hdl-registers.com/rst/user_guide/user_guide_python_api.html>`_.
The following code can be generated:

* `VHDL <https://hdl-registers.com/rst/generator/generator_vhdl.html>`_

  * AXI-Lite register file wrapper using records and native VHDL types for values.
  * Support packages for compact and efficient simulation.

* `C++ <https://hdl-registers.com/rst/generator/generator_cpp.html>`_

  * Complete class with setters and getters for registers and fields.
  * Includes an abstract interface header for unit test mocking.

* `C header <https://hdl-registers.com/rst/generator/generator_c.html>`_
  with register addresses and field information.
* `HTML <https://hdl-registers.com/rst/generator/generator_html.html>`_
  website with documentation of registers and fields.

The tool can also be extended by
`writing your own code generator <https://hdl-registers.com/rst/extensions/extensions_custom_generator.html>`_
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.
