新聞中心

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

        基于FPGA的SPI Flash控制器的設計方案

        作者:陳炳成 時間:2014-02-14 來源:摘自《電子發燒友》 收藏

                本文提出一個基于的SPI 讀寫硬件實現方案,該方案利用硬件對SPI 進行控制,能夠非常方便地完成的讀寫、擦除、刷新及預充電等操作,同時編寫的SPI Flash控制器IP核能夠進行移植和復用,作為芯片的功能模塊。SPI Flash控制器采用語言進行編寫,在Modelsim 6.5g上通過功能仿真,并且在XUPV5-LX110T開發板上通過硬件測試,實現結果表明方案的可行性。

        本文引用地址:http://www.104case.com/article/221568.htm

          1.引言

          Flash是一種具有電可擦除的可編程ROM,按接口可以分為兩大類:并行Flash和串行 Flash.并行Flash存儲量大,速度快;而串行Flash存儲量相對較小,但體積小,連線簡單,可減小電路面積,節約成本。SPI Flash是內嵌SPI總線接口的串行Flash,它比起傳統的并行總線接口Flash,節省了很多的I/O口資源,從而為系統功能的擴展提供了更多的可能。

          隨著SPI Flash越來越多地應用到各種領域,其傳統讀寫方式中讀寫速度不夠快、占用資源以及操作不夠簡便靈活的缺點表現得更為突出,如何解決以上問題成為大家關注的焦點。利用硬件對SPI Flash進行控制,能夠非常方便地完成Flash的讀寫、擦除、刷新及預充電等操作,且不占用資源,同時編寫的SPI Flash控制器IP核能夠進行移植和復用,作為芯片的功能模塊。因此提出了一種基于的SPI Flash控制器的設計方案,并用實現。編寫的SPI Flash控制器IP核在Modelsim 6.5g上進行了功能仿真,在FPGA開發板上進行了測試驗證,可作為功能模塊應用于芯片設計。

          2.SPI Flash控制器設計

          2.1 SPI Flash芯片選擇

          本方案SPI Flash芯片采用GigaDevice公司的GD25Q系列,GD25Q系列SPI Flash包括4Mbit的GD25Q40,2M bit的GD25Q20,1M bit的GD25Q10以及521K bit的GD25Q512,這里將采用512K bit的GD25Q512.圖1為GD25Q系列SPIFlash(SOP8封裝)引腳排列圖。其中VCC和VSS分別為電源和地,其他6個引腳均可直接與F P G A的I / O引腳相連;寫保護引腳W P #和HOLD#掛起引腳用于數據保護和空閑模式的低功耗運行,若不使用可將其置為高電平;CS#為片選信號,低電平時表示器件被選中,反之工作在待機狀態;SO為串行數據輸出,數據在時鐘的下降沿輸出到Flash器件;SI為串行數據輸入,包括傳輸指令、地址和輸入數據,輸入信號在時鐘的上升沿鎖存到 Flash器件中。SCLK為串行時鐘,由FPGA提供。

        圖1 GD25Q系列SPI Flash引腳排列

          2.2 SPI Flash指令操作

          GDQ25系列SPI Flash指令較多,所有指令都是8位,操作時先將片選信號CS#拉低選中器件,然后輸入8位操作指令字節,串行數據在片選信號CS#拉低后的第一個時鐘的上升沿被采樣,SPI Flash啟動內部控制邏輯,自動完成相應操作。有些操作在輸入指令后需要輸入地址字節和偽字節,最后操作完成后再將片選信號拉高。

          2.3 SPI Flash控制器設計原理

          SPI Flash控制器必須能夠產生SPI Flash芯片執行各操作(如寫使能、刷新、預充電、讀芯片ID、讀取狀態寄存器、寫狀態寄存器、扇區擦除、塊擦除、整體擦除、讀取數據、快速讀取數據、頁面編程)時所需指令時序,用戶只需要輸入對應操作的8位指令值及對應的操作地址值,SPI接口與SPI Flash的數據傳輸將由SPI Flash控制器內部狀態機控制執行。

          3.SPI Flash控制器實現

          3.1 SPI Flash測試系統

          本文設計的SPI Flash測試系統由用戶端、FPGA和SPI Flash構成,系統框圖如圖2所示,其中FPGA選用Xilinx公司Virtex5系列芯片(Virtex-5 XC5VLX110T),SPI Flash芯片采用GigaDevice公司的GD25Q系列512K bit容量的GD25Q512.

        圖2 SPI Flash測試系統框圖

          SPI Flash控制器由編寫,主要為SPIFlash芯片提供串行時鐘,將從用戶端輸入的數據(包括指令字節、地址字節和數據字節)寄存起來并在串行時鐘的控制下通過spi_dout信號線逐位輸出到SPI Flash芯片中,同樣將從SPI Flash芯片中讀出的串行數據轉換成并行數據送給用戶端。此外,SPI Flash控制器還必須在用戶通過sel、addr以及wr組合發出的操作命令下產生一系列的控制信號,并在這些控制信號的作用下根據狀態機的轉換方向進行動作并且輸出相應的結果。

        fpga相關文章:fpga是什么



        上一頁 1 2 下一頁

        關鍵詞: FPGA Flash SOC CPU VHDL

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玛沁县| 阜宁县| 青州市| 本溪| 额尔古纳市| 南通市| 灵武市| 盘山县| 德清县| 佛山市| 麦盖提县| 普陀区| 海宁市| 德兴市| 天长市| 南岸区| 拉萨市| 贞丰县| 乡宁县| 容城县| 娱乐| 北流市| 金湖县| 平利县| 通州区| 沁阳市| 广东省| 淮南市| 尉犁县| 河南省| 和平区| 炉霍县| 长寿区| 营口市| 凌云县| 葵青区| 井陉县| 彭泽县| 洛宁县| 清新县| 太康县|