I'm trying at the moment to get 40 outputs from an XS1-L1 (128) package while also using the x-links. So if you have a look at the documentation you'll see that my only option is to use X-links C and D and use 16A and 16B along with 1A,B,C,D,E,F,G,H to make up the 40 ports.
The next problem is that I need something that outputs at a frequency of 2.5Mhz. The problem I'm finding is that looking at the timing analysis, the loop takes too long to execute each instruction and the timing is all off.
I'm currently using this to output to the ports
Code: Select all
for (int i = 0; i < 64; i++){
C0P16A <: signaltable[i].int16bitA;
C0P16B <: signaltable[i].int16bitB;
C0P1A <: signaltable[i].int1bitA;
C0P1B <: signaltable[i].int1bitB;
C0P1C <: signaltable[i].int1bitC;
C0P1D <: signaltable[i].int1bitD;
C0P1E <: signaltable[i].int1bitE;
C0P1F <: signaltable[i].int1bitF;
C0P1G <: signaltable[i].int1bitG;
C0P1H <: signaltable[i].int1bitH;
}
The only way out that I can see is using assembly....
does anyone know if there a way to push to the output faster???