The Audio-setup is done before the filtering starts. You have a lot of pins to use. I do not think you need another G4 if you do not want to run in stereo.
The threads isn't static. Since the distributorthread on one core that feeds all other thread takes some time, there is still time left on all other 3 cores if you need to do more in parallel with the filtering. As it it now. It could be optimized but I seems to be the case that it doesn't need to be.
The XDK has a stereo CODEC capable of running in 96 kHz, I can probably test-connect the filter to the CODEC.
The offset of the memory pointers to the old states of the in signal is still wrong in some threads. Hmm, you really have to think to get i right when distributing it.
It must pass this first test
MATLAB
Code: Select all
>> filter([0:2999],1,1:13)
ans =
0 1 4 10 20 35 56 84 120 165 220 286 364
Before I push it to git. Otherwise you will be even more confused since the little code on gist was proven to be right.
If you haven't done it yet, install the GIT plugin in XDE. Even if you havn't a card yet you can run things in the simulator to see it for your self. Including timing :)
Your lucky day is due to that I'm in bed with a little of a cold and it is raining outside. But back working I probably cannot do everything ready to be deployed fot you, at least not for free. But this was a good training for me, since I'm need to write distributed adaptive FIR filter, and a lot of them, but not @ 96 kHz.
The XDK is expensive, but the XC-1A card is not. It has free pins for a codec including I2C/SPI to set it up.
But if it is a commercial project the money for the XDK maybe isn't a big deal.
If you prefer the L series it is possible to use that as well. The BGA have the need of many layers on the PCB. With the L can can do it with 2 or 4 layers. And if you need more power you can just add one more.
Maybe a cute little row of L1-48 is interesting, or dual L2's
The G4 has very heavy bandwidth in the interconnect between the channels, but I didn't use that all the way, since I wanted it to be L compatible.
The L series has less interconnections between the switches.
If it can be squeezed into 3 pc. of 500 MHz ?? Maybe, but it might be tight of time in the end.