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