基于FPGA的SPI Flash控制器的設計方案
本文提出一個(gè)基于FPGA的SPI Flash讀寫(xiě)硬件實(shí)現方案,該方案利用硬件對SPI Flash進(jìn)行控制,能夠非常方便地完成Flash的讀寫(xiě)、擦除、刷新及預充電等操作,同時(shí)編寫(xiě)的SPI Flash控制器IP核能夠進(jìn)行移植和復用,作為SOC芯片的功能模塊。SPI Flash控制器采用VHDL語(yǔ)言進(jìn)行編寫(xiě),在Modelsim 6.5g上通過(guò)功能仿真,并且在XUPV5-LX110TFPGA開(kāi)發(fā)板上通過(guò)硬件測試,實(shí)現結果表明方案的可行性。
1.引言
Flash是一種具有電可擦除的可編程ROM,按接口可以分為兩大類(lèi):并行Flash和串行 Flash.并行Flash存儲量大,速度快;而串行Flash存儲量相對較小,但體積小,連線(xiàn)簡(jiǎn)單,可減小電路面積,節約成本。SPI Flash是內嵌SPI總線(xiàn)接口的串行Flash,它比起傳統的并行總線(xiàn)接口Flash,節省了很多的I/O口資源,從而為系統功能的擴展提供了更多的可能。
隨著(zhù)SPI Flash越來(lái)越多地應用到各種領(lǐng)域,其傳統讀寫(xiě)方式中讀寫(xiě)速度不夠快、占用CPU資源以及操作不夠簡(jiǎn)便靈活的缺點(diǎn)表現得更為突出,如何解決以上問(wèn)題成為大家關(guān)注的焦點(diǎn)。利用硬件對SPI Flash進(jìn)行控制,能夠非常方便地完成Flash的讀寫(xiě)、擦除、刷新及預充電等操作,且不占用CPU資源,同時(shí)編寫(xiě)的SPI Flash控制器IP核能夠進(jìn)行移植和復用,作為SOC芯片的功能模塊。因此提出了一種基于FPGA的SPI Flash控制器的設計方案,并用VHDL實(shí)現。編寫(xiě)的SPI Flash控制器IP核在Modelsim 6.5g上進(jìn)行了功能仿真,在FPGA開(kāi)發(fā)板上進(jìn)行了測試驗證,可作為功能模塊應用于SOC芯片設計。
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個(gè)引腳均可直接與F P G A的I / O引腳相連;寫(xiě)保護引腳W P #和HOLD#掛起引腳用于數據保護和空閑模式的低功耗運行,若不使用可將其置為高電平;CS#為片選信號,低電平時(shí)表示器件被選中,反之工作在待機狀態(tài);SO為串行數據輸出,數據在時(shí)鐘的下降沿輸出到Flash器件;SI為串行數據輸入,包括傳輸指令、地址和輸入數據,輸入信號在時(shí)鐘的上升沿鎖存到 Flash器件中。SCLK為串行時(shí)鐘,由FPGA提供。
2.2 SPI Flash指令操作
GDQ25系列SPI Flash指令較多,所有指令都是8位,操作時(shí)先將片選信號CS#拉低選中器件,然后輸入8位操作指令字節,串行數據在片選信號CS#拉低后的第一個(gè)時(shí)鐘的上升沿被采樣,SPI Flash啟動(dòng)內部控制邏輯,自動(dòng)完成相應操作。有些操作在輸入指令后需要輸入地址字節和偽字節,最后操作完成后再將片選信號拉高。
2.3 SPI Flash控制器設計原理
SPI Flash控制器必須能夠產(chǎn)生SPI Flash芯片執行各操作(如寫(xiě)使能、刷新、預充電、讀芯片ID、讀取狀態(tài)寄存器、寫(xiě)狀態(tài)寄存器、扇區擦除、塊擦除、整體擦除、讀取數據、快速讀取數據、頁(yè)面編程)時(shí)所需指令時(shí)序,用戶(hù)只需要輸入對應操作的8位指令值及對應的操作地址值,SPI接口與SPI Flash的數據傳輸將由SPI Flash控制器內部狀態(tài)機控制執行。
3.SPI Flash控制器實(shí)現
3.1 SPI Flash測試系統
本文設計的SPI Flash測試系統由用戶(hù)端、FPGA和SPI Flash構成,系統框圖如圖2所示,其中FPGA選用Xilinx公司Virtex5系列芯片(Virtex-5 XC5VLX110T),SPI Flash芯片采用GigaDevice公司的GD25Q系列512K
fpga相關(guān)文章:fpga是什么
評論