在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

FPGA設計論壇 ? 來源:未知 ? 2023-07-15 16:55 ? 次閱讀

點擊上方藍字關注我們

e21860b4-22ec-11ee-962d-dac502259ad0.png ?

摘要:傳統的Flash讀寫是通過CPU軟件編程實現,其讀寫速度較慢,且占用CPU資源,另外由于Flash芯片本身功能指令較多,使得對芯片進行直接操作變得非常困難。

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

1.引言

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

隨著SPI Flash越來越多地應用到各種領域,其傳統讀寫方式中讀寫速度不夠快、占用CPU資源以及操作不夠簡便靈活的缺點表現得更為突出,如何解決以上問題成為大家關注的焦點。利用硬件對SPI Flash進行控制,能夠非常方便地完成Flash的讀寫、擦除、刷新及預充電等操作,且不占用CPU資源,同時編寫的SPI Flash控制器IP核能夠進行移植和復用,作為SOC芯片的功能模塊。因此提出了一種基于FPGA的SPI Flash控制器的設計方案,并用VHDL實現。編寫的SPI Flash控制器IP核在Modelsim 6.5g上進行了功能仿真,在FPGA開發板上進行了測試驗證,可作為功能模塊應用于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個引腳均可直接與F P G A的I / O引腳相連;寫保護引腳W P #和HOLD#掛起引腳用于數據保護和空閑模式的低功耗運行,若不使用可將其置為高電平;CS#為片選信號,低電平時表示器件被選中,反之工作在待機狀態;SO為串行數據輸出,數據在時鐘的下降沿輸出到Flash器件;SI為串行數據輸入,包括傳輸指令、地址和輸入數據,輸入信號在時鐘的上升沿鎖存到Flash器件中。SCLK為串行時鐘,由FPGA提供。

e2281dec-22ec-11ee-962d-dac502259ad0.jpg

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.

e2410ff0-22ec-11ee-962d-dac502259ad0.jpg

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

3.2 SPI Flash控制器控制狀態機

由于SPI Flash操作命令較多,并且很多操作命令之間存在相同的操作步驟,所以利用狀態機進行控制能夠準確有條理地完成對SPI Flash的操作。分析GDQ25系列SPI Flashdatasheet,可將SPI Flash控制器的工作狀態劃分為空閑狀態(IDLE)、傳輸指令狀態(TxCMD)、傳輸高字節地址狀態(TxADD_H)、傳輸中間字節地址狀態(TxADD_M)、傳輸低字節地址狀態(TxADD_L)、傳輸偽字節狀態(TxDummy)、傳輸數據狀態(TxDATA)和接收數據狀態(RxDATA)。除此以外,由于所有接收到的指令值都寄存在指令寄存器內,當一條指令執行完畢時需要將指令寄存器清空,以便接收下一條用戶指令,所以設定一個清除指令狀態(CLR_CMD)作為每一操作完成后的收尾狀態。當狀態機進入CLR_CMD狀態后,表示當前操作已經完成,正將指令寄存器指令值清空;當狀態機進入IDLE狀態時,用戶可輸入下一操作指令,對SPI Flash進行下一操作。考慮到SPI Flash的響應時間,在以上工作狀態中間插入了一些等待狀態(WAIT)。

4.SPI Flash控制器驗證

SPI Flash控制器IP核在Modelsim 6.5g上能夠通過功能仿真,下面分析一下SPI Flash頁面編程操作及數據讀取操作的功能仿真。

4.1 頁面編程操作

