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