Fix nmigen "domain" error when trying to run unit tests
authorMichael Nolan <mtnolan2640@gmail.com>
Fri, 31 Jan 2020 21:54:25 +0000 (16:54 -0500)
committerMichael Nolan <mtnolan2640@gmail.com>
Fri, 31 Jan 2020 21:58:07 +0000 (16:58 -0500)
When I try to run any unit test with nmigen c42c3a0, I get the
following error:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/mnolan/git/ieee754fpu/src/ieee754/fpmul/test/test_fpmul_pipe.py", line 24, in <module>
    test_pipe_fp16()
  File "/home/mnolan/git/ieee754fpu/src/ieee754/fpmul/test/test_fpmul_pipe.py", line 12, in test_pipe_fp16
    runfp(dut, 16, "test_fpmul_pipe_fp16", Float16, mul, n_vals=50)
  File "/home/mnolan/git/ieee754fpu/src/ieee754/fpcommon/test/fpmux.py", line 316, in runfp
    run_simulation(dut, fns, vcd_name="%s.vcd" % name)
  File "/home/mnolan/git/nmigen/nmigen/compat/sim/__init__.py", line 22, in run_simulation
    fragment.domains += ClockDomain("sync")
AttributeError: 'FPMULMuxInOut' object has no attribute 'domains'

This seems to fix this error by giving the functions in the testbench
a default clock domain, rather than leaving it up to nmigen to figure
out.

src/ieee754/fpcommon/test/fpmux.py

index 806b215f36c50f957778adf9f57b42841515fb16..0abb67cad5b7dde890b29028e15f8fda27af5702 100644 (file)
@@ -313,4 +313,4 @@ def runfp(dut, width, name, fpkls, fpop, single_op=False, n_vals=10,
     for i in range(dut.num_rows):
         fns.append(test.rcv(i))
         fns.append(test.send(i))
-    run_simulation(dut, fns, vcd_name="%s.vcd" % name)
+    run_simulation(dut, {"sync": fns}, vcd_name="%s.vcd" % name)