Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Sourcecode on GitHub Sourcecode License Documentation Documentation License Gitter
PyPI PyPI - Status PyPI - Python Version
GitHub Workflow - Build and Test Status Libraries.io status for latest release Codacy - Quality Codacy - Coverage Codecov - Branch Coverage

An abstract VHDL language model written in Python.

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

pyVHDLModel Generators

pyVHDLModel Consumers

  • Create graphical views of VHDL files or designs.
    Possible candidates: Symbolator
  • Created a (re)formatted output of VHDL.

Examples

List all Entities with Generics and Ports

The following tiny example is based on GHDL's pyGHDL.dom package implementing pyVHDLModel.

from pathlib import Path
from pyGHDL.dom.NonStandard import Design, Document

sourceFile = Path("example.vhdl")

design = Design()
library = design.GetLibrary("lib")
document = Document(sourceFile)
design.AddDocument(document, library)

for entity in document.Entities.values():
  print(f"{entity.Identifier}")
  print("  generics:")
  for generic in entity.GenericItems:
    identifiers = ", ".join([str(i) for i in generic.Identifiers])
    print(f"  - {identifiers} : {generic.Mode!s} {generic.Subtype}")
  print("  ports:")
  for port in entity.PortItems:
    identifiers = ", ".join([str(i) for i in port.Identifiers])
    print(f"  - {identifiers} : {port.Mode!s} {port.Subtype}")

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


SPDX-License-Identifier: Apache-2.0

Metadata

Release files for pyVHDLModel 0.40.0rc3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyVHDLModel 0.40.0rc3
File Size Uploaded Provenance
pyvhdlmodel-0.40.0rc3.tar.gz 199.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyVHDLModel 0.40.0rc3
File Interpreter ABI Platform
pyvhdlmodel-0.40.0rc3-py3-none-any.whl Python 3 none any Details

Total release size: 413.6 kB

Release files / pyvhdlmodel-0.40.0rc3.tar.gz

Download URL pyvhdlmodel-0.40.0rc3.tar.gz
Size 199.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d1ec3c4769f199703892f6b13f5b18889f5a8fbf65c0b7f18a12b1028fb818e3
BLAKE2b-256 checksum
How to use checksums
1f6129a231ff241dc30cc28f8bd78d5d5daad664abee8753d009d10776c4d011
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / pyvhdlmodel-0.40.0rc3-py3-none-any.whl

Download URL pyvhdlmodel-0.40.0rc3-py3-none-any.whl
Size 214.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a565aa17fba8cb2b165cbe78b31707e934fef2cd75149e27a5afc15750d78ac
BLAKE2b-256 checksum
How to use checksums
2e0dc9688c4cf9239cf650d2af1bfd6f25bf94059e24e8ae11aafd4610dde022
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Security for pyVHDLModel 0.40.0rc3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page