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