SDRAM(4):写操作

一、SDRAM 工作原理解析

  首先还是拿 SDRAM 工作的内部状态机图来看看:

  粗线表示自动跳转,细线表示满足条件才跳转。经过前面的设计我们此时来到了 IDLE 状态,要完成写模块设计就要考虑两个问题:

1、IDLE 状态到 WRITE 状态

  ① 在 IDLE 状态需要先给 ACT 命令激活某一行,此时处于 Row Active 状态。

  ② 在 Row Active 状态之后,给 Write 命令则会进入 WRITE 状态。

  ③ 在 WRITE 状态后,再给一次 Write 命令,就可以继续写入数据。

2、WRITE状态到 IDLE 状态 (经常需要进行刷新操作,必须从 IDLE 状态进入。)

  ① 在 WRITE 状态给 PRE 命令,则 SDRAM 将跳出 WRITE 状态进入 Precharge 状态;
  ② 在 Precharge 状态后,会自动进入 IDLE 状态。
 
   注:WRITEA 状态不使用,因为当处于 WRITEA 状态时,它会自动的进入到 Precharge 状态。想要继续进行写操作就要先再次激活行,也就是说 WRITEA 比在 WRITE 状态的工作效率要低很多。
 
二、退出 WRITE 情况
  在 WRITE 状态时,有 3 种情况是我们必须要退出 WRITE 状态的。
1、本次设计已经完全被写完。都写完了肯定得退出 WRITE 状态啊,还折腾啥呢。
2、SDRAM 需要进行自刷新操作。64ms内至少4096次的刷新操作是必须的,要刷新了就麻利的退出 WRITE 状态去刷新。
3、数据未写完,但已经填满了 SDRAM 的一行,需要激活下一行。因为每次激活都是激活的一行,所以要换行时得退出 WRITE 进行下一行的激活。
 
三、写操作设计时序分析
 
  命令时序图
  总时序图
  设计一个状态转移图:

猜你喜欢

转载自www.cnblogs.com/xianyufpga/p/12237443.html