Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 821  |  »Ø¸´: 7

lss1776

гæ (³õÈëÎÄ̳)

[ÇóÖú] ÓÃVдµÄSDRAM¿ØÖÆÆ÷£¬Ê¼ÖÕ²»Äܵ÷ÊÔ³ö½á¹û£¬ÇóÖ¸½Ì

±¾ÈËÕýÔÚѧϰSDRAM£¬ÏëÖªµÀÊdzõʼ»¯£¬»¹Êǹ¤×÷״̬ÓÐÎÊÌ⣬ÇóÖ¸½Ì¡£@mchen_6431
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÄäÃû

±¾Ìû½öÂ¥Ö÷¿É¼û
2Â¥2016-06-02 19:38:45
ÒÑÔÄ   ÉêÇëÐÅÏ¢EPI   »Ø¸´´ËÂ¥   ±à¼­   ²é¿´ÎÒµÄÖ÷Ò³

lss1776

гæ (³õÈëÎÄ̳)

3Â¥2016-06-02 20:22:55
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

µ¥Ç¹Îè¾ÅÖÝ

½ð³æ (ÕýʽдÊÖ)

4Â¥2016-06-02 20:52:34
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

lss1776

гæ (³õÈëÎÄ̳)

5Â¥2016-06-02 20:59:38
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

lss1776

гæ (³õÈëÎÄ̳)

ÒýÓûØÌû:
4Â¥: Originally posted by µ¥Ç¹Îè¾ÅÖÝ at 2016-06-02 20:52:34
Ìù³ö´úÂë¿´¿´°¡

module sdram_0 (
// input
                                        reset,
                                        clk,
                                        in_data,
//full,empty,
// out
                  addr,
                  bank,//???????????????????????????????????????
                  cas,
                  cke,
                  cs,
                  dq,// yu za_data qu bie ??????????????????
                  dqm,
                  ras,
                  out_data,
                  we,
      
                  );
   
   //  duan kou sheng ming
input reset,clk;
input [40:0]in_data;//addr [37:16] data[15:0]

output  [11:0] addr;
reg [11:0] addr;
output reg [1:0] bank;
output  cas,cke,cs,ras,we;
wire cas,cke,cs,ras,we;
assign cke=1'b1;
wire  [3:0] cmd;
assign{cs,ras,cas,we}=cmd;
assign  cmd=init_done?m_cmd:i_cmd;
inout [15:0] dq;
wire [15:0] dq;
output [1:0] dqm;
wire [1:0] dqm;
assign dqm=2'b00;
output reg [15:0] out_data;
reg init_done;
// ji shu ji cun qi sheng ming
reg [15:0]NOP_counter; //200 us and  8 us auto refresh

// kong zhi ji cun qi ;

reg ref_req;

reg [3:0] i_cmd;
reg [11:0] i_addr;
reg [2:0] counter;
reg [2:0] i_state;
reg [2:0] i_next;
reg r;
reg [99:0]rr;
reg start;



always @ (posedge clk or negedge reset )
begin
if(reset==0)
begin
NOP_counter<=19200;
ref_req<=0;
rr<=0;
start<=1;
end
else
begin
if(NOP_counter==1)
begin   ;NOP_counter<=800;if(rr==0) begin rr<=rr+1; start<=1; end else  start<=0;end
else begin NOP_counter<=NOP_counter-1; end
ref_req <= ((NOP_counter == 1) | ref_req) & ~act_ref_req & init_done;
end

end

