Releases: VHDL/pyVHDLModel
Releases · VHDL/pyVHDLModel
v0.24.1
v0.24.0
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
toSubtype
/subtype
. - Renamed
SubProgram
toSubprogram
. - Bumped dependencies.
Bug Fixes
None
Related PRs:
None
v0.23.0
Release created on: 05.02.2023 - 22:29:12
New Features
- Added property
Name
toDesign
. - Improved calculation of property
Toplevel
.- HierarchyGraph has now a
toplevel
attribute.
- HierarchyGraph has now a
- Added instructions on how to use
pyVHDLModel
withpyGHDL
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
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.