back.pysim: fix emission of undriven traces to VCD files.
authorwhitequark <whitequark@whitequark.org>
Fri, 3 Apr 2020 05:20:42 +0000 (05:20 +0000)
committerwhitequark <whitequark@whitequark.org>
Fri, 3 Apr 2020 05:20:42 +0000 (05:20 +0000)
This has been originally implemented in commit d3775eed (which fixed
`write_vcd(traces=)` to do something at all), but had a flaw where
undriven traces would not be correctly placed in hierarchy. This
used to produce incorrect results on pyvcd 0.1, but started causing
assertion failures on pyvcd 0.2.

Fixes #345.

nmigen/back/pysim.py

index 96e98e7fca55d33fc3305a000151d5c3cdef27cb..398266e08aec128f30289353d4f3caebd464b364 100644 (file)
@@ -93,7 +93,7 @@ class _VCDWaveformWriter(_WaveformWriter):
         trace_names = SignalDict()
         for trace in traces:
             if trace not in signal_names:
-                trace_names[trace] = trace.name
+                trace_names[trace] = {("top", trace.name)}
             self.traces.append(trace)
 
         if self.vcd_writer is None: