Il buffer FIFO è un'area buffer first-in-first-out realizzata come buffer circolare. I dati vengono memorizzati nell'ordine in cui vengono scritti nel buffer, quindi letti nell'ordine memorizzato, a partire dal primo elemento di dati memorizzato. È utile per la memorizzazione temporanea di oggetti in ordine sequenziale.
L'area da utilizzare viene definita come buffer FIFO utilizzando FP_FIFO_DEFINE. (L'operazione deve essere eseguita una sola volta, prima della lettura o della scrittura).
I dati devono essere scritti nel buffer utilizzando FP_FIFO_WRITE e letti dal buffer utilizzando FP_FIFO_READ.
Durante la scrittura dei dati, gli elementi di dati vengono memorizzati in ordine sequenziale, a partire dalla prima area di memorizzazione dei dati. Il puntatore di scrittura indica l'area successiva in cui andranno scritti i dati. Il numero di word memorizzate aumenta di 1.
Se l'area di memorizzazione dei dati si riempie, ossia il numero di word memorizzate è pari a n-1, non sarà consentito scrivere altri dati.
Durante la lettura dei dati, questi vengono trasferiti a partire dal primo elemento di dati memorizzato. Il puntatore di lettura indica l'area successiva da cui verranno letti i dati. Il numero di word memorizzate diminuisce di 1.
Il tentativo di leggere i dati quando l'area di memorizzazione dei dati è vuota, il numero di word memorizzate è uguale alla capacità memoria del buffer FIFO o è pari a zero, genera un errore.
Se i dati vengono scritti mentre il buffer FIFO è nello stato illustrato sotto, i dati verranno memorizzati nell'area indicata da 3. Il puntatore di scrittura si sposta su 4, vale a dire che l'elemento di dati successivo verrà scritto in 4. Se i dati vengono letti, verranno letti dall'area indicata da 0. Il puntatore di lettura si sposterà quindi su 1, vale a dire che l'elemento di dati successivo verrà letto da 1.