来源:https://www.systemverilog.io/design/understanding-ddr4-timing-parameters/
简介
DDR 标准中有大量的时序参数,但是当您使用 DDR4 SDRAM 时,您经常会发现自己比其他人更频繁地重新访问或阅读少数时序参数。因此,在本文中,我们将通过在命令上下文中查看这些频繁出现的时序参数来检查它们。
这些时间参数很难记住,它们往往会从你的脑海中溜走。随附的文章 Timing Parameter Cheat Sheet 可以作为参考,以回忆特定时序参数的含义。
注意:以下所有图片均取自 DDR4 JEDEC 规范和美光内存部件规范。可以在参考部分找到它们的链接。
ACTIVATE Timing 激活时序
ACTIVATE 命令用于在bank中打开一行,在文章理解基本原理中,我们看到每个bank都有一组感应放大器,因此每个bank的一行可以保持活动状态。对于 ACTIVATE,我们应该了解 3 个时序参数:tRRD_S、tRRD_L、tFAW。
参数 | 功能描述 |
tRRD_S | 当向不同 bank group 的 bank 发出连续的 ACTIVATE 命令时,ACTIVATE 命令必须用 tRRD_S 分隔(row-to-row delay--short) |
tRRD_L | 如果bank属于同一个bank group,则它们的 ACTIVATE 必须由 tRRD_L (row-to-row delay--long)分隔 |
tFAW | 四激活窗口或有时也称为第五激活窗口是一种时序限制。tFAW 指定一个窗口,在该窗口内只能发出四个激活命令。因此,你可以在它们之间使用 tRRD_S 背靠背发出 ACTIVATE 命令,但是一旦你完成了 4 次激活,在 tFAW 窗口到期之前,你无法再发出另一个。 |
表格 1: ACTIVATE命令时序参数
![](https://i-blog.csdnimg.cn/blog_migrate/fbc5a513ad0ba3d0d608e5decb38c2ae.png)
图 1: tRRDACTIVATE时序
![](https://i-blog.csdnimg.cn/blog_migrate/d936ec50598db615ae3b0369967c219f.png)
图 2: tFAW时序
REFRESH Timing 刷新时序
为了确保存储在 SDRAM 中的数据不丢失,内存控制器必须以平均间隔 tREFI 发出 REFRESH 命令。但在可以应用 REFRESH 之前,必须对 SDRAM 的所有bank进行预充电并空闲至少 tRP(min) 时间。一旦发出 REFRESH 命令,在发出下一个有效命令之前必须有 tRFC(min) 的延迟(DES 命令除外)。
注意到我提到tREFI是REFRESH命令之间的 "平均 "间隔时间。这是因为你可以推出(或拉入)一定数量的刷新命令,并在以后补上。这种模式被添加到DDR4中,以克服在较高密度下由于刷新锁定而造成的性能损失。可以推迟的刷新命令的数量取决于刷新模式(1x、2x或4x),可以在SDRAM的模式寄存器MR2中设置。
参数 | 功能 |
tREFI | 该设备需要 REFRESH 命令的平均间隔为 tREFI |
tRP | 预充电时间。在应用 REFRESH 命令之前,必须对bank进行预充电并在 tRP 期间处于空闲状态 |
tRFC | REFRESH 命令和下一个有效命令之间的延迟,DES 除外 |
表 2: refresh命令时序参数
![](https://i-blog.csdnimg.cn/blog_migrate/d1f803657f7d9fa0ed2cce6965670c38.png)
图3 : refresh时序
![](https://i-blog.csdnimg.cn/blog_migrate/5d46173933763bb2036908ecfe080efc.png)
图4 : 推迟Refresh命令
READ Timing 读时序
READ 时序参数可分为 3 类 - 整体读取时序、时钟到选通的关系和数据选通到数据的关系。请参阅 DRAM-read-operation以了解基础知识。
参数 | 功能 |
读时序 | |
CL (CAS Latency) | CAS 是 Column-Address-Strobe,即当列地址出现在行上时。 CL 是内部 READ 命令与输出数据的第一bit可用之间的延迟,以时钟周期为单位。它在 MR0 模式寄存器中定义。 SDRAM 数据表通常会具体说明需要为特定操作频率设置的 CL。 见图 7 |
AL(附加延迟) | 使用 AL,设备允许在 ACTIVATE 命令之后立即发出 READ 命令。在设备内部发出命令之前,该命令会保留 AL 的时间。支持这一功能是为了维持设备中更高的带宽/速度。 |
RL (Read Latency) | 这是整体读取延迟,定义为 RL = CL + AL |
tCCD_S & tCCD_L | 与对同一bank group内的bank访问相比,对不同bank group内的bank访问需要更少的时间延迟。对不同bank gourp的库访问需要在命令之间有 tCCD_S(或短)延迟,而同一bank group内的bank访问命令之间需要 tCCD_L(或长)延迟。 |
时钟与数据选通的关系 | |
tDQSCK (MIN/MAX) | 描述了相对于时钟 CK_t、CK_c 的数据选通上升沿的允许范围 |
tDQSCK | 是相对于CK_t、CK_c的上升选通沿的实际位置 |
tQSH | 描述了数据选通高脉冲宽度 |
tQSL | tQSL - 描述数据选通低脉冲宽度 |
数据选通到数据关系 | |
tDQSQ | 这描述了相关DQ数据引脚的最新有效转换。从下图中你会看到,它是DQS转换到DQ数据眼的左边缘之间的时间 |
tQH | 是相关DQ引脚的最早无效转换。从下图中你会看到,它是指从DQS变成高电平到DQ数据眼的右边缘的时间 |
表3 : read命令时序参数
![](https://i-blog.csdnimg.cn/blog_migrate/eb63b123e0e1da5a7024a519ef8a3478.png)
图5 : 对不同bank group的连续读取。在这个图中AL=0,CL=11,所以RL=11。请注意,第二个读数的数据突发(DQ总线)紧接着第一个读数,没有任何间隙。还注意到2个连续读数之间的tCCD_S。
![](https://i-blog.csdnimg.cn/blog_migrate/d87a4cff43e6682e79ec6cba0ef9e62d.png)
图6 : 对不同bank group的非连续读取。
![](https://i-blog.csdnimg.cn/blog_migrate/26fd35f1c0d673d669038b1bb1dfc06f.png)
图7 : tCCD_S和tCCD_L的图示。
![](https://i-blog.csdnimg.cn/blog_migrate/afd7723611bb1927bba6737595101e30.png)
图8 : 说明 CK-DQS 和 DQS-DQ 关系。
写时序
类似于 READ ...
参数 | 功能 |
写时序 | |
CWL (CAS Write Latency) | CWL是内部WRITE命令与输入数据的第1 bit可用之间的延迟,以时钟周期为单位。它被定义在模式寄存器MR2中。 |
AL (Additive Latency) | 通过AL,设备允许在ACTIVATE命令后立即发出WRITE命令。该命令在设备内部发出前会被保留AL的时间。支持这一功能是为了维持设备中更高的带宽/速度。 |
WL (Write Latency) | 这是整体写入延迟,定义为 WL = CWL + AL |
tCCD_S & tCCD_L | 与同一bank组内的bank存取相比,不同bank组的bank存取需要较少的存取时间延迟。对不同bank组的bank访问需要在命令之间有tCCD_S(或更短)延迟,而同一bank组内的bank访问需要在命令之间有tCCD_L(或更长)延迟。 |
时钟与数据选通的关系 | |
tDQSS (MIN/MAX) | 描述了相对于 CK 的数据选通上升沿的允许范围 |
tDQSS | 是选通上升沿相对于 CK 的实际位置 |
tDQSH | 描述了数据选通高脉冲宽度 |
tDQSL | 描述了数据选通低脉冲宽度 |
tWPST | 这就是 "后写"(post-write)。它是指从最后一个有效数据选通到选通转为高电平、非驱动电平的时间 |
tWPRE | 这就是“预写”(pre-write)。这是数据选通从无效(HIGH)变为有效(LOW,初始驱动电平)之间的时间。 |
表4 : write命令时序参数
![](https://i-blog.csdnimg.cn/blog_migrate/c8ded4bbf9c1e4b081f40b13d14358d8.png)
图9 : write时序
模式寄存器时序
SDRAM提供了许多特性、功能和设置,可以使用7个模式寄存器进行编程。这些寄存器可以使用MRS(模式寄存器设置)命令进行编程。模式寄存器在初始化过程中被设置,此后在正常操作过程中可以随时改变它们。模式寄存器的设置受两个定时参数的制约。
参数 | 功能 |
tMRD | MRS命令周期时间。它是完成对模式寄存器的WRITE操作所需的时间,也是tMRD时序图中显示的两个MRS命令之间所需的最小时间。 |
tMOD | 是指从一个MRS命令到一个非MRS命令所需的最短时间,不包括DES。 |
表5 : 模式寄存器时序参数
![](https://i-blog.csdnimg.cn/blog_migrate/331893e7df9e10893ff120f96c5b8c35.png)
图10 : tMRD时序
图11 : tMOD 时序