If you do large reads (ie single request), I've managed 8Mbps using KATCP. Our
RATTY1 design does 16384x64b channels every 500ms, which is 2Mbps. The key is
to do lots of big reads rather than lots of little ones.
However, I would stress that the KATCP path is designed for control and
monitoring (Karoo Array Telescope Control Protocol), and not for dumping data.
In most deployments, the traffic on these links is usually well below 100Kbps.
I'd suggest you do your readout using the 10GbE links if you need reliable
higher rates. Unfortunately, ROACH-1 has nothing in between the slow PPC
Control and Monitoring Ethernet link and the fast FPGA 10GbE links. ROACH-2
added a 1Gbps link on the FPGA which would be perfect for what you want to do.
Jason
On 16 Oct 2013, at 01:43 , Ross Williamson wrote:
> I was wondering what kind of readout speed should I expect through
> katcp (python) and the tcpborphserver3 on a Roach1 (MMAP).
>
> My simple spectrometer design has 16/channels per fft (48_34 bit) with
> 8 simultaneous paths (total of 128 channels). These get fed into 12
> brams (32 bits 2^10 address). This gives me 64 integrations before
> the address wraps. I'm trying to accumulate the data so that it reads
> out at 100Hz so I have approximately 0.5 seconds to grab 32kb*12
> (384kb) of data which is roughly 1Mb/s.
>
> Using read('var', 4096) on each of the brams struggles (fails 10%
> time) to make this 1Mb/s. Is this slow rate something to be expected
> or do I have a coding error? I'm concerned because the correlator
> version will have 32kb*48 outputs which if the speed scales will mean
> the data collection time is too slow if I don't want to loose samples.
>
> Ross
>
> p.s. The MMAP improves the speed by about a factor of 2 over the
> tcpborphserver2.
> --
> Ross Williamson
> Research Scientist - Sub-mm Group
> California Institute of Technology
> 626-395-2647 (office)
> 312-504-3051 (Cell)
>