支持ONFI同步模式的NAND Flash控制器設(shè)計(jì)
3.2 異步時(shí)鐘域處理
很明顯,同步接口模式下的控制器將涉及到較多的異步時(shí)鐘域的通信,需要小心處理。首先,由于本文所設(shè)計(jì)的控制器中所有跨時(shí)鐘域的單比特控制信號(hào)沒有窄脈沖形式,因此均可以使用雙D觸發(fā)同步器作同步,此外涉及跨時(shí)鐘域的數(shù)據(jù)緩沖需要使用異步FIFO。由于ONFI2.1規(guī)定的最快Timing Mode達(dá)到了200MB/s的數(shù)據(jù)速率,而涉及本文應(yīng)用的連接Flash控制器的下一級(jí)模塊消耗數(shù)據(jù)的速率為100MB/s,如果按照公式計(jì)算FIFO的深度,可如式(1)所示,其中的4KB是仿真實(shí)驗(yàn)所使用的仿真模型的頁面(Page)大小。
4KB×(1-100MB/s÷200MB/s)=2KB (1)
這樣大的FIFO將帶來較大的硬件代價(jià),考慮到NAND Flash的讀寫操作是可以暫停的,故本文將FIFO深度設(shè)為128,寬度為16bit。
如何判斷異步FIFO的空滿狀態(tài)也是設(shè)計(jì)FIFO的難點(diǎn)。本文所使用的FIFO采用圖10的結(jié)構(gòu),F(xiàn)IFO Memory模塊采用寄存器組作為核心存儲(chǔ),這是由于本文應(yīng)用環(huán)境下可能經(jīng)常出現(xiàn)讀空或?qū)憹M的情況,這樣會(huì)頻繁遇到讀寫同一個(gè)地址,因此不適合用雙端口SRAM作為FIFO的核心存儲(chǔ);WptrFull模塊用于產(chǎn)生寫指針和滿標(biāo)志;RptrEmpty模塊用于產(chǎn)生讀指針和讀標(biāo)志;此外還有兩組同步器分別將寫指針同步到讀時(shí)鐘域和讀指針同步到寫時(shí)鐘域??鐣r(shí)鐘傳送的讀寫指針都事先轉(zhuǎn)換成格雷碼,以避免亞穩(wěn)態(tài)問題及提高可靠性。本文引用地址:http://2s4d.com/article/162177.htm
由綜合結(jié)果可知,最高工作頻率達(dá)到了118MHz,滿足ONFI標(biāo)準(zhǔn)100MHz頻率、200MB/s的最快數(shù)據(jù)傳輸速率的要求,并有超過15%的裕量。因此,本文設(shè)計(jì)的NANDFlash控制器具有一定的實(shí)用價(jià)值。
5 結(jié)束語
本文設(shè)計(jì)了一種滿足ONFI2.1標(biāo)準(zhǔn)要求的NANDFlash控制器,并通過了功能仿真和綜合。該控制器既可以在傳統(tǒng)的異步模式下工作,也可以在同步模式下工作,并達(dá)到了ONFI標(biāo)準(zhǔn)要求的200MB/s的數(shù)據(jù)讀寫速率。達(dá)到了最初的設(shè)計(jì)目的,對(duì)其他的NAND Flash控制器設(shè)計(jì)具有參考意義。
評(píng)論