04-23-2012 09:25 AM
I am designing a custom pcore with System Generator that I import into an XPS project with a microblaze processor. The pcore performs an FFT and stores the result in a shared memory (32bit x 1024). I want to read out this memory using some kind of DMA for performance reasons but at the moment I can only do single word reads because the pcore is an AXI-Lite peripheral.
Is there a faster way to access shared memories from a microblaze processor?
As far as I can see from the documentation of System Generator, All types of shared memory blocks get translated into AXI-Lite peripherals. It would be useful to have a full AXI interface for large shared memories.
(My full system also contains register type shared memories for which an AXI-Lite interface makes sense.)
Thanks for your help
04-23-2012 01:18 PM
Can you have your datapath drive, say, AXI DMA core (S2MM) rather than storing each sample in a shared memory?
04-24-2012 12:33 AM
The problem with the S2MM solution is that I need to buffer my fft output because I am averaging multiple ffts in my pcore. So I need a memory-to-memory transfer and not stream-to-memory.
04-24-2012 06:07 AM
Well you could still buffer them however you want, using a FIFO or whatever. But rather than using a Shared memory and doing transfers over the AXI lite bus to processor to memory, use an AXI FIFO block, for example, which feed some gateway outs directly to an AXI DMA