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
Code Document-Object-Model (Code-DOM) in pyVHDLParser.
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 aSymbol
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
Patrick Lehmann (Maintainer)
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|.