頁面編程操作仿真波形如圖3所示,圖中截取輸入00H和01H數據的波形,多可連續輸入一頁256字節數據。當用戶輸入頁面編程指令02H,狀態機進入txcmd狀態,頁編程指令02H通過spi_dout傳輸給SPI Flash.當tx_bit_cnt計數到8時,指令傳輸完畢,狀態機在等待后進入txadd_h狀態,同時tx_bit_cnt被清零,需寫入數據的對應存儲空間的起始地址高字節值89H被傳輸。當tx_bit_cnt計數到8時,高字節地址值89H被傳輸完畢,狀態機在等待后進入txadd_m狀態,同時tx_bit_cnt被清零,同上,地址中間字節67H和45H被傳輸。當add_h、add_m和add_l寄存器的值依次傳輸完畢,狀態機進入wait6狀態,等待用戶輸入需寫入SPI Flash的數據。當用戶設定{sel,addr,wr}為10001b,狀態機進入txdata狀態,同時tx_new_data被置高,表示要傳輸新寫入的數據。在txdata狀態下,控制器將傳輸寫入的第1字節數據00H,當tx_bit_cnt計數到8時,第1字節數據00H被傳輸完畢,tx_new_data被拉低,tx_empty被拉高,表示當前沒有可傳輸的數據,狀態機進入wait6狀態,等待新數據寫入。直到用戶再次設定{sel,addr,wr}為10001b,狀態機再次進入txdata狀態,同時tx_new_data被置高,表示寫入的第2字節數據01H將要傳輸。當tx_bit_cnt計數到8,第2字節數據傳輸完畢,tx_new_data被拉低,tx_empty被拉高,狀態機進入wait6狀態。由于GDQ25系列SPI Flash頁面編程多可寫入256字節數據,所以用戶在寫入數據時,應注意多寫入256次數據,否則超過的數據將覆蓋開始的數據。當狀態機處于wait6狀態而用戶想結束頁面編程時,可向控制器輸入NOP指令強制結束當前頁面編程操作。狀態機在接收到NOP指令后將進入clr_cmd狀態和idle空閑態,等待下一條指令的到來。當頁面編程操作還沒結束時,busy將一直被置高。

e25fc5da-22ec-11ee-962d-dac502259ad0.jpg

4.2 數據讀取操作

讀數據指令仿真波形如圖4所示。當用戶輸入讀數據指令03H,狀態機進入txcmd狀態,讀數據指令通過spi_dout傳輸給SPI Flash.

e27d6928-22ec-11ee-962d-dac502259ad0.jpg

當tx_bit_cnt計數到8時,指令傳輸完畢,狀態機等待后進入txadd_h狀態,傳輸要讀出數據所在存儲空間起始地址的高字節,同時tx_bit_cnt清零,以為下一個傳輸作準備。地址高字節寄存器add_h數值56H通過spi_dout傳輸給SPI Flash,當tx_bit_cnt計數到8時,狀態機進入txadd_m狀態,傳輸地址中間字節,同理,控制器在狀態txadd_m和狀態txadd_l狀態下完成傳輸地址中間字節34H和地址低字節12H.當24位地址傳輸完畢,狀態機在等待后進入rxdata狀態,接收從spi_din輸入的字節數據01H.當rx_bit_cnt計數到8時,控制器完成第1字節數據的接收,rx_data顯示為01H,狀態機狀態轉換為wait8狀態,等待用戶設定{sel,addr,wr}以接收第2字節。當用戶設定{sel,addr,wr}為10000b時,狀態機再次進入rxdata狀態,接收從spi_din輸入的第2字節數據02H,同時rx_ready被拉低,rx_empty被拉高,rd_data被拉高,表示將要讀出新輸入的數據。當rx_bit_cnt計數到8時,第2字節數據接收完畢,rx_ready被拉高,rx_empty為低,rd_data顯示新接收的字節數據02H,狀態機經等待后重新進入wait8狀態,等待用戶再次設定{sel,addr,wr}值,接收第3字節數據值,同理,可讀出SPI Flash內部所有數據。

當狀態機處于wait8狀態而用戶想退出讀數據操作時,可向控制器輸入NOP指令強制結束當前讀數據操作。狀態機在接收到NOP指令后將進入clr_cmd狀態和idle空閑態,等待下一條指令的到來。當讀數據操作還沒結束時,busy將一直置高。

5.結語

