diff options
| author | Unai Martinez-Corral <38422348+umarcor@users.noreply.github.com> | 2021-08-27 20:25:31 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-27 20:25:31 +0100 |
| commit | 14fd4f9e22e0e0a4320559925ae74ee52b7b35e9 (patch) | |
| tree | 3ee3c7c68900377358bbcd89bcb1920790f2645c /pyGHDL/dom/_Translate.py | |
| parent | 6ae2325726c7d5dc347149cfb564e34dd9cb883d (diff) | |
| parent | ca71f18daa2f8fdea623b5733c7ab439e37388b6 (diff) | |
| download | ghdl-14fd4f9e22e0e0a4320559925ae74ee52b7b35e9.tar.gz ghdl-14fd4f9e22e0e0a4320559925ae74ee52b7b35e9.tar.bz2 ghdl-14fd4f9e22e0e0a4320559925ae74ee52b7b35e9.zip | |
pyGHDL.dom: improvements (#1848)
# New Features
* Translate null statements.
* Sequential procedure call.
* Concurrent assert statement (but without condition)
This needs either PSL translations or help from @tgingold to have partial elaboration to a PSL assert becomes a normal VHDL assertion like in VHDL-93.
* Translate sensitivity lists.
# Changes
* None
# Bug fixes
* Changes due to typo in pyVHDLModel for `Choises`.
Diffstat (limited to 'pyGHDL/dom/_Translate.py')
| -rw-r--r-- | pyGHDL/dom/_Translate.py | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/pyGHDL/dom/_Translate.py b/pyGHDL/dom/_Translate.py index 723b13f69..fe66f2c98 100644 --- a/pyGHDL/dom/_Translate.py +++ b/pyGHDL/dom/_Translate.py @@ -42,6 +42,8 @@ from pyGHDL.dom.Sequential import ( SequentialAssertStatement, WaitStatement, SequentialSimpleSignalAssignment, + NullStatement, + SequentialProcedureCall, ) from pyVHDLModel.SyntaxModel import ( ConstraintUnion, @@ -164,6 +166,7 @@ from pyGHDL.dom.Concurrent import ( GenericAssociationItem, PortAssociationItem, ParameterAssociationItem, + ConcurrentAssertStatement, ) from pyGHDL.dom.Subprogram import Function, Procedure from pyGHDL.dom.Misc import Alias @@ -920,11 +923,7 @@ def GetConcurrentStatementsFromChainedNodes( elif kind == nodes.Iir_Kind.For_Generate_Statement: yield ForGenerateStatement.parse(statement, label) elif kind == nodes.Iir_Kind.Psl_Assert_Directive: - print( - "[NOT IMPLEMENTED] PSL assert directive (label: '{label}') at line {line}".format( - label=label, line=pos.Line - ) - ) + yield ConcurrentAssertStatement.parse(statement, label) else: raise DOMException( "Unknown statement of kind '{kind}' in {entity} '{name}' at {file}:{line}:{column}.".format( @@ -967,17 +966,13 @@ def GetSequentialStatementsFromChainedNodes( elif kind == nodes.Iir_Kind.Wait_Statement: yield WaitStatement.parse(statement, label) elif kind == nodes.Iir_Kind.Procedure_Call_Statement: - print( - "[NOT IMPLEMENTED] Procedure call (label: '{label}') at line {line}".format(label=label, line=pos.Line) - ) + yield SequentialProcedureCall.parse(statement, label) elif kind == nodes.Iir_Kind.Report_Statement: yield SequentialReportStatement.parse(statement, label) elif kind == nodes.Iir_Kind.Assertion_Statement: yield SequentialAssertStatement.parse(statement, label) elif kind == nodes.Iir_Kind.Null_Statement: - print( - "[NOT IMPLEMENTED] null statement (label: '{label}') at line {line}".format(label=label, line=pos.Line) - ) + yield NullStatement(statement, label) else: raise DOMException( "Unknown statement of kind '{kind}' in {entity} '{name}' at {file}:{line}:{column}.".format( |
