Skip to content

Releases: VHDL/pyVHDLModel

v0.21.0

05 Jan 17:25
b00fb1c
Compare
Choose a tag to compare

Release created on: 05.01.2023 - 17:25:55

New Features

  • Added method GetAncestor to ModelEntity.
  • Added property DependencyGraph to Design.
  • Added _compileOrderGraph and _hierarchyGraph fields as well as matching properties CompileOrderGraph and HierarchyGraph to Design.
  • Added method AddLibrary to register a VHDL library in the design.
  • Added method CreateCompilerOrderGraph on Design.
  • Added key-value-pair "kind" : DependencyGraphEdgeKind on edges in the dependency graph.
  • Implemented referencing library, package and context references in topological order to design units referencing a context.
  • Added method LinkInstanziations on Design:
    • Handle EntityInstantiation statements.
  • Added dummy methods for:
    • ComputeHierarchy
    • GetCompileOrder
    • GetTopLevel
    • GetUnusedDesignUnits
  • Added field _compileOrderVertex and property CompileOrderVertex to Document.
  • Added property DependencyVertex to Library.
  • Added generator IterateDesignUnits to Document.
  • Added __repr__ for design units.
  • Added field _blocks to ConcurrentStatements.
  • Added generator IterateInstantiations to ConcurrentStatements, IfGenerateStatement and CaseGenerateStatement.
  • Added field _hierarchyVertex and property HierarchyVertex to DesignUnit.
  • Added new "analyze" test cases to unit tests.

Changes

  • Moved implementation of DesignUnitWithContextMixin to DesignUnit.
    The fields _contextItems, _libraryReferences, _packageReferences and _contextReferences as well as matching properties and initializer codes are now in DesignUnit.
  • LoadStdLibrary and LoadIeeeLibrary now return the created VHDL library object.
  • When calling AddDocument on Design, check if used library is part of the design.
  • Bumped dependencies.
  • Updated shield URL for GitHub Actions.
  • Removed fields _declaredItems and _statements from Entity.
    (This is covered by ConcurrentDeclarations and ConcurrentStatements.)
  • Change list of architectures for an entity to a dictionary for named lookups.
  • Reworked ComponentInstantiation, ConfigurationInstantiation and EntityInstantiation.
  • Extended flag members of DependencyGraphEdgeKind by references, instances and implementations.
  • Improved instantiation test cases.

Bug Fixes

  • Added missing "backward pointers" by setting _parent to appropriate values.
    This was missing in the entire model.
    (As this was a complete code walk-through, TODO and FIXME comments for potential problematic regions were added.)
  • Fixed parameter names _leftOperand and _rightOperand, by removing the _.
  • Added missing Nullable to type hints.
  • Implemented missing field initialization code for Package.
  • Fixed super call in PackageBody.__init__, Configuration.__init__, Entity.__init__ and Architecture.__init__.
  • Fixed Package.Index, now using NormalizedLabel.
  • Removed property DeclaredItems from Architecture.
    (This is covered by ConcurrentDeclarations.)
  • Renamed parameters using range to rng to avoid overlap with Python builtins.

v0.20.2

30 Dec 12:34
c6c2b60
Compare
Choose a tag to compare

Release created on: 30.12.2022 - 12:34:56

New Features

None

Changes

  • Removed unused ***OrSymbol union types.

Bug Fixes

  • Fixed architecture.IndexArchitecture() call to architecture.Index().
  • Added missing Index method on CaseGenerateStatement.
  • Used predefined ContextUnion instead of Union[LibraryClause, UseClause, ContextReference]

v0.20.1

30 Dec 11:49
9118912
Compare
Choose a tag to compare

Release created on: 30.12.2022 - 11:49:20

New Features

  • Added properties AlternativeLabel and NormalizedAlternativeLabel to GenerateBranch.
  • Added Index method to IfGenerateStatement.

Changes

  • Updated News section "Dec. 2022".
  • Reordered classes (design units) in module.
  • Moved _instantiations, _generates and _hierarchy to ConcurrentStatements.
  • Moved IndexArchitecture to ConcurrentStatements and renamed it to Index.
  • Added enum documentation for EntityClass and PossibleReference.

