在本系列第二部分,我们探讨了总线转换、总线翻转、地址奇偶校验等重要的总线问题。在第三也是最后一部分,我们将探讨校正问题,其中包括矫正训练、控制 / 地址信号校正和读写校正,以及纠错码(ECC)和 QDR-IV 存储器控制器的设计建议。

 

校正训练序列

存储器控制器和 QDR IV 较高的工作频率意味着数据有效窗口很窄。QDR-IV 器件支持“校正训练序列”,它可通过减少字节通道之间的偏差扩大这个窗口,从而在控制器读取存储器的数据时,增加时序余量。校正训练序列是赛普拉斯的 QDR-IV SRAM 的初始化过程的一部分。该训练序列通常被那些不支持内置校正功能的应用使用。
训练序列如图 8 所示:


图 8. 校正训练序列

校正训练序列是初始化过程的一部分。对序列进行加电和复位后,在配置模式下进行操作的过程中,控制器必须立即设置选项控制寄存器中的 Write_Train_Enable 位(位的位置:7)。通过该操作,控制器可以避免在进行训练序列前再次进入配置模式。设置该位不会影响到校正训练序列,直到进行读取数据校正训练为止。


通过以下三个步骤,可以实现校正过程:
1. 控制 / 地址校正
2. 读取数据校正
3. 写入数据校正

 

控制 / 地址校正

根据需要校正的信号,将 LBK0#和 LBK1#设为它们相应的位值。请查看表 12,了解环回信号的映射情况。39 个输入信号被环回到端口 A 上的数据引脚。根据 LBK0#和 LBK1#的状态,一次将 13 个输入信号映射到 DQA0-DQA12。

 

表 12. 环回信号映射情况


DKA0、DKA0#、DKA1、DKA1#、DKB0、DKB0#、DKB1 和 DKB#1 等时钟输入都是自由运行的,并应在训练序列中持续运行。

 

通过使用输入时钟(CK/CK#)可在上升沿和下降沿上对每个输入引脚进行采样。在输出时钟(QKA/QKA#)的上升沿上采样的输出值即为在输入时钟的上升沿上所采样的值。在输出时钟(QKA/QKA#)的下降沿上采样的输出值即为在输入时钟的下降沿上所采样的翻转值。在这种模式下,数据翻转无效,在进行地址 / 控制环回训练过程中,CFG#信号将为高电平。


图 9. 环回训练框图

如图 9 所示,如果地址 / 控制信号未校正,DQA 上的信号(应在训练期间保持高电平)将变为低电平。该信号转换应由驱动信号的模块捕获,控制器则会对信号相应进行校准。

 

读取数据校正
在该阶段,地址、控制和数据输入时钟都已经得到了校正。在读取数据校正过程中,用于写入存储器内的训练数据模型是一个常量值(D00,D01,D20,D21),如下面的波形框图中显示。在此训练序列中,LBK0#和 LBK1#均被设置为 1。

 

配置选择控制寄存器时,Write_Train_Enable 位将被设置为 1。第一个和第二个数据突发均在同一个数据总线上被采样的,但第二个数据突发则在写到存储器内前完成采样的。Write_Train_Enable 位不会对读取数据周期产生任何影响。

 

将数据模型写到存储器内后,标准的读指令允许控制器访问这些数据,并会校正 QK/QK#信号。当 Write_Train_Enable = 1 时,在写入过程中,DINVA/DINVB 将被忽略,在读取过程中,它将始终切换。

 

如下面的读取数据校正框图中所示,写入到存储器内的数据(D00、D01、D20、D21)全为 1,相应的读取数据(Q00、Q01、Q20、Q21)则在 1 和 0 间切换。控制器必需捕捉到这些切换数据并进行验证。否则,控制器需要一个精确的校准来确认读取数据校正。

 

图 10. 读取数据校正序列框图

 

在读数据校正序列中:
设置 Write_Train_Enable 位为 1
LBK0# = 1 及 LBK1# = 1

 

写数据校正
此时,地址、控制、时钟和数据输出都已经得到了校正。执行写入数据校正序列前,先再次进入配置模式,然后通过将相应位设置为 0 来禁用 Write_Train_Enable。

 

在正常工作模式下,使用读指令后,通过使用存储器的写指令可校正写数据。所校正的读取数据路径用于确认器件是否已经正确地接收到写入数据。这样使处理器 /FPGA 能够校正下列与 DK/DK#输入数据时钟有关的信号:DQA、DINVA、DQB 和 DINVB。


纠错码(ECC)
系统设计人员必需依赖片外纠错或冗余等技术提高可靠性。这些技术会增加 PCB 空间或处理时间方面的开销。QDR-IV 是一个单芯片解决方案,引入了片上纠错码(ECC),从而节省了空间和成本,降低了设计复杂性。此外,它还降低了 QDR-IV 存储器阵列的总软失效率(SER)。该特性可应用于数据总线宽度为 x18 和 x36 的选项,并在 SRAM 中始终被启用。ECC 保护提供了单比特纠错(SEC)。

 

QDR-IV 从输入数据生成 ECC 奇偶校验位,并将它们存储在存储器阵列中。存储器阵列包含用于存储 ECC 奇偶校验的额外位。但是,不会将这些额外的内部校验位用于外部引脚。
例如,图 11 显示的是 x36 器件的输出数据逻辑框图。36 数据位需要 6 个 ECC 校验位;存储器内核会将 42 位(36 个数据位 + 6 个 ECC 校验位)传输到 ECC 逻辑内。因此,ECC 逻辑会提供已纠正的 36 位输出数据。

 

无 ECC 位的 QDR/DDR SRAM 的 SER 故障率(FIT)通常为 200 FIT/Mb。但带有 ECC 时,该数值将为 0.01 FIT/Mb,提高了 4 个数量级。

 

图 11. 输出数据逻辑(x36 器件)

 

 

QDR-IV 存储器控制器的设计建议
本节提供一些存储器控制器启用 QDR-IV 的地址奇偶校验和总线翻转功能的设计建议。

 

存储器控制器首先要根据地址总线生成地址奇偶。然后,需要在地址总线和地址奇偶位上进行地址翻转。


对于数据总线转换,将数据发送给 QDR-IV 前,存储器控制器需要计算每个 DQ 总线上的逻辑“0”的数量,以便生成相应的 DINV 位(取决于数据总线翻转条件)。

 

将数据发送给存储器控制器时,QDR-IV 使用相同的数据总线翻转逻辑。为了识别 QDR-IV 的接收数据,控制器仅要检查相应 DINV 位的状态。如果控制器接收 DINV = 1,需要翻转相关的数据总线;否则,保持接收到的数据位不变。

 

图 12 显示的是存储器控制器的设计注意事项。

 

图 12. 存储器控制器的设计注意事项

 

 

结束语
QDR-IV 提供 2132 MT/s 的最大 RTR,是市场上性能最高的标准化解决方案。凭借较高的 RTR 外加两个双向端口、ECC、总线翻转、ODT、地址校验等差异化特性,它已成为网络系统的首选解决方案。QDR-IV 的优势还适用于其它需要较高 RTR 和信号完整性的系统,如高性能计算和图像处理系统。