aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2021-08-24 07:32:32 +0200
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2021-08-26 21:08:12 +0200
commita6d0550e54a6243f4cc716ce98f348458c865fe8 (patch)
tree190d33f6a602e5a99eb4f37931038ee696e15026
parent98b54bc3d1b54bfc5c03e74d049fb59db47df8db (diff)
downloadghdl-a6d0550e54a6243f4cc716ce98f348458c865fe8.tar.gz
ghdl-a6d0550e54a6243f4cc716ce98f348458c865fe8.tar.bz2
ghdl-a6d0550e54a6243f4cc716ce98f348458c865fe8.zip
Implemented handling off null statements.
-rw-r--r--pyGHDL/dom/Sequential.py12
-rw-r--r--pyGHDL/dom/_Translate.py6
-rw-r--r--pyGHDL/dom/requirements.txt4
-rw-r--r--testsuite/pyunit/Current.vhdl5
4 files changed, 21 insertions, 6 deletions
diff --git a/pyGHDL/dom/Sequential.py b/pyGHDL/dom/Sequential.py
index 9e1af5b32..70a16e4cd 100644
--- a/pyGHDL/dom/Sequential.py
+++ b/pyGHDL/dom/Sequential.py
@@ -54,6 +54,7 @@ from pyVHDLModel.SyntaxModel import (
SequentialProcedureCall as VHDLModel_SequentialProcedureCall,
SequentialAssertStatement as VHDLModel_SequentialAssertStatement,
SequentialReportStatement as VHDLModel_SequentialReportStatement,
+ NullStatement as VHDLModel_NullStatement,
WaitStatement as VHDLModel_WaitStatement,
Name,
SequentialStatement,
@@ -482,6 +483,17 @@ class SequentialReportStatement(VHDLModel_SequentialReportStatement, DOMMixin):
@export
+class NullStatement(VHDLModel_NullStatement, DOMMixin):
+ def __init__(
+ self,
+ waitNode: Iir,
+ label: str = None,
+ ):
+ super().__init__(label)
+ DOMMixin.__init__(self, waitNode)
+
+
+@export
class WaitStatement(VHDLModel_WaitStatement, DOMMixin):
def __init__(
self,
diff --git a/pyGHDL/dom/_Translate.py b/pyGHDL/dom/_Translate.py
index 723b13f69..5322760ab 100644
--- a/pyGHDL/dom/_Translate.py
+++ b/pyGHDL/dom/_Translate.py
@@ -41,7 +41,7 @@ from pyGHDL.dom.Sequential import (
SequentialReportStatement,
SequentialAssertStatement,
WaitStatement,
- SequentialSimpleSignalAssignment,
+ SequentialSimpleSignalAssignment, NullStatement,
)
from pyVHDLModel.SyntaxModel import (
ConstraintUnion,
@@ -975,9 +975,7 @@ def GetSequentialStatementsFromChainedNodes(
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(
diff --git a/pyGHDL/dom/requirements.txt b/pyGHDL/dom/requirements.txt
index d296f0e96..fbc6a6f6e 100644
--- a/pyGHDL/dom/requirements.txt
+++ b/pyGHDL/dom/requirements.txt
@@ -1,4 +1,4 @@
-r ../libghdl/requirements.txt
-pyVHDLModel==0.11.5
-#https://github.com/VHDL/pyVHDLModel/archive/dev.zip#pyVHDLModel
+#pyVHDLModel==0.12.0
+https://github.com/VHDL/pyVHDLModel/archive/dev.zip#pyVHDLModel
diff --git a/testsuite/pyunit/Current.vhdl b/testsuite/pyunit/Current.vhdl
index b4906e211..c02493c21 100644
--- a/testsuite/pyunit/Current.vhdl
+++ b/testsuite/pyunit/Current.vhdl
@@ -210,6 +210,11 @@ begin
constant G7 : boolean := False;
begin
inst: component Case5689Dummy;
+ process
+ begin
+ null;
+ wait;
+ end process;
when others =>
constant G8 : boolean := False;