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.0rc1

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.0rc1
File Size Uploaded Provenance
pyvhdlmodel-0.40.0rc1.tar.gz 148.8 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 314.3 kB

Release files / pyvhdlmodel-0.40.0rc1.tar.gz

Download URL pyvhdlmodel-0.40.0rc1.tar.gz
Size 148.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ab869c2263379cc1699a8307a45edc0d57efc28bc9a69650f25362c2667bb8ba
BLAKE2b-256 checksum
How to use checksums
d94c4c5624dac6ebe5f5b59516c3adfb47a007f19ca9849c286bddebd4ad3a31
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.0rc1-py3-none-any.whl

Download URL pyvhdlmodel-0.40.0rc1-py3-none-any.whl
Size 165.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1519b9a0a11a6aa22690a74b1d6c3e09f9c056df618e7a7c70cc09867690bb90
BLAKE2b-256 checksum
How to use checksums
5dabd764dccecfdb01e0a3c8fd7649bdb3eb44ced8efc5b7feb98ed2f93e5b20
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.0rc1

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