FIFO 先進先出隊列(此處指硬體結構)
同步FIFO架構
結構如下圖所示
工作方式:複位後讀寫指針相等且都為空,此時FIFO為空,阻值對其的讀操作,隻可以寫。當沒有空間可以寫的時候指針位置為SIZE-1,此時進行一個寫操作會使得指針復原到0,讀寫指針再次相等。
空和滿狀态的區分:一種是使用進入空和進入滿的狀态邏輯先後進行判斷。另一種是使用計數器做計算,這種方法容易了解但是效率低。
異步FIFO
- 異步FIFO可以使用同樣的邏輯,但是需要注意亞穩态的規避。
- 使用格雷碼取代二進制計數器作為讀寫指針
- 同步格雷碼計數器因為單次翻轉一位的原因,很少導緻取樣計數器值出現亞穩态,此外取樣後的值,最多有一位出現錯誤。