Skip to content

Releases: VHDL/pyVHDLModel

v0.24.1

02 Apr 16:39
7590a6c
Compare
Choose a tag to compare

Release created on: 02.04.2023 - 16:39:38

New Features

  • Added method, so Synopsys packages can be loaded into the ieee library.
    (see #68 contributed by @c-thaler)

Changes

  • Bumped dependencies.

Related PRs:

v0.24.0

27 Mar 21:58
c897177
Compare
Choose a tag to compare

Release created on: 27.03.2023 - 21:58:46

New Features

  • Added more properties to class Package.
  • Distribute py.typed file.

Changes

  • Adjusted to pyTooling v4.0+.
  • Renamed SubType/subType to Subtype/subtype.
  • Renamed SubProgram to Subprogram.
  • Bumped dependencies.

Bug Fixes

None


Related PRs:

None

v0.23.0

05 Feb 22:29
14ec13b
Compare
Choose a tag to compare

Release created on: 05.02.2023 - 22:29:12

New Features

  • Added property Name to Design.
  • Improved calculation of property Toplevel.
    • HierarchyGraph has now a toplevel attribute.
  • Added instructions on how to use pyVHDLModel with pyGHDL as a parser.

Changes

  • Improved and added more documentation.
    • Started to document analysis procedure.
    • Added empty sections to document the 3 internal graph data structures.
  • Bumped dependencies.

Bug Fixes

  • Restricted Sphinx to <6.0, so navigation is not broken due to docutils vs. RTD theme mismatch.
  • Fixes to the pyGHDL setup instructions.
  • Fixed some broken tables in ReST.

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.