使用QDR-IV设计高性能网络系统——第三部分
|
在本系列第二部分,我们探讨了总线转换、总线翻转、地址奇偶校验等重要的总线问题。在第三也是最后一部分,我们将探讨校正问题,其中包括矫正训练、控制/地址信号校正和读写校正,以及纠错码(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 间切换。控制器必需捕捉到这些切换数据并进行验证。否则,控制器需要一个精确的校准来确认读取数据校正。 |








