实验背景
在(三)中介绍了sdram写操作的实现和仿真过程,现在介绍读操作的实现和仿真验证。
实验内容
sdram控制器读模块的实现和仿真验证。
实验步骤
sdram 读操作有多种方式,单数据读操作,突发读操作,以及读后是否进行预充电等,这里介绍读操作后自动进行预充电的单数据读操作,手册中波形图如下:
首先给激活命令(ACTIVE)命令,同时需要Address信号和Bank地址信号配合,等待tRCD,在等待tRCD过程中,需要给NOP命令,等待结束后,给读(READ)命令,等待CL个时钟周期(这里CL = 2, 即2个时钟周期)后读出的数据出现在dq上,然后是自动预充电过程,这里配置为自动预充电,所以不需要给PRECHARGE命令,等待tRP时间,等待过程中给NOP命令,等待结束后,读操作结束。
读模块框图如下:
读数据操作需要在sdram初始化完成之后才可以进行,所以需要init_done的作为标志信号。由于自动刷新,写操作,读操作可能会冲突,即需要进行刷新操作时,