back.pysim: add gtkw traces even more robustly.

This commit is contained in:
whitequark 2018-12-14 13:43:08 +00:00
parent 7d3f7f277a
commit 654722ce14

View file

@ -556,16 +556,19 @@ class Simulator:
gtkw_save.treeopen("top") gtkw_save.treeopen("top")
gtkw_save.zoom_markers(math.log(self._epsilon / self._fastest_clock) - 14) gtkw_save.zoom_markers(math.log(self._epsilon / self._fastest_clock) - 14)
for domain, cd in self._domains.items(): def add_trace(signal, **kwargs):
with gtkw_save.group("d.{}".format(domain)):
if cd.rst is not None:
gtkw_save.trace(self._vcd_names[cd.rst])
gtkw_save.trace(self._vcd_names[cd.clk])
for signal in self._gtkw_signals:
if signal in self._vcd_names: if signal in self._vcd_names:
if len(signal) > 1: if len(signal) > 1:
suffix = "[{}:0]".format(len(signal) - 1) suffix = "[{}:0]".format(len(signal) - 1)
else: else:
suffix = "" suffix = ""
gtkw_save.trace(self._vcd_names[signal] + suffix) gtkw_save.trace(self._vcd_names[signal] + suffix, **kwargs)
for domain, cd in self._domains.items():
with gtkw_save.group("d.{}".format(domain)):
if cd.rst is not None:
add_trace(cd.rst)
add_trace(cd.clk)
for signal in self._gtkw_signals:
add_trace(signal)