_images/logo.svg
Sourcecode on GitHub Code license Documentation - Read Now! Documentation License Documentation License
PyPI - Tag PyPI - Status PyPI - Python Version
GitHub Workflow - Build and Test Status Libraries.io status for latest release Codacy - Quality Codacy - Line Coverage Codecov - Branch Coverage

The pyVHDLModel Documentation

An abstract VHDL language model.

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.

Use Cases

News

Jan. 2023 - 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.

Dec. 2022 - 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.

Jul. 2021 - First adoption and enhancements

  • GHDL’s is the first big adopter with pyGHDL.dom to generate a network of instantiated classes derived from pyVHDLModel.
    It uses pyGHDL as a backend (GHDL build as shared object and loaded into CPython via C-binding API (ctypes).

Jun. 2021 - 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).

Jan. 2021 - Documentation enhancements

  • Enhanced class documentation.

  • Changed test runner to pytest.

  • Dependency check and license clearance.
    See Dependency for details.

Dec. 2020 - Split from pyVHDLParser

  • pyVHDLModel was split from pyVHDLParser (v0.6.0) as an independent Python package.

Contributors

License

This Python package (source code) is licensed under Apache License 2.0.
The accompanying documentation is licensed under Creative Commons - Attribution 4.0 (CC-BY 4.0).

This document was generated on |docdate|.