06-11-2014 07:52 AM
for my current project, I need to move audio data between PL and PS,
in a magnitude of maybe 16 stereo channels in&out, 24bit at 96kHz.
Using 32 bits/sample, this results in ~12MB/sec from PL to PS (Linux) and vice versa.
Being new to zynq, it seems to me that CDMA would be the way to go.
So my approach would be to buffer the samples from PL to PS in BRAM,
connecting one BRAM port to my logic and the other one to a AXI BRAM Controller.
Then I would put a CDMA Core to my design, it's master interface (inter)connected
to a PS HP Slave Port and the BRAM Controller.
The CDMA's slave interface would then be connected to the PS GP Master port.
Now, when the BRAM buffer is filled, I would trigger an interrupt from PL
and the PS would start a CDMA transfer from BRAM to the PS's DDR RAM.
After completion, the PS would start another transfer from DDR (containing the outgoing data)
to another BRAM buffer.
My question is: Does this sound sane? Or is there a better way to do it?
06-11-2014 01:41 PM
12-16-2014 05:23 AM
12-20-2014 11:20 PM