always@(posedge clk or  negedge reset )
begin
if(reset==0)
begin
i_addr<={12{1'b1}};
counter<=0;
i_state<=3'b000;
i_next<=3'b000;
r<=0;
end
else
if(!init_done && (start==0))
case(i_state)
// qu xiao xin pian
3'b000:
begin  i_cmd<=4'b1111;i_state<=3'b001;end
// precharge
3'b001: begin  i_cmd<=4'b0010;i_state<=3'b011;i_next<=3'b010;end
//auto_charge

3'b010:begin i_cmd<=4'b0001;i_state<=3'b011;counter<=3;
if(r<1)  begin  i_next<=2; r<=r+1;end
else    i_next<=7;
end

//NOP
3'b011:begin i_cmd<=4'b0111;  if(counter > 1) counter<=counter-1; else i_state<=i_next;  end

//
3'b101:begin i_state<=3'b101; end

// mo shi she ding
3'b111:begin i_cmd<=4'b0000; i_state<=3'b011; i_next<=3'b101; counter<=4;i_addr={12{1'b0}}; end
default :i_state<=3'b000;
endcase
end

always @(posedge clk or negedge reset)
begin
if(reset==0)
init_done<=0;
else
if(i_state==5)  init_done<=1;
end




// work state


//        3      22      16
assign {m_wor,m_bus_addr,m_data}=in_data;

wire [2:0]  m_wor;       // read or write signal

wire  wr ;

assign wr={m_wor[0]};

wire [21:0] m_bus_addr;  // addr bus
assign m_bank={m_bus_addr[21],m_bus_addr[8]};///////********************** you wen ti
wire [11:0] m_addr;       // addr

wire [15:0] m_data;       // data

wire [1:0] m_bank;



reg [2:0]m_count;
reg [3:0] m_state;
reg [3:0] m_next;

reg [3:0] m_cmd;
reg oe;
reg act_ref_req;   // 1 active
assign dq=oe? m_data:16'bzzzz;

always @(posedge clk )
begin
if(reset==0)
begin
m_state<=0;
m_next<=0;
oe<=0;
m_count<=0;
act_ref_req<=0;
end
else

case(m_state)
// idle
0:    if(init_done)
begin
               if(ref_req==1)
                         begin   m_state<=6; end
               else
                     begin  
                      m_state<=1;
                      end
end
// row active
1:
  begin
m_state<=2;m_cmd<=4'b0011;  oe <= 1'b0;bank<=m_bank;addr<=m_bus_addr[20:9]; m_next<=wr?3:4; m_count<=2;//*********************** tRC
end

//NOP
2:begin   oe <= 1'b0;act_ref_req<=0;if (m_next == 7)
                      m_cmd <= {{1{1'b0}},3'h7};
                  else
                    m_cmd <= {{{1'b0}},3'h7};
                       if (m_count > 1)
                      m_count <= m_count - 1'b1;
                  else
                    m_state <= m_next;
              end

//read
3:begin  m_cmd <= {{{1'b0}},3'h5}; oe <= 1'b0;
                if (ref_req)
                        begin
                          m_state <= 6;
                        
                        end
                      else
                        begin
                          addr <= {4'b0100,m_bus_addr[7:0]};
                          out_data <= dq;
                           m_state <=2;
                           m_next<=1;
                           m_count<=2;
                          end
end
//write
4:begin   m_cmd <= {{{1'b0}},3'h4};
                  
                  if (ref_req)
                        begin
                          m_state <= 6;
                        
                        end
                      else
                        begin
                          addr <={4'b0100,m_bus_addr[7:0]};
                           m_state <=2;
                           m_next<=1;
                           oe <= 1'b1;
                          end
end

//ref
6:begin    oe <= 1'b0;      m_state <= 7; //*********************************************tRP
                  addr <= {12{1'b1}};//              
                  // precharge all if arf, else precharge csn_decode
                  if (ref_req)
                      m_cmd <= {{1{1'b0}},3'h2};
                  else
                    m_cmd <= {{{1'b0}},3'h2};
end
// ref_act
7:begin
                  act_ref_req <= 1'b1;
                  m_state <= 2;
                  m_cmd <= {{1{1'b0}},3'h1};
                  m_count <= 3;
                  m_next <= 0;
                  end


              
              default: begin
                  m_state <= m_state;
                  m_cmd <= 4'b1111;
                  oe <= 1'b0;
              end // default
endcase



end
endmodule
6Â¥2016-06-02 21:42:40
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

superjintao

ľ³æ (ÖªÃû×÷¼Ò)

7Â¥2016-06-06 19:41:03
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

lss1776

гæ (³õÈëÎÄ̳)

ÒýÓûØÌû:
7Â¥: Originally posted by superjintao at 2016-06-06 19:41:03
µ÷ÓÃIPºË¶à·½±ã¡£

ÎÒÊÇÔÚѧϰsdram£¬²¢²»ÊǼòµ¥µÄʵÏÖ¹¦ÄÜ¡£

·¢×ÔСľ³æAndroid¿Í»§¶Ë
8Â¥2016-06-06 21:39:30
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ lss1776 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ²ÄÁÏÏà¹Ø×¨Òµ344Çóµ÷¼ÁË«·Ç¹¤¿ÆÑ§Ð£»ò¿ÎÌâ×é +17 hualkop 2026-04-12 18/900 2026-04-13 22:42 by pies112
[»ù½ðÉêÇë] Óб¬ÁÏ£¬Ò»¸öÇàÄê½ÌʦÂô·¿µÃ400Íò£¬È»ºó»»ÁËÒ»¸öËÄÇàñ×Ó +11 babu2015 2026-04-08 11/550 2026-04-13 16:33 by probebill
[¿¼ÑÐ] 366Çóµ÷¼Á +9 ²»ÖªÃûµÄСئ 2026-04-11 9/450 2026-04-13 01:19 by ÐÒÃâ ..
[¿¼ÑÐ] ÉúÎïѧ308Çóµ÷¼Á +5 ÏàÐűػá¹ââÍòÕ 2026-04-11 5/250 2026-04-12 18:14 by zhouxiaoyu
[¿¼ÑÐ] 295·ÖÇóµ÷¼Á +13 ?ÒªÉϰ¶? 2026-04-10 13/650 2026-04-12 15:37 by laoshidan
[¿¼ÑÐ] Çóµ÷¼Á£¬262»úеר˶ +8 àÅyyl 2026-04-08 8/400 2026-04-12 02:31 by Çï¶¹²ËÑ¿
[¿¼ÑÐ] 305Çóµ÷¼Á +6 77Qi 2026-04-07 6/300 2026-04-12 02:30 by Çï¶¹²ËÑ¿
[¿¼ÑÐ] ¿¼ÑÐÇóµ÷¼Á +3 ban°àСÆß 2026-04-11 3/150 2026-04-11 20:48 by may_ÐÂÓî
[¿¼ÑÐ] 298Çóµ÷¼Á +5 ²ÐºÉÐÂÁø 2026-04-07 5/250 2026-04-11 11:02 by ×ÏêØ×ÏÆå
[¿¼ÑÐ] Ò»Ö¾Ô¸985»úеѧ˶380Çóµ÷¼Á +5 ¹Ø¹ØöÂð¯10 2026-04-11 5/250 2026-04-11 10:10 by ÖªÄî¡£A
[¿¼ÑÐ] 22408µ÷¼ÁÇóÖú +7 ì±12 2026-04-09 9/450 2026-04-11 09:23 by ŶŶ123
[¿¼ÑÐ] 342µç×ÓÐÅϢר˶Çóµ÷¼Á +9 ÄãÈÃÎÒÔõôÀóÖ¦ 2026-04-10 10/500 2026-04-11 08:33 by zhq0425
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤µ÷¼Á +12 ·ñ¼«Ì©À´2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[¿¼ÑÐ] ¿¼Ñе÷¼Á +26 ˶ÐǸ° 2026-04-09 27/1350 2026-04-10 22:24 by Öí»á·É
[¿¼ÑÐ] ¼ª´ó¼ÆËã»ú¼¼Êõ331·Ö£¬Ó¢ÓïÁù¼¶£¬Çóµ÷¼Á +3 ·å·å021116 2026-04-09 3/150 2026-04-10 20:01 by chemisry
[¿¼ÑÐ] 344Çóµ÷¼Á +7 ؼ·çѩҹ¹éÈËØ¼ 2026-04-09 7/350 2026-04-10 12:05 by pengliang8036
[¿¼ÑÐ] ³õÊÔ·Ö332£¬Ò»Ö¾Ô¸±¨¿¼Î÷±±¹¤Òµ´óѧ£¬ +11 ¹ÊÈË?? 2026-04-09 11/550 2026-04-09 21:54 by JineShine
[¿¼ÑÐ] ²ÄÁÏר˶(0856) 339·ÖÇóµ÷¼Á +9 ¹þ¹þ¹þ¶ì¹þ¹þ¹þ 2026-04-09 10/500 2026-04-09 20:01 by Orcid
[¿¼ÑÐ] 275 Çóµ÷¼Á +8 Lei812514 2026-04-07 8/400 2026-04-08 12:46 by chemisry
[¿¼ÑÐ] 316Çóµ÷¼Á +4 15318418673 2026-04-07 4/200 2026-04-07 22:12 by hemengdong
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û