目前SPI Flash控制器IP核已經在XUPV5-LX110T FPGA開發板上通過硬件測試,并且將作為功能模塊應用于SOC芯片設計。實踐證明,基于FPGA的SPI Flash控制器能夠簡化SPI Flash讀寫操作流程,從而提高SPI Flash的讀寫速度,而操作時不占用CPU資源的特點,將使SPIFlash的讀寫更有優勢

e29f1c08-22ec-11ee-962d-dac502259ad0.png

有你想看的精彩 至芯科技-FPGA就業培訓來襲!你的選擇開啟你的高薪之路!7月12號北京中心開課、歡迎咨詢! 解析高速ADCDAC與FPGA的配合使用 FPGA管腳調整的注意事項

e2aeab14-22ec-11ee-962d-dac502259ad0.jpg

掃碼加微信邀請您加入FPGA學習交流群

e2ce52de-22ec-11ee-962d-dac502259ad0.jpge2e0b0be-22ec-11ee-962d-dac502259ad0.png

歡迎加入至芯科技FPGA微信學習交流群,這里有一群優秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!

點個在看你最好看


原文標題:基于FPGA的SPI Flash控制器的設計方案

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21982

    瀏覽量

    614545

原文標題:基于FPGA的SPI Flash控制器的設計方案

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    MAX3421E USB外設/主機控制器SPI接口技術手冊

    MAX3421E USB外設/主機控制器包含了實現USB規范2.0全速USB外設或全速/低速主機所需的數字邏輯電路和模擬電路。內置收發器具有±15kV ESD保護和可編程的USB連接和斷開特性。內部
    的頭像 發表于 05-22 16:39 ?183次閱讀
    MAX3421E USB外設/主機<b class='flag-5'>控制器</b>,<b class='flag-5'>SPI</b>接口技術手冊

    工程機械控制器廠家 控制器國產替代 #國產控制器#控制器廠家#控制器品牌

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2025年04月29日 14:15:05

    詳解Zynq中的SPI控制器

    本文簡單介紹Zynq中的SPI控制器。本文將“master”稱為“主機”;將“slave”稱為“從機”;將“slave slect”從機選擇簡稱為SS。
    的頭像 發表于 03-31 10:35 ?446次閱讀
    詳解Zynq中的<b class='flag-5'>SPI</b><b class='flag-5'>控制器</b>

    工程機械控制器如何選型?控制器選型指南 #控制器 #車載控制器 #整車控制器 #控制器選型

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2025年03月14日 10:54:24

    DLPC3478控制器不讀取SPI0 FLAH,怎么解決?

    DLPC3478控制器不讀取SPI0 FLAH,SPI0 FLASH的PCLK沒有任何信號,系統加載不起來。
    發表于 02-19 06:47

    fpga上實現NAND控制器的問題請教

    各位大佬好, 我目前正在使用xilinx 7系列fpga進行基于onfi4.0標準nv-ddr3接口的nand flash控制器的開發。目前在物理層接口上,特別是從nand讀取數據時,調試存在
    發表于 02-06 15:02

    ADS8363用FPGA做了一個SPI接口控制器,用示波器觀察SDO無信號輸出是怎么回事?

    FPGA做了一個SPI接口控制器,用示波器觀察,CS,convst/rd,SDI,BUSY,CLK到片腳信號正常,但SDO無信號輸出? 有誰知道SDI數據應在SPI CLK時鐘的上
    發表于 01-24 06:56

    EE-231:帶SHARC處理SPI Flash在線編程

    電子發燒友網站提供《EE-231:帶SHARC處理SPI Flash在線編程.pdf》資料免費下載
    發表于 01-06 15:31 ?0次下載
    EE-231:帶SHARC處理<b class='flag-5'>器</b>的<b class='flag-5'>SPI</b> <b class='flag-5'>Flash</b>在線編程

    通過FPGA的產生SPI控制器訪問PCB上若干片DAC8734,有的成功有的失敗,為什么?

    你好,我的設計中有通過FPGA的產生SPI控制器訪問PCB上若干片DAC8734,但是只有部分成功,部分訪問失敗。個人覺得是芯片內部問題,希望TI專家能幫忙定位一下。下圖是時序圖: 訪問異常的時序
    發表于 12-05 08:29

    FPGA 與微控制器優缺點比較

    在現代電子設計領域,FPGA和微控制器(MCU)是兩種常用的計算平臺。它們各自具有獨特的優勢和局限性,適用于不同的應用場景。 性能 FPGA FPGA是一種可編程的硬件,由大量的邏輯單
    的頭像 發表于 12-02 09:58 ?1132次閱讀

    LuatOS入門課|Air201模組與SPI Flash的交互藝術

    今天我會把我了解的關于如何使用SPI讀寫外部Flash教給大家,本文將通過Air201+擴展板讀寫外部flash的演示,教你使用SPI示例,可根據實際需求靈活應用。
    的頭像 發表于 11-17 09:51 ?569次閱讀
    LuatOS入門課|Air201模組與<b class='flag-5'>SPI</b> <b class='flag-5'>Flash</b>的交互藝術

    DS1302芯片與FPGA之間SPI通信原理

    本文通過以DS1302芯片為基礎,介紹該芯片與FPGA之間SPI通信原理,詳細描述硬件設計原理及FPGA SPI接口驅動設計。
    的頭像 發表于 10-24 14:16 ?1373次閱讀
    DS1302芯片與<b class='flag-5'>FPGA</b>之間<b class='flag-5'>SPI</b>通信原理

    物聯網行業存儲方案詳解_SPI NOR Flash

    SPI NOR FLASH存儲在初始響應和啟動時提供高可靠性,并具有低時延。這一特性對于物聯網設備至關重要,因為物聯網設備通常需要快速啟動并穩定運行,以確保數據的實時傳輸和處理。 2、直接執行代碼的能力
    的頭像 發表于 09-24 14:39 ?988次閱讀
    物聯網行業存儲<b class='flag-5'>方案</b>詳解_<b class='flag-5'>SPI</b> NOR <b class='flag-5'>Flash</b>

    SIT2515帶SPI接口的獨立局域網(CAN)控制器中文手冊

    電子發燒友網站提供《SIT2515帶SPI接口的獨立局域網(CAN)控制器中文手冊.pdf》資料免費下載
    發表于 09-02 14:23 ?0次下載

    MCP2515帶SPI接口的獨立CAN控制器數據手冊

    電子發燒友網站提供《MCP2515帶SPI接口的獨立CAN控制器數據手冊.pdf》資料免費下載
    發表于 09-02 14:22 ?5次下載
    主站蜘蛛池模板: 日本特黄特色特爽大片老鸭 | 国产精品久久久香蕉 | 在线免费看黄的网站 | 亚洲一区二区免费在线观看 | 久久草在线观看 | 特黄aa级毛片免费视频播放 | 理论片人人51| 国产片在线观看狂喷潮bt天堂 | 经典三级四虎在线观看 | 亚洲国产日韩欧美在线as乱码 | 色婷婷综合久久久久中文一区二区 | 速度与激情一 | 日日噜夜夜噜 | 精品伊人久久大线蕉地址 | 久久777国产线看观看精品卜 | 成人毛片在线播放 | 中文三 级 黄 色 片 | 1515hh四虎免费观com | 日本不卡视频一区二区 | 国产在线黄| 欧美精品专区55页 | 最好看的2019中文字幕免费高清 | 欧美午夜性春猛xxxx | 午夜五月天 | 不卡一区 | 国内精品久久久久影院薰衣草 | 亚洲综合校园春色 | 性欧美激情在线观看 | 韩国精品videosex性韩国 | 国产三级精品播放 | 羞羞色男人的天堂伊人久久 | 免费免播放器在线视频观看 | 日本黄页网站在线观看 | 四虎影院.com | 亚洲 欧美 日韩 在线 中文字幕 | 欧美日韩a| 国产精品美女www爽爽爽视频 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠久久丁香 | 岛国片欧美一级毛片 | 一区二区三区免费视频网站 | 夜夜操夜夜操 |