Board logo

标题: [求助]写sram,we始终为高,奇怪 [打印本页]

作者: huoxingshu1218    时间: 2007-7-31 04:06     标题: [求助]写sram,we始终为高,奇怪

我想用51单片机通过fpga和sram通信,向里连读,连写数据。下面是我写的部分程序与仿真图,其中ok为写一次的标志,

if((mcu_wr_ns^mcu_rd_ns)&ok)
    case(wr_rd_nums)
    default:begin
        sram_addr_temp_m<=mcu_io;
        wr_rd_nums<=two;
        ok<=0;
          end
    two:begin
           sram_addr_temp_l<=mcu_io;
           wr_rd_nums<=three;
            ok<=0;
            end
    three:begin
      if(!mcu_rd_ns)
         mcu_data_temp<=sram_io[15:8];
      else
           sram_data_temp_m<=mcu_io;
          sram_addr<={sram_addr_temp_m,sram_addr_temp_l};
          wr_rd_nums<=four;
         ok<=0;
         end
    four:begin
       if(!mcu_rd_ns)
         begin
              mcu_data_temp<=sram_io[7:0];
             wr_rd_nums<=one;
           end
          else
            begin
              sram_we_ns<=0;
              sram_data_temp_l<=mcu_io;
               wr_rd_nums<=wr_rd_nums+2'b01; ok<=0;
           end

问题是其中的sram_we_ns始终为高,还有sram_add的值也不对,但是four:状态下的ok是好而we却不对。

amDbqDYB.bmp


图片附件: [[求助]写sram,we始终为高,奇怪] amDbqDYB.bmp (2007-7-31 04:06, 574.69 KB) / 下载次数 651
http://bbs.eccn.com/attachment.php?aid=2247&k=fa106a0d1e59136ff7a0ed690de88840&t=1732347527&sid=ZXfA8O


作者: caopengly    时间: 2007-7-31 18:38

这就需要你的调试技巧了,我给你提几点建议:

1,在每个状态前面加一个时钟同步信号,可以减小竞争与冒险。

2.像你这样的程序,在状态机的调试的时候,输出一个状态机量,在仿真的时候看看状态机的状态有没有问题。

3.多看一些有代表性的程序,这样写的程序读起来,写起来稳定性好。


作者: huoxingshu1218    时间: 2007-7-31 19:47

在每个状态前面加一个时钟同步信号?是用同步来控制状态么,受教了。谢谢




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0