SDRAM 中几个时序延时参数的意义
大家都知道SDRAM 时序中有几个重要的延时参数,比如 预充电有效时间,行选通周期,和CAS 潜伏期最近在学习特权的代码,发现一大堆奇怪的延时参数,比如自动预刷新周期 ...
请问 大家知道它们的意义吗?SDRAM 手册里怎么没有这些东西呢?
// SDRAM时序延时参数
parameter TRP_CLK = 9'd4,//1, //TRP=18ns预充电有效周期
TRCD_CLK = 9'd2,//1, //TRCD=18ns行选通周期
TCL_CLK = 9'd3, //潜伏期TCL_CLK=3个CLK,在初始化模式寄存器中可设置
TRFC_CLK = 9'd6,//3, //TRC=60ns自动预刷新周期
TMRD_CLK = 9'd6,//2, //模式寄存器设置等待时钟周期
TREAD_CLK = 9'd8, //突发读数据周期256CLK
TWRITE_CLK = 9'd8, //突发写数据256CLK
TDAL_CLK = 9'd3; //写入等待 应当有,比如美光的数据手册有,倒是HY的手册简陋的很 NJ8888 发表于 2013-5-27 22:31 static/image/common/back.gif
应当有,比如美光的数据手册有,倒是HY的手册简陋的很
N 元老,你看到特权的SDRAM 代码吗?
明明上面定义了TRP_CLK 是个常量, 为什么状态机里面还进行判断是否为零?这个到底有什么意图? 直接转到下个状态不就行吗》?感觉好像多此一举~~~~
always @ (posedge clk or negedge rst_n)
if(!rst_n) init_state_r <= `I_NOP;
else
case (init_state_r)
`I_NOP: init_state_r <= done_200us ? `I_PRE:`I_NOP; //上电复位后200us结束则进入下一状态
`I_PRE: init_state_r <= (TRP_CLK == 0) ? `I_AR1:`I_TRP; //预充电状态
`I_TRP: init_state_r <= (`end_trp) ? `I_AR1:`I_TRP; //预充电等待TRP_CLK个时钟周期
`I_AR1: init_state_r <= (TRFC_CLK == 0) ? `I_AR2:`I_TRF1; //第1次自刷新
`I_TRF1: init_state_r <= (`end_trfc) ? `I_AR2:`I_TRF1; //等待第1次自刷新结束,TRFC_CLK个时钟周期
`I_AR2: init_state_r <= (TRFC_CLK == 0) ? `I_AR3:`I_TRF2; //第2次自刷新
`I_TRF2: init_state_r <= (`end_trfc) ? `I_AR3:`I_TRF2; //等待第2次自刷新结束,TRFC_CLK个时钟周期
`I_AR3: init_state_r <= (TRFC_CLK == 0) ? `I_AR4:`I_TRF3; //第3次自刷新
`I_TRF3: init_state_r <= (`end_trfc) ? `I_AR4:`I_TRF3; //等待第3次自刷新结束,TRFC_CLK个时钟周期
`I_AR4: init_state_r <= (TRFC_CLK == 0) ? `I_AR5:`I_TRF4; //第4次自刷新
`I_TRF4: init_state_r <= (`end_trfc) ? `I_AR5:`I_TRF4; //等待第4次自刷新结束,TRFC_CLK个时钟周期
`I_AR5: init_state_r <= (TRFC_CLK == 0) ? `I_AR6:`I_TRF5; //第5次自刷新
`I_TRF5: init_state_r <= (`end_trfc) ? `I_AR6:`I_TRF5; //等待第5次自刷新结束,TRFC_CLK个时钟周期
`I_AR6: init_state_r <= (TRFC_CLK == 0) ? `I_AR7:`I_TRF6; //第6次自刷新
`I_TRF6: init_state_r <= (`end_trfc) ? `I_AR7:`I_TRF6; //等待第6次自刷新结束,TRFC_CLK个时钟周期
`I_AR7: init_state_r <= (TRFC_CLK == 0) ? `I_AR8:`I_TRF7; //第7次自刷新
`I_TRF7: init_state_r <= (`end_trfc) ? `I_AR8:`I_TRF7; //等待第7次自刷新结束,TRFC_CLK个时钟周期
`I_AR8: init_state_r <= (TRFC_CLK == 0) ? `I_MRS:`I_TRF8; //第8次自刷新
`I_TRF8: init_state_r <= (`end_trfc) ? `I_MRS:`I_TRF8; //等待第8次自刷新结束,TRFC_CLK个时钟周期
`I_MRS: init_state_r <= (TMRD_CLK == 0) ? `I_DONE:`I_TMRD;//模式寄存器设置(MRS)
`I_TMRD: init_state_r <= (`end_tmrd) ? `I_DONE:`I_TMRD; //等待模式寄存器设置完成,TMRD_CLK个时钟周期
`I_DONE: init_state_r <= `I_DONE; // SDRAM的初始化设置完成标志
default: init_state_r <= `I_NOP;
endcase
本帖最后由 NJ8888 于 2013-5-27 22:39 编辑
没看,因为我用VHDL,verilog的代码能看懂思路,不过总不如用verilog的人 NJ8888 发表于 2013-5-27 22:31 static/image/common/back.gif
应当有,比如美光的数据手册有,倒是HY的手册简陋的很
是不是所有的SDRAM 都是一样的呢? 三星的datasheet 找不到什么自动刷新周期 ,模式寄存器设置等待时钟周期.... 不确定完全一样,我看过美光 HY,对于我所关心参数,能通用。有的是4096刷新,有的是8192刷新 NJ8888 发表于 2013-5-27 22:38 static/image/common/back.gif
没看,因为我用VHDL,verilog的代码能看懂思路,不过总不如用verilog的人
( ⊙ o ⊙ )啊! 救星啊,我也是用VHDL !!!{:lol:} 能否让我拜读拜读~~~qq812331053
页:
[1]