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

Reply via email to