m-labs / artiq

A leading-edge control system for quantum information experiments
https://m-labs.hk/artiq
GNU Lesser General Public License v3.0
424 stars 195 forks source link

analyzer: support large data #651

Open sbourdeauducq opened 7 years ago

sbourdeauducq commented 7 years ago

The analyzer record format doesn't have enough data bits for SAWG events.

Fixing this requires defining a new record format that ideally:

Then it needs to be implemented in gateware and in artiq_coreanalyzer.

whitequark commented 7 years ago

So a self-synchronizing variable-length encoding? Something like this:

where y indicates whether this is the initial byte or continuation byte, and a 0 data bit byte indicating the end of the sequence.

jordens commented 7 years ago

It would be nice if DMA (input and output), Analyzer, and DRTIO all three could use the same (or at least very similar) serialization formats.

@whitequark y?

sbourdeauducq commented 7 years ago

There cannot be a lot in common, except for trivialities (e.g. the order of those few fields that are common), and more importantly for the way the variable length is communicated.

whitequark commented 7 years ago

@jordens yes, y.

sbourdeauducq commented 7 years ago

And the analyzer is the only one that requires the variable length encoding to be self-synchronizing, so it's not clear that even that should be shared.

whitequark commented 7 years ago

Well, it is definitely less error-prone to have one variable-length encoder than two, on both sides.