在图6-47中,T1时刻,写使能由0变为1,T2时刻,写使能由1变为0,同时读使能由0变为1,直至将FIFO读空。T3时刻,写使能又由0变为1,直至将FIFO写满。结合图6-46和图6-47,不难看出,当读指针追赶上写指针,两者相等时,FIFO达到空状态;当写指针追赶上读指针,两者相等时,FIFO达到满状态。
读/写指针相等只能断定FIFO达到空状态或满状态,但不能区分是空状态还是满状态。为此,我们将读/写指针增加一位,这样,图6-46和图6-47就分别变为如图6-48和图6-49所示的情形。观察可知,当FIFO为满状态时,读指针和写指针的最高位相反,其余位相等;而当FIFO为空状态时,读指针和写指针的所有位均相等。在此基础上,也很容易生成存储单元所需要的读/写地址:只需要取读/写指针的低两位即可。