Closed
Description
For debugging complex circuits, it's useful to have the signal traces grouped according to their function. The popular gtkwave tool supports this, as does the GTKWSave
class from the vcd
package used by Amaranth to export VCD files. All that remains is to connect this together.
I have implemented an extension to Amaranth's _VCDWriter
which does just that. The idea is that the traces
argument can be passed other things than lists of signals. My implementation currently accepts the following as traces:
- Signals, which work as before.
- Iterables (e.g. lists) of traces, which shows them in gtkwave one after the other, like before.
- Mappings (e.g. dicts) of traces, which create a new group of traces for each item in the mapping,
- Amaranth Records, which group the fields of the record.
There is no support in the current implementation for the recently added lib.data
classes from RFC 1, but it can be easily added.
Are you interested in merging this functionality to Amaranth?