SDRAM 不帶自動預充電寫操作
- //不帶自動預充電寫操作
- //tRCD = 20ns, 取30ns
- //tWR = 1clk + 7.5ns
- //tRP = 20ns, 取30ns
- //tRAS(max) = 12_0000ns, tRAS(min) = 44ns
- //tRC(min) = 66ns
- //clk=50M Hz
- //預充電 {CS_N,RAS_N,CAS_N,WE_N} = 4'b0010
- //空命令 {CS_N,RAS_N,CAS_N,WE_N} = 4'b0111
- //寫命令 {CS_N,RAS_N,CAS_N,WE_N} = 4'b0100
- //啟用命令 {CS_N,RAS_N,CAS_N,WE_N} = 4'b0011
- //BL = 4
- module sdr_w_n_a(
- clk,
- rst,
- w_en,
- w_done,
- w_SDR_CLK,
- w_CKE,
- w_CS_N,
- w_RAS_N,
- w_CAS_N,
- w_WE_N,
- w_BA,
- w_SA,
- w_DQM,
- w_DQ
- );
- input clk,rst;
- input w_en;
- output w_done;
- output w_SDR_CLK;
- output w_CKE;
- output w_CS_N;
- output w_RAS_N;
- output w_CAS_N;
- output w_WE_N;
- output [1:0] w_BA;
- output [12:0] w_SA;
- output [1:0] w_DQM;
- output [15:0] w_DQ;
- reg [3:0] w_cnt;
- reg w_done;
- reg w_CKE;
- reg w_CS_N;
- reg w_RAS_N;
- reg w_CAS_N;
- reg w_WE_N;
- reg [12:0] w_SA;
- reg [1:0] w_DQM;
- reg [1:0] w_BA;
- reg [15:0] w_DQ;
- parameter row = 13'b0_0000_0000_0000; //行地址
- parameter col = 9'b0_0000_0000; //列地址
- parameter bank = 2'b00; //bank地址
- //==============================================
- //線性序列機
- //==============================================
- always@(posedge clk or negedge rst)
- begin
- if(!rst)
- begin
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_CKE <= 1'b0;
- w_done <= 1'b0;
- end
- else
- begin
- case(w_cnt)
- 0:begin //Active
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b0;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_CKE <= 1'b1;
- w_done <= 1'b0;
- w_SA <= row;
- w_BA <= bank;
- end
- 2:begin //Write
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b0;
- w_WE_N <= 1'b0;
- w_CKE <= 1'b1;
- w_done <= 1'b0;
- w_DQM <= 1'b0;
- w_SA <= col;
- w_SA[10] <= 1'b0;
- w_BA <= bank;
- w_DQ <= 16'd0;
- end
- 3:begin //Nop
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_DQM <= 1'b0;
- w_DQ <= 16'd1;
- end
- 4:begin //Nop
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_DQM <= 1'b0;
- w_DQ <= 16'd2;
- end
- 5:begin //Nop
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_DQM <= 1'b0;
- w_DQ <= 16'd3;
- end
- 7:begin //Precharge
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b0;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b0;
- w_CKE <= 1'b1;
- w_done <= 1'b0;
- w_SA[10] <= 1'b1;
- w_BA <= bank;
- end
- 9:begin //結束給Nop命令
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_CKE <= 1'b0;
- w_done <= 1'b1;
- end
- 10:begin //結束給Nop命令
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_CKE <= 1'b0;
- w_done <= 1'b1;
- end
- default:begin //其他給Nop命令
- w_CS_N <= 1'b0;
- w_RAS_N <= 1'b1;
- w_CAS_N <= 1'b1;
- w_WE_N <= 1'b1;
- w_CKE <= 1'b1;
- w_done <= 1'b0;
- end
- endcase
- end
- end
- //==============================================
- // 計數器
- //==============================================
- always@(posedge clk or negedge rst)
- begin
- if(!rst) w_cnt <= 4'd0;
- else if(w_en & (!w_done))
- begin
- if(w_cnt == 4'd10) w_cnt <= 4'd0;
- else w_cnt <= w_cnt + 4'd1;
- end
- else w_cnt <= w_cnt;
- end
- //==============================================
- // SDR_CLK
- //==============================================
- assign w_SDR_CLK = ~clk; //相位相差180度
- //==============================================
- endmodule
相關文章
- 非易失性FRAM中的預充電操作
- 靜態SDRAM和動態SDRAM的區別
- 電動汽車充電樁著火預警系統
- 【iCore4 雙核心板_ARM】例程三十七:SDRAM實驗——讀寫SDRAM
- 電腦充不進去電是怎麼回事 電腦充不進去電的解決方法
- 別瞎寫工具類了,Spring自帶的不香嗎?Spring
- 聯想筆記本電池0%充不進電怎麼辦 聯想電腦電池顯示0充不進電筆記
- win10電腦電池不充電怎麼回事 win10電池連線電源不充電如何處理Win10
- Linux長時間不操作,自動登出設定Linux
- win10電池不充電怎麼處理_win10電源接通電池不充電的解決教程Win10
- BetterZip結合自動操作工具和預設設定建立電影解壓程式
- js騷操作罵人不帶髒JS
- 電腦自帶錄屏功能怎樣操作?一看你就會!
- [每日電路圖] 12、帶自動燒寫能力的 ESP8266 開發板製作
- linux配置超時不操作自動退出登入TMOUTLinux
- w10筆記本充不進去電如何解決_win10充電有顯示卻充不上電怎麼辦筆記Win10
- Android系統充電系統介紹-預防手機充電爆炸Android
- 智慧骨瓷杯Glowston:能自動加熱還能無線充電
- 華碩筆記本電池0%充不進電怎麼辦 華碩筆記本充不進電一直顯示0%筆記
- 高通推新型無線充電技術:在路上給電動汽車充電!
- 從零寫一個自動生成API文件的laravel擴充套件包APILaravel套件
- SQL Server資料庫檔案不滿足擴充套件條件時不再自動擴充套件SQLServer資料庫套件
- Mac操作指南:如何設定Mac電腦快速自動開機?Mac
- 自動寫程式碼?
- 革命帶來的:機械化、電氣化、自動化、智慧化
- 【iCore系列核心板視訊教程】之 SDRAM 讀寫實驗
- MATLAB 寫log file自動輸出計算資料等操作Matlab
- selenium自動化操作
- DDL操作的自動提交
- win10 自帶驅動的嗎_win10系統是否自帶驅動Win10
- macOS如何開啟自帶NTFS讀寫功能Mac
- 電腦開機自動斷電怎麼辦 電腦自動斷電解決辦法
- 獨家!國家電網VS星星充電電動汽車充電樁技術佈局對比
- 中國充電聯盟:2023中國電動汽車使用者充電行為
- 全自動打工「人」!波士頓動力Atlas進廠影片火了,不斷電不下班
- 人為操作不當引起電腦當機
- win10電腦截圖預設儲存在哪裡 win10自帶截圖預設儲存位置Win10
- Win10系統電腦禁止EXCEL開機自動啟動的操作方法Win10Excel