1、Standard FIFO與First-word-Fall-Through(簡稱FWFT)
在vivado中例化fifo的IP核的時候,在native ports部分有兩種模式可以選擇,如下圖所示:
這兩種模式的主要區別是:
當選擇Standard模式的時候,在讀使能信號有效的下一個週期才能讀出第一個有效的數據;
當選擇Standard模式的時候,在讀使能信號有效的第一個週期就能能讀出第一個有效的數據; 這是因爲在這種模式下,FIFO提前把數據已經準備到了數據輸出總線上,等待都使能有效就輸出到數據輸出端口(組合邏輯),但在這種模式下,valid信號將會在復位後就保持有效,這一點要特別注意;
兩種模式的仿真圖如下所示:
(1)寫數據時序仿真結果:
(2)FWFT模式下讀數據時序
(2):Standard 模式下的讀時序:
補充一下almost_full這個信號:
FIFO深度:寫位寬64bit,深度:1024
但實際只能寫1023個數,這是xilinxFIFO的特性,即寫完第1022個數的下一個週期,almost_full拉高,表明還能再寫入最後一個數;
詳情參考這個博客寫的很好!
https://www.eefocus.com/guoke1993102/blog/15-06/313183_36284.html