ROACH-2 has a 32-bit bus at 66MHz. So the PPC-FPGA bus is usually not the bottleneck on ROACH-2, but rather the poor network implementation.
Ross, I'd believe your numbers below. I've seen bursts of up to 400Mbit/s, but for some reason, we can't sustain that through the "1Gbps" Ethernet link. UDP does MUCH better on the PPC than TCP, so I think your plan for a custom tcpborphserver (either using its plugin interface, or else rolling your own code from scratch) might work. We have been toying with the idea of implementing DMA and IRQs on the FPGA-PPC bus, but it's a pretty low priority for us. The major benefit would be on the 10GbE implementations, where the PPC would be notified whenever a new packet arrives, rather than polling these register locations. For reading/writing to memory from across the network, as I believe you want to do, the network will still be the bottleneck and DMA would probably not help you much. Jason On 17 Oct 2013, at 05:06 , David Hawkins wrote: > Hi Ross, > >> So I just did a very quick test where I read 100000 an ADC snapshot >> (8192 Bytes) via mmap(boost::iostreams::mapped_file) using >> std::copy(). This took about 52 seconds which is about 15MB/s or >> 120Mb/s - Sound to fast??? > > I have a vague recollection that the local bus is 16-bits > at 33MHz (66MB/s), but it could also be 66MHz (132MB/s). > > You can determine the local bus clock by; > > a) Review the ROACH board design documents > b) Stop at the U-Boot prompt and read the messages > (it usually displays all the clock info) > c) Probe the localbus clock either using a scope, > using chipscope in the FPGA > > Cheers, > Dave > >