Bug Fixes

  • Added missing parameters to initializer calls in ConcurrentBlockStatement.
  • Fixed parameter order in super-calls for ForLoopStatement and WhileLoopStatement.

v0.20.0

30 Dec 08:19
cd58acf
Compare
Choose a tag to compare

Release created on: 30.12.2022 - 08:19:24

New Features

  • Dependency graph in Design for packages, contexts referenced from design units.
    • New _dependencyGraph field in Design.
    • New _dependencyVertex field in DesignUnit.
    • New CreateDependencyGraph method on Design.
    • New DependencyGraphVertexKind and DependencyGraphEdgeKind flags.
  • Added properties ReferencedLibraries, ReferencedPackages, ReferencedContexts.
  • Added NormalizedIdentifiers to MultipleNamedEntityMixin.
  • Added NormalizedLabel to LabeledEntityMixin.
  • Added library and package dependencies in std and ieee library packages.
  • Added EntityInstantiationSymbol, ComponentInstantiationSymbol and ConfigurationInstantiationSymbol.
  • Added package and architecture indexing via IndexPackages and IndexArchitectures.

Changes

  • Moved _referenced*** fields to DesignUnit.
  • Improved Link*** methods on Design.
  • Renamed DesignUnits &arr; DesignUnitKind.
  • Removed LibraryOrSymbol, EntityOrSymbol, ArchitectureOrSymbol, PackageOrSymbol, ConfigurationOrSymbol, ContextOrSymbol.
  • Refined doc-strings.
  • Bumped dependencies.

Bug Fixes

  • Fixed missing handling of _referencedContexts.
  • Avoid self-edge in LinkPackageReferences for package std.standard.

v0.19.0

26 Dec 21:11
81ab717
Compare
Choose a tag to compare

Release created on: 26.12.2022 - 21:11:29

New Features

  • Converted many existing symbol classes to new symbol classes deriving from Name and NewSymbol.
    This simplifies the usage of symbols, as names in VHDL are already very close to symbols.
    ⚠️ NewSymbol will be renamed to Symbol or SymbolMixin once all symbols are converted to the new style.
    • LibraryReferenceSymbol
    • PackageReferenceSymbol
    • PackageMembersReferenceSymbol
    • AllPackageMembersReferenceSymbol
    • ContextReferenceSymbol
    • EntitySymbol
    • ArchitectureSymbol
    • PackageSymbol
  • Named entities and new-style symbols now provide a NormalizedIdentifier property.
  • Implemented more analyze methods on Design:
    • LinkPackageReferences
    • LinkContextReferences
  • Added _references, _contextReferences and _referenced*** fields to Context class.
  • Added predefined flag groups to PossibleReference.
  • Added _referenced*** fields to DesignUnitWithContextMixin class.
  • Added DesignUnits flag for filtering in IterateDesignUnits.

Changes

  • Changed PossibleReference from IntEnum to Flag.
  • Merged parameters libraryReferencesand packageReferences of class Context to new parameter references.
  • A package body now doesn't except an identifier for its name, but a PackageSymbol.
  • Improved analyze methods:
    • LinkLibraryReferences
    • LinkArchitectures
    • LinkPackageBodies
  • Using ...Identifier instead of ...Name in variables and parameters for a name of an entity. This identifier variable is normalized. In exceptions, ...Identifier is used to print the original name without normalization.
  • Improved predefined libraries and packages std.standard, etc.

Bug Fixes

  • Added missing initializer for IndexedName.
  • Fixed how flag values are combined: +|
  • Fixed example code in README.

v0.18.0

23 Dec 22:38
438b576
Compare
Choose a tag to compare

Release created on: 23.12.2022 - 22:38:50

New Features

  • Added Document property to DesignUnit.
  • Added LibraryReferenceSymbol, PackageReferenceSymbol and ContextReferenceSymbol.
  • Added new packages std and ieee containing pre-defined VHDL libraries and VHDL packages.
  • Added LoadStdLibrary and LoadIEEELibrary to Design.
  • Added IterateDesignUnits generator on Design and Library.
  • Implemented various analyze methods on Design:
    • LinkLibraryReferences
    • LinkArchitectures
    • LinkPackageBodies
  • Added _Add*** methods to Document.
  • Added DesignUnits, VerificationUnits, VerificationProperties and VerificationModes properties to Document.

