I would like to do a FIFO between an ADC (ADS1274 from TI) and the FX3 to get data in the FX3. Because of the sampling frequency, I need to use the "Frame-Sync interface" of the ADS1274 because the SPI cannot reach the speed requirement.

I would like to use the GPIF II interface of the FX3 and the DMA to transfert data to USB and maybe later, to an SD card (with an FX3S).

I do not need to have input signal with the "Frame-Sync interface" to get data from the ADC, only some output signals. Everything I need to make a state machine is just some counters and a very basic logic which can be easily programmed into the FX3.

I tried to work a while with GPIF II Designer and it is like the only signal I can use to change the state are the input signals which means I would need to make an external logic to do my application. It it what my company did with our last generation card: some logic ICs that made the control signals. But all this logic could be made in a very simple way in the firmware and would not require a huge CPU load. So my questions are:

- Could I make a state machine based on soft variables instead of hardware input (with no complex operation)?

- Can I write some code (like a counter and when the loop is done X times, the state will change?)

Sorry, this is the very first time I use the FX3 and make this king of state machine. I understand that a state machine will change its state according to input signal, but do they need to be signal input and not software variables?

GPIF II provides you with counters which you can use for counting and switching the states. Please refer to the AN75779 example. If you look at the state machine, you will notice 2 counters ( data and add). Count_Data and count_add actions will count (increment/decrement) the counter. You can set the limit and steps of these counters and you can use the triggers like counter hit to move to the next stage. Please see these counters in the attached image