Hi Florent,
I have written a module that uses the dataflow components in a rather
simple way:
https://github.com/m-labs/artiq/blob/master/artiq/gateware/rtio/analyzer.py
It takes a source of messages and DMAs it to a ringbuffer in SDRAM,
using Converter to adapt the messages to the SDRAM word size. The
dataflow stuff looks nice at first sight and solves the problem almost
correctly.
But when the DMA is stopped:
* if the message size is smaller than the SDRAM word size, in some cases
one or more messages that have been emitted are 'stuck' in the converter
and won't be present in the ringbuffer.
* if the message size is larger than the SDRAM word size, the last
message gets corrupted if it was being written.
How would you solve this?
I have the impression that in many cases, dataflow solves most of the
problem but some small but important details like this make it in
reality unusable or very hacky. Does it make sense to keep the dataflow
modules in misoc? Are there cases where they are really useful and do
not require hacks?
Sebastien
_______________________________________________
M-Labs devel mailing list
https://ssl.serverraum.org/lists/listinfo/devel