用户端实现 DDR3 SDRAM 写、读控制

设计任务:

本章节将会在已经设计好的 DDR3 SDRAM 控制器的基础上,实现用户端的 写、读操作。

设计目的:

我们自己添加 FIFO 的 DDR3 SDRAM 控制器已经实现了,接着我们就可以通过该控制器对 DDR3 SDRAM 进行读写了。本节我们将会完成该控制器的写、读操作。

用户端写实现:

1、用户写控制器介绍用户端的写、读控制

主要功能需要按照 FIFO IP 核能够接受的逻辑时序编排对应的逻辑功能,因此该控制器的输出应该按照 FIFO IP 核的时序进行。 下面先对写控制器进行分析。FIFO IP 核预留的写端口主要包含两个 fifo 接 口,其中一个可以缓存数据,另外一个缓存命令。为了保证数据在写入 DDR3 SDRAM中时不出现数据量和突发长度不一致的情况,我们可以先将需要写入的数据存到数据 fifo 中,再对命令 fifo 发送写命令相关的信息,这样可以保证 FIFO IP 核接收到命令之后,有正确的突发长度的数据可以传输。

2、用户写控制器框架

 由上图可以看到,需要写入的数据 wr_data 由 wr_en标志有效,我们需要在该模块实现由输入的 wr_data 和 wr_en 产生 FIFO IP 核写端口所需要的信息,并 最终有 FIFO IP 核写数据端口的 fifo 空标志产生用户端写完成的信号。

3、该模块各个变量说明

下面对该模块的端口进行说明。

 

 

4、用户端写控制的时序图

 由上图可以看到,我们根据输入进来的数据的数量确定突发的长度,当输入 的数据结束时,产生命令 fifo 的写使能等端口信息。当 FIFO IP 核在接收到命令 fifo 的命令后,会将数据 fifo 的数据取出写入的 DDR3 SDRAM 中,我们可以根据数据 fifo 的空标志确定是否完成该过程,当出现数据 fifo 的空标志上升沿,则认为所有突发的数据均以写入到 DDR3 SDRAM 中,此时我们可以产生一个 user_wr_end 信号告知外部模块本次突发写结束。 地址的计算:16 位的数据地址,每个地址递增 1 代表着写入 16 位数据,那 么 128 位

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值