Releases: VHDL/pyVHDLModel
Releases · VHDL/pyVHDLModel
v0.22.1
Release created on: 11.01.2023 - 17:09:20
Bug Fixes
- Fixed
pyToolingdependency to be v2.11.0.
v0.22.0
Release created on: 11.01.2023 - 11:52:07
New Features
- Restructured
SyntaxModel.pyinto 18 files and removed it:Association.pyBase.pyCommon.pyConcurrent.pyDeclaration.pyDesignUnit.pyException.pyExpression.pyInstantiation.pyInterface.pyName.pyObject.pyPSLModel.pyScope.pySequential.pySubprogram.pySymbol.pyType.py
- Added base exception class
VHDLModelException. - Added case specific exceptions with context information:
LibraryExistsInDesignErrorLibraryRegisteredToForeignDesignErrorLibraryNotRegisteredErrorEntityExistsInLibraryErrorArchitectureExistsInLibraryErrorPackageExistsInLibraryErrorPackageBodyExistsErrorConfigurationExistsInLibraryErrorContextExistsInLibraryErrorReferencedLibraryNotExistingError
- Added namespaces to VHDL entities with concurrent declaration regions.
- Added property
EntitytoComponent. - 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 methodGetTopLevel).) - Added
CreateCompileOrderGraphandComputeCompileOrder:- Derive the compile order graph from dependency graph.
- Implemented
IterateDocumentsInCompileOrderto return a generator of documents in correct order. - Added vertex attribute
"predefined"to vertices in the dependency graph if it's a design unit fromstdorieee.
Changes
- Removed old
Symbolclass and renamed the new symbol classNewSymboltoSymbol.
Thus there is again just one symbol class callSymbol. - Changed
raise Exception(...)toraise VHDLModelException(...). - Added doc-strings for names.
- Updated copyright to year 2023.
Bug Fixes
- Fixed
Namewhenprefixparameter is None. - Fixed Property name
Has_PrefixtoHasPrefixonName.
Related PRs:
v0.21.0
Release created on: 05.01.2023 - 17:25:55
New Features
- Added method
GetAncestortoModelEntity. - Added property
DependencyGraphtoDesign. - Added
_compileOrderGraphand_hierarchyGraphfields as well as matching propertiesCompileOrderGraphandHierarchyGraphtoDesign. - Added method
AddLibraryto register a VHDL library in the design. - Added method
CreateCompilerOrderGraphonDesign. - Added key-value-pair
"kind" : DependencyGraphEdgeKindon edges in the dependency graph. - Implemented referencing library, package and context references in topological order to design units referencing a context.
- Added method
LinkInstanziationsonDesign:- Handle
EntityInstantiationstatements.
- Handle
- Added dummy methods for:
ComputeHierarchyGetCompileOrderGetTopLevelGetUnusedDesignUnits
- Added field
_compileOrderVertexand propertyCompileOrderVertextoDocument. - Added property
DependencyVertextoLibrary. - Added generator
IterateDesignUnitstoDocument. - Added
__repr__for design units. - Added field
_blockstoConcurrentStatements. - Added generator
IterateInstantiationstoConcurrentStatements,IfGenerateStatementandCaseGenerateStatement. - Added field
_hierarchyVertexand propertyHierarchyVertextoDesignUnit. - Added new "analyze" test cases to unit tests.
Changes
- Moved implementation of
DesignUnitWithContextMixintoDesignUnit.
The fields_contextItems,_libraryReferences,_packageReferencesand_contextReferencesas well as matching properties and initializer codes are now inDesignUnit. LoadStdLibraryandLoadIeeeLibrarynow return the created VHDL library object.- When calling
AddDocumentonDesign, check if used library is part of the design. - Bumped dependencies.
- Updated shield URL for GitHub Actions.
- Removed fields
_declaredItemsand_statementsfromEntity.
(This is covered byConcurrentDeclarationsandConcurrentStatements.) - Change list of architectures for an entity to a dictionary for named lookups.
- Reworked
ComponentInstantiation,ConfigurationInstantiationandEntityInstantiation. - Extended flag members of
DependencyGraphEdgeKindby references, instances and implementations. - Improved instantiation test cases.
Bug Fixes
- Added missing "backward pointers" by setting
_parentto 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
_leftOperandand_rightOperand, by removing the_. - Added missing
Nullableto type hints. - Implemented missing field initialization code for
Package. - Fixed super call in
PackageBody.__init__,Configuration.__init__,Entity.__init__andArchitecture.__init__. - Fixed
Package.Index, now usingNormalizedLabel. - Removed property
DeclaredItemsfromArchitecture.
(This is covered byConcurrentDeclarations.) - Renamed parameters using
rangetorngto avoid overlap with Python builtins.
v0.20.2
Release created on: 30.12.2022 - 12:34:56
New Features
None
Changes
- Removed unused
***OrSymbolunion types.
Bug Fixes
- Fixed
architecture.IndexArchitecture()call toarchitecture.Index(). - Added missing
Indexmethod onCaseGenerateStatement. - Used predefined
ContextUnioninstead ofUnion[LibraryClause, UseClause, ContextReference]
v0.20.1
Release created on: 30.12.2022 - 11:49:20
New Features
- Added properties
AlternativeLabelandNormalizedAlternativeLabeltoGenerateBranch. - Added
Indexmethod toIfGenerateStatement.
Changes
- Updated News section "Dec. 2022".
- Reordered classes (design units) in module.
- Moved
_instantiations,_generatesand_hierarchytoConcurrentStatements. - Moved
IndexArchitecturetoConcurrentStatementsand renamed it toIndex. - Added enum documentation for
EntityClassandPossibleReference.
Bug Fixes
- Added missing parameters to initializer calls in
ConcurrentBlockStatement. - Fixed parameter order in super-calls for
ForLoopStatementandWhileLoopStatement.
v0.20.0
Release created on: 30.12.2022 - 08:19:24
New Features
- Dependency graph in
Designfor packages, contexts referenced from design units.- New
_dependencyGraphfield inDesign. - New
_dependencyVertexfield inDesignUnit. - New
CreateDependencyGraphmethod onDesign. - New
DependencyGraphVertexKindandDependencyGraphEdgeKindflags.
- New
- Added properties
ReferencedLibraries,ReferencedPackages,ReferencedContexts. - Added
NormalizedIdentifierstoMultipleNamedEntityMixin. - Added
NormalizedLabeltoLabeledEntityMixin. - Added library and package dependencies in
stdandieeelibrary packages. - Added
EntityInstantiationSymbol,ComponentInstantiationSymbolandConfigurationInstantiationSymbol. - Added package and architecture indexing via
IndexPackagesandIndexArchitectures.
Changes
- Moved
_referenced***fields toDesignUnit. - Improved
Link***methods onDesign. - 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
LinkPackageReferencesfor packagestd.standard.
v0.19.0
Release created on: 26.12.2022 - 21:11:29
New Features
- Converted many existing symbol classes to new symbol classes deriving from
NameandNewSymbol.
This simplifies the usage of symbols, as names in VHDL are already very close to symbols.
⚠️ NewSymbolwill be renamed toSymbolorSymbolMixinonce all symbols are converted to the new style.LibraryReferenceSymbolPackageReferenceSymbolPackageMembersReferenceSymbolAllPackageMembersReferenceSymbolContextReferenceSymbolEntitySymbolArchitectureSymbolPackageSymbol
- Named entities and new-style symbols now provide a
NormalizedIdentifierproperty. - Implemented more analyze methods on Design:
LinkPackageReferencesLinkContextReferences
- Added
_references,_contextReferencesand_referenced***fields toContextclass. - Added predefined flag groups to
PossibleReference. - Added
_referenced***fields toDesignUnitWithContextMixinclass. - Added
DesignUnitsflag for filtering inIterateDesignUnits.
Changes
- Changed
PossibleReferencefromIntEnumtoFlag. - Merged parameters
libraryReferencesandpackageReferencesof classContextto new parameterreferences. - A package body now doesn't except an identifier for its name, but a PackageSymbol.
- Improved analyze methods:
LinkLibraryReferencesLinkArchitecturesLinkPackageBodies
- Using
...Identifierinstead of...Namein variables and parameters for a name of an entity. This identifier variable is normalized. In exceptions,...Identifieris 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
Release created on: 23.12.2022 - 22:38:50
New Features
- Added
Documentproperty toDesignUnit. - Added
LibraryReferenceSymbol,PackageReferenceSymbolandContextReferenceSymbol. - Added new packages
stdandieeecontaining pre-defined VHDL libraries and VHDL packages. - Added
LoadStdLibraryandLoadIEEELibrarytoDesign. - Added
IterateDesignUnitsgenerator onDesignandLibrary. - Implemented various analyze methods on
Design:LinkLibraryReferencesLinkArchitecturesLinkPackageBodies
- Added
_Add***methods toDocument. - Added
DesignUnits,VerificationUnits,VerificationPropertiesandVerificationModesproperties toDocument.
Changes
- Moved classes:
pyVHDLModel.SyntaxModel.Name→pyVHDLModel.NamepyVHDLModel.SyntaxModel.Symbol→pyVHDLModel.SymbolpyVHDLModel.SyntaxModel.Reference→pyVHDLModel.ReferencepyVHDLModel.SyntaxModel.LibraryClause→pyVHDLModel.LibraryClausepyVHDLModel.SyntaxModel.UseClause→pyVHDLModel.UseClausepyVHDLModel.SyntaxModel.ContextReference→pyVHDLModel.ContextReference
- Property
PrimaryUnit.Libraryuses it's own private field_libraryinstead of_parent, so_parentcan be used to refer to the document a design unit is in. - Improved
EntitySymbol,ArchitectureSymbol,PackageSymbol. - Improved
GetLibraryinDesign. - Improved
AddDocumentinLibrary. - Changed almost all internal lists in
LibraryandDocumentto 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
Release created on: 04.12.2022 - 23:39:16
New Features
None
Changes
None
Bug Fixes
- Made all
documentationparameters optional.
v0.17.0
Release created on: 03.12.2022 - 22:19:56
New Features
None
Changes
- ‼Changed property
Identifiersto returnTuple[str]instead ofList[str]. - ‼Renamed:
NamedEntity→NamedEntityMixinMultipleNamedEntity→MultipleNamedEntityMixinLabeledEntity→LabeledEntityMixinDocumentedEntity→DocumentedEntityMixinMixinDesignUnitWithContext→DesignUnitWithContextMixin
- Derived
NamefromModelEntity. - 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
autoapitemplate. - 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
LibraryClause→Library.
- Fixed broken references in documentation (
Related PRs:
None