在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6431|回复: 7

同步sram读写问题

[复制链接]
发表于 2008-9-18 10:34:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
同步sram读写问题
module sram_control(reset,clock1,datal,datah,address,
                    oe_n,ce_n,bwe_n,led_0,state,wel_n,
                    weh_n,mode,adsc_n,adsp_n,adv_n,data_out);
input clock1;                                     //sram的时钟                              
input reset;                                       //复位信号
input state;                                       //读写控制信号   
inout[8:0] datal;                                //数据低9位
inout[8:0] datah;                               //数据高9位
output[17:0] address;                       //地址信号
output oe_n;                                     //输出使能
output ce_n;                                     //片选信号
output bwe_n;                                   //字节写使能
output wel_n;                                    //低八位写使能
output weh_n;                                   //高八位写使能   
output mode;                                    //突发顺序选择
output adsc_n;                                 //控制器地址选通
output adsp_n;                                 //处理器地址选通
output adv_n;                                   //突发传输选择
output led_0;                                    //存满标志
output[17:0] data_out;                      //引致led观测是否与写入数据一致
  
reg ce_n,bwe_n,wel_n,weh_n,oe_n,mode,adsc_n,adsp_n,adv_n,led_0;
reg[17:0] address;
reg[17:0] data;                                   //待写入数据
wire[8:0] datal,datah;
parameter write=1'b1;
parameter read =1'b0;
  
[email=always@   (posedge]always @  (posedge[/email] clock1 or negedge reset)            
if(!reset)
   begin
   address<=18'b00_0000_0000_0000_0000;
   data<=18'b00_0000_0000_0000_0000;
   ce_n<=1'b0;
   bwe_n<=1'b1;
   oe_n<=1'b1;
   mode<=1'b0;
   adv_n<=1'b1;
   adsp_n<=1'b1;
   led_0<=1'b1;
   end
   
else
  case(state)
      write: begin                                 //写状态
            if(address==18'b11_1111_1111_1111_1111)//刚好写满
               begin
               ce_n<=1'b0;
               led_0<=1'b0;
               address<=18'b00_0000_0000_0000_0000;
               bwe_n<=1'b1;
               wel_n<=1'b1;
               weh_n<=1'b1;
               oe_n<=1'b1;
               end
             else if((address<18'b11_1111_1111_1111_1111)&&(led_0==1))//写的过程
               begin
               if(address[0]==0)                    //偶地址写入AA
                 begin
                 ce_n<=1'b0;
                 oe_n<=1'b1;
                 bwe_n<=1'b0;
                 wel_n<=1'b0;
                 weh_n<=1'b0;
                 adsc_n<=1'b0;
                 address<=address+1'b1;
                 data<=18'b01_0001_0000_1000_1000;        
                 end
               else                                 //奇地址写入CC
                 begin
                 ce_n<=1'b0;
                 oe_n<=1'b1;
                 bwe_n<=1'b0;
                 wel_n<=1'b0;
                 weh_n<=1'b0;
                 adsc_n<=1'b0;
                 address<=address+1'b1;
                 data<=18'b01_1000_1100_1100_0110;
                 end
               end
             else                                    //等待读
               begin
               ce_n<=1'b0;
               bwe_n<=1'b1;
               wel_n<=1'b1;
               weh_n<=1'b1;
               oe_n<=1'b1;
               led_0<=1'b0;
               end
             end
        read: begin                                  //读状态
              led_0<=1'b1;
              ce_n<=1'b0;
              bwe_n<=1'b1;
              wel_n<=1'b1;
              weh_n<=1'b1;
              oe_n<=1'b0;
              adsc_n<=1'b0;
              address<=address+1'b1;
              end
  endcase
assign datal=oe_n?data[8:0]:9'bz;
assign datah=oe_n?data[17:9]:9'bz;
assign data_out={datah,datal};
endmodule  


首先我不知道 同步sram的控制信号这样给可以吗
其次我将data_out接到七段led上显示时,始终显示待写入的数据(即写的时候显示AA\CC(data的数据),读的时候不显示,因为此时给的是高阻态),而不是我想象中的sram中写入的AA\CC,我不知道是sram中根本没存入数据,还是我的输入输出总线控制有问题(即3个assign语句),希望大家给我这个初学者多提些建议!!
发表于 2008-9-18 14:22:00 | 显示全部楼层
关注中,等高手解答
 楼主| 发表于 2008-9-20 15:06:03 | 显示全部楼层
已经解决啦!
发表于 2008-9-22 15:50:26 | 显示全部楼层
说出来你的解决思路和方案
发表于 2008-12-28 22:33:08 | 显示全部楼层
慢慢调就好了
发表于 2008-12-29 19:49:56 | 显示全部楼层
发表于 2010-11-14 10:38:15 | 显示全部楼层
dddddddddddddddddddd
发表于 2020-5-11 10:29:16 | 显示全部楼层


你好,我也碰到了类似的问题,读写同步sram的时候,每次都读出来待存的数,感觉芯片没有工作起来或者是读写信号没有给到芯片,想请教一下你怎么解决的,可以吗。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-19 11:16 , Processed in 0.118246 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表