搜索
bottom↓
回复: 1

急求Sram读写问题解决方法

[复制链接]

出0入0汤圆

发表于 2010-5-25 14:41:07 | 显示全部楼层 |阅读模式
sram IC61LV25616  读写有问题

module sram_w(    iRst      ,
                  iClk      ,
                  oSram_a   ,
               
                  Sram_dq   ,
                  data_my ,
                  dataout ,
                   hs,
                   vs,
                  oSram_we_n,
                  oSram_oe_n,            
                  oSram_ce_n,
                  oSram_be_n,
                  flag,readsram,writesram
                 );
input           iRst      ;
input           iClk      ;
input           hs,vs     ;
input  [15:0]   data_my ;

output [17:0]   oSram_a   ;
output [15:0]   dataout   ;
inout   [15:0]  Sram_dq    ;      

output [1:0]    oSram_be_n;

output          oSram_we_n;
output          oSram_oe_n;
output          oSram_ce_n;
output          flag,readsram,writesram;
reg             flag;
   
reg   [17:0]    oSram_a   ;

reg             oSram_we_n;  
wire    [1:0]    oSram_be_n;
wire      oSram_ce_n;
wire      oSram_oe_n;     
//wire             oSram_oe_n;
reg    [15:0]    Sram_dq;     //定义数据寄存器
reg    [15:0]    Sram_dq_reg;
reg    [15:0]    dataout;
reg    [1:0]tt;
reg    yy;
reg    [15:0]tmp;
reg    readsram;
reg    writesram;
//reg    [15:0]Sram_dqr;


//assign Sram_dq =Sram_dqr;
//CE、OE、UB、LB信号拉低
assign  oSram_be_n = 2'b00;     
assign  oSram_ce_n = 1'b0;     
assign  oSram_oe_n = 1'b0;
//assign  Sram_dq=Sram_dq_reg ;  //把要写入的值给数据线
always @(posedge iClk or negedge iRst)
begin
if (!iRst)
begin
  oSram_we_n <=1'b1;
  oSram_a<=18'b0;
  tmp<=16'b0;
  dataout<=16'b0;
  readsram<=1'b0;
  writesram<=1'b1;
  tt<=2'b00;
end
else begin   
      case (tt)
       2'b00:
                begin        
             oSram_we_n<=1'b0;                     
             Sram_dq<=tmp;
             tmp<=tmp+1'b1;
             oSram_a<=oSram_a+1'b1;
            if(oSram_a<18'h3ffff)
                                begin
                                end     
                        else   
                                begin  
                                oSram_a<=18'b0;   
                                readsram<=1'b1;
                            writesram<=1'b0;
                                tt<=2'b10;
                                end               
                end
      
        2'b10:begin               
            oSram_we_n <=1'b1;
            Sram_dq<=16'hzzzz;
            dataout<=Sram_dq;            
                        oSram_a<=oSram_a+1;               
                        if(oSram_a<18'h3ffff)
                        begin
                        end
                        else
                                begin
                                        oSram_a<=18'b0;  
                                        tmp<=16'b0;
                                        writesram<=1'b1;
                                    readsram<=1'b0;                                      
                    tt<=2'b00;
                                end                          

                 end
      
          default: tt<=tt;
        endcase         
        
    end   
end

endmodule

tt两个状态,一个状态写,一个状态读,连续写完,地址清零,开始连续读。写入的数据是临时变量tmp,从0一直自加1写入.
现在的状态是,写入“可能”没问题。一个时钟周期写一次,相应地址加一。送到数据线上的tmp值也自加一了。
但是读出的数据,却占两个时钟周期。地址是一个周期加一次,所以两个地址读出的是一个相同的数据,并且数据是相隔的,不是相邻的,(比如读出的是1,3,5,7,,,),而我实际写入的是tmp自加1的,即写入(1,2,3,4,5,6,7,,,,等)。
请高手指明该问题的原因及解决方法,小弟不胜感激!!!!!!!!!!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2010-6-16 18:45:11 | 显示全部楼层
呵呵没有看你的程序。因为不会o(∩_∩)o 哈哈 。估计是不是数据位数错了。16位和8位的。按照8位写,但是16位读。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 17:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表