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
> 
> 


Reply via email to