Changes

  • Moved classes:
    • pyVHDLModel.SyntaxModel.NamepyVHDLModel.Name
    • pyVHDLModel.SyntaxModel.SymbolpyVHDLModel.Symbol
    • pyVHDLModel.SyntaxModel.ReferencepyVHDLModel.Reference
    • pyVHDLModel.SyntaxModel.LibraryClausepyVHDLModel.LibraryClause
    • pyVHDLModel.SyntaxModel.UseClausepyVHDLModel.UseClause
    • pyVHDLModel.SyntaxModel.ContextReferencepyVHDLModel.ContextReference
  • Property PrimaryUnit.Library uses it's own private field _library instead of _parent, so _parent can be used to refer to the document a design unit is in.
  • Improved EntitySymbol, ArchitectureSymbol, PackageSymbol.
  • Improved GetLibrary in Design.
  • Improved AddDocument in Library.
  • Changed almost all internal lists in Library and Document to dictionaries for quick name lookups.
  • Enabled CI job Windows + Python 3.11 again.
  • Bumped dependencies.
  • Updated MAKEFILE for Sphinx documentation.

Bug Fixes

  • Fixed usage of Names vs. Symbols.

Related PRs:

None

v0.17.1

04 Dec 23:39
3457dd3
Compare
Choose a tag to compare

Release created on: 04.12.2022 - 23:39:16

New Features

None

Changes

None

Bug Fixes

  • Made all documentation parameters optional.

v0.17.0

03 Dec 22:19
14f9247
Compare
Choose a tag to compare

Release created on: 03.12.2022 - 22:19:56

New Features

None

Changes

  • ‼Changed property Identifiers to return Tuple[str] instead of List[str].
  • ‼Renamed:
    • NamedEntityNamedEntityMixin
    • MultipleNamedEntityMultipleNamedEntityMixin
    • LabeledEntityLabeledEntityMixin
    • DocumentedEntityDocumentedEntityMixin
    • MixinDesignUnitWithContextDesignUnitWithContextMixin
  • Derived Name from ModelEntity.
  • Disabled PIP version check in CI.
  • Documentation:
    • Added news for Dec 2022.
    • Changed navigation bar.
    • Changed manually written local ToCs to a ReST command.
    • Split chapter about types into a new main page for subtypes.
    • Added more code documentation.
  • Updated autoapi template.
  • Updated Sphinx configuration.
    • Activated mermaid.
    • Changed colors for inheritance disgrams.
    • Changed source code / highlighting theme.
  • Removed dummy pages.

Bug Fixes

  • Documentation:
    • Fixed broken references in documentation (pyVHDLModel.VHDLModel...pyVHDLModel.SyntaxModel...).
    • Fixed section title LibraryClauseLibrary.

Related PRs:

None

v0.16.0

29 Nov 06:29
acabc4d
Compare
Choose a tag to compare

Release created on: 29.11.2022 - 06:29:46

New Features

  • Added DocumentedEntity class providing a Documentation property.
  • Added VHDL-2000 to the VHDLVersion enum.

Changes

  • Bumped dependencies.
  • Added documentation parameters to some initializer methods.
  • Changed .format(...) calls to f-strings.
  • Removed Requires.io webservice (links, badges, ...)
  • Updated Sphinx's prolog.inc.

Bug Fixes

None

v0.15.0

22 Jun 18:06
abf8c09
Compare
Choose a tag to compare

Release created on: 22.06.2022 - 18:06:28

New Features

  • Added missing VariableSymbol.
  • Added VHDL-AMS versions 1999 and 2017 to VHDLVersion.
    (Currently, there is no idea how to support AMS93 as it overlaps with VHDL93.)
  • Added VHDLVersion.IsVHDL and VHDLVersion.IsAMS.

Changes

None

Bug Fixes

  • Added missing comas in ContextUnion.
  • Fixed init routine of MixinDesignUnitWithContext.

Related PRs: