hdl.dsl: Support Assert and Assume where an Assign can occur.
authorWilliam D. Jones <thor0505@comcast.net>
Fri, 28 Dec 2018 07:10:15 +0000 (02:10 -0500)
committerwhitequark <whitequark@whitequark.org>
Wed, 2 Jan 2019 11:17:39 +0000 (11:17 +0000)
nmigen/__init__.py
nmigen/hdl/dsl.py
nmigen/test/test_hdl_dsl.py

index 220f5bb84ab31e70de3dddf2337f7bcc212a26cf..613cb50d53418f248a4ab3d6da87a439f5db0367 100644 (file)
@@ -1,4 +1,4 @@
-from .hdl.ast import Value, Const, C, Mux, Cat, Repl, Array, Signal, ClockSignal, ResetSignal
+from .hdl.ast import Value, Const, C, Mux, Cat, Repl, Array, Signal, ClockSignal, ResetSignal, Assert, Assume
 from .hdl.dsl import Module
 from .hdl.cd import ClockDomain
 from .hdl.ir import Fragment, Instance
index 944a3ec09942f7f9f89b94e49215a9d6919c111d..968f396a49fe8a47935cfaf7f8aabfc75315dd75 100644 (file)
@@ -336,9 +336,9 @@ class Module(_ModuleBuilderRoot):
             self._pop_ctrl()
 
         for assign in Statement.wrap(assigns):
-            if not compat_mode and not isinstance(assign, Assign):
+            if not compat_mode and not isinstance(assign, (Assign, Assert, Assume)):
                 raise SyntaxError(
-                    "Only assignments may be appended to d.{}"
+                    "Only assignments, asserts, and assumes may be appended to d.{}"
                     .format(domain_name(domain)))
 
             for signal in assign._lhs_signals():
index 43c9672a265bd2a72c8621f95a23a5e0c74f76cf..2a33864d27557ef71d3f9ff959839ed979ccb4f3 100644 (file)
@@ -74,7 +74,7 @@ class DSLTestCase(FHDLTestCase):
     def test_d_asgn_wrong(self):
         m = Module()
         with self.assertRaises(SyntaxError,
-                msg="Only assignments may be appended to d.sync"):
+                msg="Only assignments, asserts, and assumes may be appended to d.sync"):
             m.d.sync += Switch(self.s1, {})
 
     def test_comb_wrong(self):