Tricky. That's a job for diagnostics with advanced equipment, and a thorough knowledge of PCs. We are being asked with no circuit, no machinery, etc.
My first advice is: Don't do dma if you can avoid it. Audio data isn't that massive that you need to risk the wrath of Machinery by attempting it. In my mind, DMA was fine in the days of Z80s and suchlike but becomes increasingly impractical in today's high speed boxes. Old style DMA on single tasking cpu's could effectively 'pause' the one running program, write one memory into another, and then 'restart' the cpu. The engineer had direct access to the cpu databus. No such luck with a multiprocess multicore Xeon, I imagine.
Now the bottleneck I see is the pci interface, and your dma is limited to the 33/66/?? Mhz that your interface does. Even your fpga should write that fast. The advantage of DMA as I know it is lost. Is your pci card on a system clock or it's own clock?
I imagine your errors will be in speeds, and synchronization. And even if you get that working on one setup, will it sing on another wildly different one?
|