Releases: VHDL/pyVHDLModel
Releases · VHDL/pyVHDLModel
v0.22.1
Release created on: 11.01.2023 - 17:09:20
Bug Fixes
- Fixed
pyTooling
dependency to be v2.11.0.
v0.22.0
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
toComponent
. - 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
CreateCompileOrderGraph
andComputeCompileOrder
:- 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 fromstd
orieee
.
Changes
- Removed old
Symbol
class and renamed the new symbol classNewSymbol
toSymbol
.
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
Name
whenprefix
parameter is None. - Fixed Property name
Has_Prefix
toHasPrefix
onName
.
Related PRs:
v0.21.0
Release created on: 05.01.2023 - 17:25:55
New Features
- Added method
GetAncestor
toModelEntity
. - Added property
DependencyGraph
toDesign
. - Added
_compileOrderGraph
and_hierarchyGraph
fields as well as matching propertiesCompileOrderGraph
andHierarchyGraph
toDesign
. - Added method
AddLibrary
to register a VHDL library in the design. - Added method
CreateCompilerOrderGraph
onDesign
. - 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
onDesign
:- Handle
EntityInstantiation
statements.
- Handle
- Added dummy methods for:
ComputeHierarchy
GetCompileOrder
GetTopLevel
GetUnusedDesignUnits
- Added field
_compileOrderVertex
and propertyCompileOrderVertex
toDocument
. - Added property
DependencyVertex
toLibrary
. - Added generator
IterateDesignUnits
toDocument
. - Added
__repr__
for design units. - Added field
_blocks
toConcurrentStatements
. - Added generator
IterateInstantiations
toConcurrentStatements
,IfGenerateStatement
andCaseGenerateStatement
. - Added field
_hierarchyVertex
and propertyHierarchyVertex
toDesignUnit
. - Added new "analyze" test cases to unit tests.
Changes
- Moved implementation of
DesignUnitWithContextMixin
toDesignUnit
.
The fields_contextItems
,_libraryReferences
,_packageReferences
and_contextReferences
as well as matching properties and initializer codes are now inDesignUnit
. LoadStdLibrary
andLoadIeeeLibrary
now return the created VHDL library object.- When calling
AddDocument
onDesign
, check if used library is part of the design. - Bumped dependencies.
- Updated shield URL for GitHub Actions.
- Removed fields
_declaredItems
and_statements
fromEntity
.
(This is covered byConcurrentDeclarations
andConcurrentStatements
.) - Change list of architectures for an entity to a dictionary for named lookups.
- Reworked
ComponentInstantiation
,ConfigurationInstantiation
andEntityInstantiation
. - 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__
andArchitecture.__init__
. - Fixed
Package.Index
, now usingNormalizedLabel
. - Removed property
DeclaredItems
fromArchitecture
.
(This is covered byConcurrentDeclarations
.) - Renamed parameters using
range
torng
to avoid overlap with Python builtins.
v0.20.2
Release created on: 30.12.2022 - 12:34:56
New Features
None
Changes
- Removed unused
***OrSymbol
union types.
Bug Fixes
- Fixed
architecture.IndexArchitecture()
call toarchitecture.Index()
. - Added missing
Index
method onCaseGenerateStatement
. - Used predefined
ContextUnion
instead ofUnion[LibraryClause, UseClause, ContextReference]
v0.20.1
Release created on: 30.12.2022 - 11:49:20
New Features
- Added properties
AlternativeLabel
andNormalizedAlternativeLabel
toGenerateBranch
. - Added
Index
method toIfGenerateStatement
.
Changes
- Updated News section "Dec. 2022".
- Reordered classes (design units) in module.
- Moved
_instantiations
,_generates
and_hierarchy
toConcurrentStatements
. - Moved
IndexArchitecture
toConcurrentStatements
and renamed it toIndex
. - Added enum documentation for
EntityClass
andPossibleReference
.
Bug Fixes
- Added missing parameters to initializer calls in
ConcurrentBlockStatement
. - Fixed parameter order in super-calls for
ForLoopStatement
andWhileLoopStatement
.
v0.20.0
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 inDesign
. - New
_dependencyVertex
field inDesignUnit
. - New
CreateDependencyGraph
method onDesign
. - New
DependencyGraphVertexKind
andDependencyGraphEdgeKind
flags.
- New
- Added properties
ReferencedLibraries
,ReferencedPackages
,ReferencedContexts
. - Added
NormalizedIdentifiers
toMultipleNamedEntityMixin
. - Added
NormalizedLabel
toLabeledEntityMixin
. - Added library and package dependencies in
std
andieee
library packages. - Added
EntityInstantiationSymbol
,ComponentInstantiationSymbol
andConfigurationInstantiationSymbol
. - Added package and architecture indexing via
IndexPackages
andIndexArchitectures
.
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
LinkPackageReferences
for 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
Name
andNewSymbol
.
This simplifies the usage of symbols, as names in VHDL are already very close to symbols.
⚠️ NewSymbol
will be renamed toSymbol
orSymbolMixin
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 toContext
class. - Added predefined flag groups to
PossibleReference
. - Added
_referenced***
fields toDesignUnitWithContextMixin
class. - Added
DesignUnits
flag for filtering inIterateDesignUnits
.
Changes
- Changed
PossibleReference
fromIntEnum
toFlag
. - Merged parameters
libraryReferences
andpackageReferences
of classContext
to new parameterreferences
. - 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
Release created on: 23.12.2022 - 22:38:50
New Features
- Added
Document
property toDesignUnit
. - Added
LibraryReferenceSymbol
,PackageReferenceSymbol
andContextReferenceSymbol
. - Added new packages
std
andieee
containing pre-defined VHDL libraries and VHDL packages. - Added
LoadStdLibrary
andLoadIEEELibrary
toDesign
. - Added
IterateDesignUnits
generator onDesign
andLibrary
. - Implemented various analyze methods on
Design
:LinkLibraryReferences
LinkArchitectures
LinkPackageBodies
- Added
_Add***
methods toDocument
. - Added
DesignUnits
,VerificationUnits
,VerificationProperties
andVerificationModes
properties toDocument
.
Changes
- Moved classes:
pyVHDLModel.SyntaxModel.Name
→pyVHDLModel.Name
pyVHDLModel.SyntaxModel.Symbol
→pyVHDLModel.Symbol
pyVHDLModel.SyntaxModel.Reference
→pyVHDLModel.Reference
pyVHDLModel.SyntaxModel.LibraryClause
→pyVHDLModel.LibraryClause
pyVHDLModel.SyntaxModel.UseClause
→pyVHDLModel.UseClause
pyVHDLModel.SyntaxModel.ContextReference
→pyVHDLModel.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
inDesign
. - Improved
AddDocument
inLibrary
. - Changed almost all internal lists in
Library
andDocument
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
Release created on: 04.12.2022 - 23:39:16
New Features
None
Changes
None
Bug Fixes
- Made all
documentation
parameters optional.
v0.17.0
Release created on: 03.12.2022 - 22:19:56
New Features
None
Changes
- ‼Changed property
Identifiers
to returnTuple[str]
instead ofList[str]
. - ‼Renamed:
NamedEntity
→NamedEntityMixin
MultipleNamedEntity
→MultipleNamedEntityMixin
LabeledEntity
→LabeledEntityMixin
DocumentedEntity
→DocumentedEntityMixin
MixinDesignUnitWithContext
→DesignUnitWithContextMixin
- Derived
Name
fromModelEntity
. - 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
LibraryClause
→Library
.
- Fixed broken references in documentation (
Related PRs:
None