Skip to content

Releases: VHDL/pyVHDLModel

v0.22.1

11 Jan 17:09
7a4b0e0
Compare
Choose a tag to compare

Release created on: 11.01.2023 - 17:09:20

Bug Fixes

  • Fixed pyTooling dependency to be v2.11.0.

v0.22.0

11 Jan 11:52
1314427
Compare
Choose a tag to compare

Release created on: 11.01.2023 - 11:52:07

New Features

  • Restructured SyntaxModel.py into 18 files and removed it:
    • Association.py
    • Base.py
    • Common.py
    • Concurrent.py
    • Declaration.py
    • DesignUnit.py
    • Exception.py
    • Expression.py
    • Instantiation.py
    • Interface.py
    • Name.py
    • Object.py
    • PSLModel.py
    • Scope.py
    • Sequential.py
    • Subprogram.py
    • Symbol.py
    • Type.py
  • Added base exception class VHDLModelException.
  • Added case specific exceptions with context information:
    • LibraryExistsInDesignError
    • LibraryRegisteredToForeignDesignError
    • LibraryNotRegisteredError
    • EntityExistsInLibraryError
    • ArchitectureExistsInLibraryError
    • PackageExistsInLibraryError
    • PackageBodyExistsError
    • ConfigurationExistsInLibraryError
    • ContextExistsInLibraryError
    • ReferencedLibraryNotExistingError
  • Added namespaces to VHDL entities with concurrent declaration regions.
  • Added property Entity to Component.
  • Handle component instantiations.
    • Component declarations are indexed.
    • Reference components via use clauses.
    • Instantiation dependencies are now listed in the dependency graph.
  • Implemented ComputeHierarchy:
    • Derive the hierarchy graph from dependency graph.
  • Implemented property TopLevel.
    (Former method GetTopLevel).)
  • Added CreateCompileOrderGraph and ComputeCompileOrder:
    • Derive the compile order graph from dependency graph.
  • Implemented IterateDocumentsInCompileOrder to return a generator of documents in correct order.
  • Added vertex attribute "predefined" to vertices in the dependency graph if it's a design unit from std or ieee.

Changes

  • Removed old Symbol class and renamed the new symbol class NewSymbol to Symbol.
    Thus there is again just one symbol class call Symbol.
  • Changed raise Exception(...) to raise VHDLModelException(...).
  • Added doc-strings for names.
  • Updated copyright to year 2023.

Bug Fixes

  • Fixed Name when prefix parameter is None.
  • Fixed Property name Has_Prefix to HasPrefix on Name.

Related PRs:

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