SDRAM讀寫一字(下)


SDRAM讀寫一字

SDRAM控制模塊

    上電后進行初始化狀態,初始化完成后進入空閑狀態,在此進行判斷如下判斷:

如果自刷新時間到,則進行自刷新操作,操作完成后重新進入空閑狀態;

如果讀使能有效則進行讀操作,操作完成后產生完成信號並延遲一個時鍾周期重新進入空閑狀態;

如果寫使能有效則進行寫操作,操作完成后產生完成信號並延遲一個時鍾周期重新進入空閑狀態。

    其中自刷新狀態的優先性最高,然后是寫操作、最后是讀操作;

    SDRAM控制狀態機流程圖:

控制模塊代碼

    自刷新定時

自刷新15us定時流程圖

自刷新代碼

SDRAM頂層模塊

sdram_bank_add:讀寫SDRAM的地址

write_data: 寫如sdram的數據

read_data: 從sdram讀出的數據

read_req: 讀數據請求信號

write_req: 寫數據請求信號

rw_ack: 讀寫應答信號

bus_signal: 忙信號

init_done: 初始化完成信號,輸出,高電平有效

SDRAM接口信號

sdram_clk: sdram時鍾信號

sdram_data: sdram讀寫數據

sdram_command:cke、cs_n、ras、cas_n、we_n,SDRAM指令信號

sdram_address:[13:12]BA , [11:0]Addr,SDRAM地址信號

sdram_dqm: SDRAM數據掩碼

 

SDRAM測試模塊編寫

測試模塊設計

    根據SDRAM的頂層模塊的接口信號,在判斷sdram初始化完成后對sdram的特定地址進行寫入數據,在寫入完成后延遲一段時間,然后將該特定地址的數據讀出顯示在LED燈上,一驗證整個工程的功能。

測試模塊流程圖

測試代碼

實驗效果

SDRAM原理圖

LED原理圖

 

實驗的工程夾文件為"sdram_read_write_a_word",其源代碼文件如下:

 

實驗中對地址為10和11分別寫入:16'h5555和16'h0003;

然后通過指定地址讀出數據顯示在LED燈上,實驗中可以自行更改讀寫的地址和數據,以驗證讀寫的正確性。

 

大西瓜FPGA-->https://daxiguafpga.taobao.com

 

博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!

 

每日推送不同科技解讀,原創深耕解讀當下科技,敬請關注微信公眾號“科乎”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM