实验背景
在(五)中介绍了sdram读操作的实现和仿真过程中出现的问题,现在介绍仲裁模块的实现。
实验内容
介绍sdram控制器仲裁模块的实现和仿真验证。
实验步骤
在sdram正常工作时,需要控制自动刷新(auto refresh),写操作,读操作三个过程的进行。即当需要进行某一操作时,对应模块向仲裁模块发送给请求信号,仲裁模块根据自身所处的状态来响应请求信号,模块收到响应信号后,开始进行操作。仲裁模块框图如下:
输入信号包括自动刷新模块信号,写操作模块信号,读操作模块信号,输出信号包括发送给各模块的响应信号,以及sdram接口信号。
仲裁模块内部状态转移图如下:
对于仲裁模块,当sdram初始化完成后,进入ST_IDLE状态,当接收到操作请求命令后,则进入对应的操作状态,此时,如果有其他的操作请求命令,则只能等待状态回到ST_IDLE后再去响应。这里考虑一个最极端的情况,就是当状态跳转到ST_WRITE后,自动刷新请求(aref_req)来了,假设这里是进行整页写操作,如果sdram_clk为100MHz