.. include:: shields.inc .. image:: _static/logo.svg :height: 90 px :align: center :target: https://GitHub.com/VHDL/pyVHDLModel .. raw:: html
.. raw:: latex \part{Introduction} .. only:: html | |SHIELD:svg:pyVHDLModel-github| |SHIELD:svg:pyVHDLModel-src-license| |SHIELD:svg:pyVHDLModel-ghp-doc| |SHIELD:svg:pyVHDLModel-doc-license| |SHIELD:svg:pyVHDLModel-gitter| | |SHIELD:svg:pyVHDLModel-pypi-tag| |SHIELD:svg:pyVHDLModel-pypi-status| |SHIELD:svg:pyVHDLModel-pypi-python| | |SHIELD:svg:pyVHDLModel-gha-test| |SHIELD:svg:pyVHDLModel-lib-status| |SHIELD:svg:pyVHDLModel-codacy-quality| |SHIELD:svg:pyVHDLModel-codacy-coverage| |SHIELD:svg:pyVHDLModel-codecov-coverage| .. Disabled shields: |SHIELD:svg:pyVHDLModel-lib-dep| |SHIELD:svg:pyVHDLModel-lib-rank| .. only:: latex |SHIELD:png:pyVHDLModel-github| |SHIELD:png:pyVHDLModel-src-license| |SHIELD:png:pyVHDLModel-ghp-doc| |SHIELD:png:pyVHDLModel-doc-license| |SHIELD:svg:pyVHDLModel-gitter| |SHIELD:png:pyVHDLModel-pypi-tag| |SHIELD:png:pyVHDLModel-pypi-status| |SHIELD:png:pyVHDLModel-pypi-python| |SHIELD:png:pyVHDLModel-gha-test| |SHIELD:png:pyVHDLModel-lib-status| |SHIELD:png:pyVHDLModel-codacy-quality| |SHIELD:png:pyVHDLModel-codacy-coverage| |SHIELD:png:pyVHDLModel-codecov-coverage| .. Disabled shields: |SHIELD:png:pyVHDLModel-lib-dep| |SHIELD:png:pyVHDLModel-lib-rank| The pyVHDLModel Documentation ############################# An abstract VHDL language model. .. _goals: Main Goals ********** This package provides a unified abstract language model for VHDL. Projects reading from source files can derive own classes and implement additional logic to create a concrete language model for their tools. Projects consuming pre-processed VHDL data (parsed, analyzed or elaborated) can build higher level features and services on such a model, while supporting multiple frontends. .. _usecase: Use Cases ********* * High-level API for `GHDL's `__ `libghdl` offered via `pyGHDL `__. * Code Document-Object-Model (Code-DOM) in `pyVHDLParser `__. .. _news: News **** .. only:: html Jan. 2023 - Dependency, Hierarchy, Compile Order Analysis ========================================================= .. only:: latex .. rubric:: Dependency, Hierarchy, Compile Order Analysis * Enhanced analysis of cross references. * Enhanced dependency graphs: * Hierarchy graph and toplevel detection * Compile order computation * Transformation from single module to >15 modules. * Improved code coverage and test cases. .. only:: html Dec. 2022 - Added Documentation Property ======================================== .. only:: latex .. rubric:: Added Documentation Property * `GHDL's `__ is now able to collect and associate (documentation) comments to language constructs. This enhancement adds a ``Documentation`` property to many classes similar to a *doc-string* in Python. * New -style of symbols merging a ``Name`` and a ``Symbol`` class. * Finding relations between packages and its bodies, entities and its architectures. * References to libraries, packages and contexts. * Dependency graph for packages, contexts, and entities. * Package graph. * Hierarchy graph. * Compile order. .. only:: html Jul. 2021 - First adoption and enhancements =========================================== .. only:: latex .. rubric:: First adoption and enhancements * `GHDL's `__ is the first big adopter with `pyGHDL.dom `__ to generate a network of instantiated classes derived from ``pyVHDLModel``. |br| It uses `pyGHDL `__ as a backend (GHDL build as shared object and loaded into CPython via C-binding API (``ctypes``). .. only:: html Jun. 2021 - Model and documentation enhancements ================================================ .. only:: latex .. rubric:: Model and documentation enhancements * Made generic, port, and parameter items a subclass of the matching object classes. * Added missing object representations for language features. * Finalized literals, expressions and types. * Added properties to empty placeholder classes. * Corrected class hierarchy according to LRM. * Enhanced class documentation and cross references. * New documentation chapter for literals and expressions. * Added inheritance diagrams as overviews to documentation sections. * Added condensed code snippets outlining the main interface of a model's object. * New Single-File GitHub Action workflow (pipeline) including tests, documentation, packaging and publishing. * Added Dependabot configuration file. * Removed 2 dependencies to patched Sphinx extensions (now fixed in Sphinx). * ... .. only:: html Jan. 2021 - Documentation enhancements ====================================== .. only:: latex .. rubric:: Documentation enhancements * Enhanced class documentation. * Changed test runner to ``pytest``. * Dependency check and license clearance. |br| See :ref:`dependency` for details. .. only:: html Dec. 2020 - Split from pyVHDLParser =================================== .. only:: latex .. rubric:: Split from pyVHDLParser * `pyVHDLModel` was split from `pyVHDLParser `__ (v0.6.0) as an independent Python package. .. _contributors: Contributors ************ * `Patrick Lehmann `__ (Maintainer) * `Unai Martinez-Corral `__ * `and more... `__ License ******* .. only:: html This Python package (source code) is licensed under `Apache License 2.0 `__. |br| The accompanying documentation is licensed under `Creative Commons - Attribution 4.0 (CC-BY 4.0) `__. .. only:: latex This Python package (source code) is licensed under **Apache License 2.0**. |br| The accompanying documentation is licensed under **Creative Commons - Attribution 4.0 (CC-BY 4.0)**. .. only:: html This document was generated on |docdate|. .. toctree:: :hidden: Used as a layer of EDA² ➚ .. toctree:: :caption: Introduction :hidden: GettingStarted Installation Dependency .. raw:: latex \part{Main Documentation} .. toctree:: :caption: Main Documentation :hidden: LanguageModel/index Analyze/index DataStructure/index .. raw:: latex \part{References and Reports} .. toctree:: :caption: References and Reports :hidden: Python Class Reference unittests/index coverage/index Doc. Coverage Report Static Type Check Report ➚ .. raw:: latex \part{Appendix} .. toctree:: :caption: Appendix :hidden: ChangeLog/index License Doc-License Glossary genindex Python Module Index TODO