異步FIFO在FPGA與DSP通信中的運用
實現該FIFO的關鍵部分Verilog代碼如下:
需要說明的是,在產生寫滿標志時,由于采用格雷碼,寫滿標志判斷的條件是:如果讀寫指針的最高兩位不同,其余位相同,則為寫滿狀態(tài)。為了說明簡便,以4位格雷碼表示深度為8的FIFO為例,當讀指針指向第7個地址時,讀指針為0100,此時若寫指針指向第8個地址,則寫指針為1100,此時兩者僅最高位不同而其余位相同,但此時FIFO并不是處于寫滿狀態(tài),這與前文所敘述的用二進制碼表示的讀寫指針判斷方法是有區(qū)別的。當寫操作寫滿一圈,第二次到達地址7時,此時的寫指針為1000,可以看出,此時兩者的最高兩位不同,而其余位相同,這時FIFO真正處于寫滿狀態(tài)。
評論