DDR SDRAM 存储器以其高速大容量赢得了众多用户的青睐 但它对的设计 与使用却并非易事 首先该种芯片采用 SSTL CLASS 接口电平 对这些接口驱动 的设计不同于传统的 TTL 或 CMOS 电平 其端接匹配电阻的设计也需要进行测 试与试验 其次 该种芯片利用 DQS 数据选通信号与 DQs 数据信号并行传送 DQS 信号作为 DDR SDRAM 和该器件的控制器中 DQs 的参考信号 达到高速传 送数据的目的 避免采用时钟信号作为同步信号时 存储器的时钟信号与控制器 的时钟信号的扭斜导致数据传送的失效 但采用这种方式 DQs 作为双向信号 其 性能与对其控制的设计需要验证与试验 再次 该类存储器工作速率比较高 数 据速率可以高达 400MHz 要达到如此高的工作速率 对设计提出了很高的要求
基于上述情况 有必要研制专用的 DDR 存储器测试板 对其性能和使用设 计要求进行测试和试验
基于板级的 DDR 测试方案 主要面向的是设计使用 对 DDR 接口驱动 控 制信号 高速工作等部分进行试验和测试 测试的是器件的实际使用性能
3.2.1 D D R S D R A M 测试板
制作 DDR 测试板的目的是通过搭建专用的 DDR 存储器试验板 解决存储器的 选型和性能测试问题 通过该种测试版 可以实现测量 DDR 存储器的 DQS 与 DQ 间的相位关系 测量访问延迟时间等 这种测试方法可借助信号发生器 高性能 示波器 逻辑分析仪等精密仪器来验证测试结果的正确性
图 3-2 为 DDR SDRAM 测试版的逻辑框图 图中给出了主要逻辑关系和相关 器件 其中 FPGA 芯片为控制芯片 产生控制信号 控制 10 片存储器芯片 两片 时钟缓冲器用于驱动存储器的地址控制信号 两片零延时缓冲器接收外部产生的 200MHz 时钟 驱动时缓冲器和存储器 为它们提供时钟
利用 FPGA 本身的性质 自己实现产生若干个满足 HSTL 和 SSTL2 接口标准的 信号 用于模拟 HSTL 一推四驱动和 SSTL 一推一拓扑结构电气性能 该测试板可 实现对 DDR DRAM 的性能测试 如测量 DQS 与 DQ 间的相位关系和测量访问延迟时 间等
FPGA 的内部逻辑结构图 如图 3-3 所示
图 3-2 存储器测试试验板逻辑结构图
图 3-3 FPGA 内部逻辑结构
FPGA 内部主要的逻辑模块及接口包括 时钟分配模块 CLK_DCM DDR SDRAM 存储器控制器 DDR_CONT DDR SDRAM 激励产生模块 DDR_STI 结 果 回 收 模 块 (DDR_RCV) HSTL 自 反 馈 测 试 接 口 控 制 器 (HSTL_SEND HSTL_RCV) SSTL 自反馈测试接口控制器(SSTL_FEEDBACK) FPGA 编程配 置接口 JTAG 及并行编程电缆接口 以及微机调试接口 PC_DEBUG 下面将 详细介绍这些模块和接口
1 时钟分配模块 CLK_DCM
由外部输入的 100M 时钟产生内部 200M 时钟及 DDR SDRAM 的时钟
要求时钟有内部反馈 内部网络的时钟反馈 及外部反馈 DDR SDRAM 的时 钟反馈 控制
2 DDR SDRAM 控制器(DDR_CONT)
接收激励产生模块(DDR_STI)的操作命令 产生 DDR SDRAM 的接口信号
图 3-4 时钟分配模块
图 3-5 DDR SDRAM 控制器模块
控制 DDR SDRAM 的输出信号如下
Ø 数据总线 80 位 SSTL2-CLASS2 接口 每根数据线与 2 片存储器相连 为 1 推 2 的拓扑结构
Ø 地址/控制线 2 组 26 位 驱动 4 片 13 位的 1 2 Register Ø 时钟线 驱动 2 片 ZDB 零延时缓冲器
DDR_DQ(79 0) 存储器数据信号
DDR_LDQS(9 0) 存储器数据低 8 位选通信号 DDR_UDQS(9 0) 存储器数据高 8 位选通信号
DDR_LDM(9 0) 存储器数据低 8 位输入数据屏蔽信号 DDR_UDM(9 0) 存储器数据高 8 位输入数据屏蔽信号 DDR_ADDR_A(13 0) DDR_ADDR_B(13 0) 存储器地址信号 DDR_BA_A(1 0) DDR_BA_B(1 0) 存储器列地址信号 DDR_CS_AN DDR_CS_BN 存储器片选信号
DDR_RAS_AN DDR_RAS_BN 存储器行地址有效信号 DDR_CAS_AN DDR_CAS_BN 存储器列地址有效信号 DDR_WE_AN DDR_WE_BN 存储器写信号
DDR_CLK DDR_CLK_N 存储器差分时钟信号 DDR_CKE_A DDR_CKE_B 存储器时钟使能信号
3 DDR SDRAM 激励产生模块 结果回收模块 A 激励产生模块(DDR_STI)
通过维护口将测试的命令码写入双端口的 RAM 中 启动测试时通过状态机 控制 从 RAM 中读出 输出给 DDR_CONT 模块
图 3-6 DDR SDRAM 激励产生模块