FIFO 버퍼는 링 버퍼로 인식되는 선입 선출 버퍼 영역입니다. 버퍼에 작성된 순서로 저장된 후 저장된 순서(저장된 최초 데이터 항목부터 시작)대로 데이터를 읽습니다. 순차적으로 개체를 버퍼링하는 경우에 편리합니다.
FP_FIFO_DEFINE을 사용하여 사용할 영역을 FIFO 버퍼로 정의합니다. (한 번만, 읽기 전에 또는 쓰기 완료 후에 수행되어야 합니다.)
FP_FIFO_WRITE를 사용하여 데이터를 버퍼에 작성하고 FP_FIFO_READ를 사용하여 버퍼를 읽어야 합니다.
데이터를 쓰면 데이터 항목은 최초 데이터 저장 영역부터 시작하는 순차 순서로 저장됩니다. 쓰기 포인터는 데이터를 쓸 다음 영역을 나타냅니다. 저장된 워드 수는 1씩 증가합니다.
데이터 저장 영역이 가득 차면, 즉 저장된 워드 수가 n-1이면 추가 데이터 쓰기가 금지됩니다.
데이터를 읽으면 데이터는 처음 저장된 데이터 항목부터 데이터가 전송됩니다. 읽기 포인터는 데이터를 읽을 다음 영역을 나타냅니다. 저장된 워드 수는 1씩 감소합니다.
데이터 자정 영역이 빈 경우, 데이터 읽기를 시도하면 에러가 발생하고 저장된 워드 수는 FIFO 버퍼의 메모리 크기 또는 0과 같습니다.
FIFO 버퍼가 아래와 같은 상태에서 데이터를 쓰면 데이터는 3으로 표시된 영역에 저장됩니다. 쓰기 포인터는 4로 이동합니다. 즉, 다음 데이터 항목이 4에 작성됩니다. 데이터를 읽으면 0으로 표시된 영역에서 데이터를 읽습니다. 그런 다음 읽기 포인터는 1로 이동합니다. 즉, 1에서 다음 데이터 항목을 읽습니다.