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