新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的K9F4G08 Flash控制器設計

        基于FPGA的K9F4G08 Flash控制器設計

        作者: 時間:2010-06-23 來源:網絡 收藏

          2.1 匹配表

          出廠后可能存在壞塊,使用中也有可能會再出現新的壞塊。制造商保證每個芯片中的壞塊不多于80個,同時保證第0個塊肯定是好的,且保證擦寫1 000次不壞[1]。當進行連續地址的數據讀寫時有可能遇到壞塊,壞塊無法進行操作,會導致數據的丟失。因此必須建立一個匹配表,當遇到壞塊時,將其匹配到好塊的地址上。

          實際的數據讀寫中只使用4 000個塊,根據這些要求設計了這樣的匹配表:長度512 B,存放在第0個塊的第0個頁(B0P0)。具體內容見表2。

        基于FPGA的K9F4G08 Flash控制器設計

          一個塊的地址用2 B的16進制數表示。256 B可以存儲128個塊地址。0~255與256~512中存儲的塊地址是一一對應的,當使用到0~255中的塊地址時,需要從256~511中尋找對應的塊地址進行替換。

          在中生成一個512 B的ram:ram_512,專門用于存放匹配表,當系統上電復位后,狀態機會自動將B0P0的數據讀出,并將前512 B的數據存入該ram_512中,以便后面匹配時使用[4]。

          2.2 全擦與部分擦指令

          該指令用于擦除所有的塊,建立新的匹配表。由于壞塊會導致擦除不成功,狀態機在擦除過程中會記錄下1~4 000個塊中擦除失敗的壞塊的地址、4 000~4 095個塊中好塊的地址,先按照匹配表規定的順序寫入ram_512,全部擦除完成后將ram_512中的數據寫入B0P0。由于數據量不足2 KB,因此后面補零。其流程圖如圖2所示。

        基于FPGA的K9F4G08 Flash控制器設計

          部分擦除與全擦類似,執行這條指令需要給定起始與結尾的塊地址,controller_4G08可以完成對2個塊地址之間所有塊的擦除。當擦除過程中擦到壞塊時,狀態機會從匹配表中尋找該壞塊對應的好塊,并擦除。若沒有尋找到該壞塊的匹配塊,則出現了新的壞塊,會產生一個報錯的標志位,提示主狀態機需要進行全擦,以便建立新的匹配表。



        關鍵詞: FPGA Flash K9F4G08

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 琼结县| 清新县| 文登市| 浠水县| 久治县| 新巴尔虎左旗| 常山县| 乌拉特后旗| 延吉市| 宿松县| 海安县| 苗栗市| 广东省| 阿拉善左旗| 教育| 浦县| 北辰区| 元阳县| 嘉荫县| 申扎县| 托克逊县| 东平县| 达日县| 乐清市| 贵港市| 大化| 曲周县| 大丰市| 曲阜市| 吉木乃县| 东至县| 怀宁县| 泰顺县| 永康市| 祁门县| 北川| 泸西县| 吉安县| 交口县| 陕西省| 大田县|