寧靜 劉國斌 祝周榮 劉偉 陳云
摘要:當使用FLASH來存儲數據時,相同的地址不能重復寫入數據。在沒有擦除的情況下,重復對同一個地址進行寫操作,會使得存儲的數據內容出錯,從而導致從FLASH中讀出的數據出錯。因此,需要對FLASH的寫溢出功能進行測試。當FLASH中的所有好塊被占用,FPGA應能自動停止寫入數據,等待下一輪的寫操作。
關鍵詞:FLASH;自動寫停;擦除操作;FPGA
中圖分類號:TP333 文獻標識碼:A 文章編號:1007-9416(2018)04-0212-02
FLASH存儲器由于其容量較大,體積較小,掉電數據不丟失,讀寫速度快等優點,適用于大數據的存儲[1]。基于FLASH本身的固有特性,FLASH存儲器在寫入數據前應進行擦除操作,并且不能對同一地址進行多次的寫操作,否則會導致存儲的數據變為亂碼。因此無論設計方的需求中是否明確提出需求,都需要對FLASH進行寫溢出功能測試。
1 FPGA對FLASH的控制流程
對FLASH的擦除/讀/寫操作是通過FPGA(現場可編程邏輯門陣列)發送指令來控制的,常用的指令包括復位指令、擦除指令、寫操作指令、讀操作指令等。
由于生產工藝的原因,FLASH在出廠前就存在壞塊,記錄該壞塊信息的稱為初始壞塊表。在對FLASH擦除/讀/寫操作過程中,也有可能產生壞塊[2]。因此,FPGA需不斷更新壞塊表來標記FLASH中的壞塊位置。這就要求設計與驗證時需要充分考慮壞塊在整個基片中的分布情況以確保FLASH能正常工作。
FPGA對FLASH控制主流程主要有擦除流程、寫流程、讀流程、壞塊管理流程等。若當前狀態為擦除狀態且擦除結束標志有效時,則執行壞塊管理流程;……