基于Xilinx artix 7的FPGA高级应用(四):RAM接口控制器系列 第二期 DDR SDRAM 原理篇

本系列基于Xilinx artix-7 xc7a35t 芯片
和 vivado 2018.3

看过很多FPGA工程师的招聘要求,大多包含有“了解DDR3”。
所以这次分享一下DDR3的原理和代码(在下一期)。
硬件的学习只能是慢慢积累,不能急于求成。

FPGA片内存储资源是有限的,不能满足大容量的数据储存要求,这个时候我们就需要在FPGA的外部添加外部存储器,一般外部存储器分为SRAM和DRAM,我们在这里主要介绍DRAM

在这里插入图片描述
DRAM,动态随机存取存储器。
SDRAM则是同步动态随机存取存储器。
这里我们解释下里面的几个关键词:
1.同步:指其时钟频率与CPU前端总线同步,并且内部指令、数据都以此作为基准。
2.动态:存储矩阵需要不断刷新以保证数据不丢失
3.随机:数据并非一次线性地存取,而是可以自由指定地址进行数据的读写

在这里插入图片描述
我们今天最主要介绍的DDR SDRAM,全称为 double data rate SDRAM,也就是双倍速率的SDRAM,与SDRAM最大的区别在于,SDRAM只在时钟上升沿采样数据,DDR SDRAM则在上升沿和下降沿都采样信号,这样就提升了一倍的速率。

在这里插入图片描述
DDR是属于SDRAM中的一种,所有的SDRAM采取的存储方式都是“存储矩阵”。一个单元叫做一个bank,每个数据通过行地址、列地址确定唯一的地址。

在这里插入图片描述
上图是DDR的主要信号端口。

ADDR和BA分别为行、列地址。

CLK/CLK#是差分时钟信号,CLK是正常的时钟信号,CLK#则是和正常时钟信号反向的一个信号,它们共同组成了差分的时钟信号,数据在这两个信号交叉的时候进行采样,这样完成了DDR。
实际上来说CLK#并不是“第二个触发时钟”,而是用于校准CLK的:在温度、阻值出现变化的时候,CLK可能会发生失调:

在这里插入图片描述
那么这个时候,一个用于校准的时钟无疑可以维持触发点(两信号交汇点)的稳定!

DQS是“数据的同步信号”,当对DDR 写入的时候,我们接收北桥传来的DQS,当我们输出数据的时候就会生成DQS并随着数据传输,它的主要作用是在一个时钟周期内分清楚各个传输周期。

CKE时钟使能、CS片选端、ODT内部阻抗使能、RAS/CAS行/列数据选通(能够增强抗干扰能力),WE数据输入选通。

DQ是数据输入/输出口。

我们采用Xilinx提供的MIG ip核 以及 硬核IOB来实现DDR功能,整个系统的框架如下:

在这里插入图片描述
这期的内容就到这里,下期我们给大家分享DDR3的代码。

谢谢观看!

猜你喜欢

转载自blog.csdn.net/weixin_43824941/article/details/108600126
今日推荐