信号验证所面临的挑战
同一根数据总线上的DDR数据传输是双向的。这使DDR信号验证变得非常困难,因为我们首先必须分离数据总线上复杂的数据流才能对其进行信号完整性测量。而要想独立分析(由存储控制器和DDR芯片驱动的)信号完整性和定时关系,也必须分离数据流。
在探头和数据总线上存在三种状态,读操作(输出信号)、写操作(输入信号)和高阻(空闲状态)。8条数据总线构成一个数据群,这个数据群与一个选通信号实现源同步。读信号与写信号之间有一个重要差异:写信号与选通信号的边沿有90度相差,而读信号与选通信号的边沿是对齐的。
由于DDR信令比较复杂,因此为了能快速测试、调试和解决信号上的问题,我们希望能简单地分离读/写比特。此时,常用的是通过眼图分析来帮助检查DDR信号是否满足电压、定时和抖动方面的要求。
3.1 利用前导宽度触发器分离读/写信号
我们可以利用读/写前导的宽度来触发示波器,实现读/写信号分离。根据JEDEC规范,读前导的宽度为0.9到1.1个时钟周期,而写前导的宽度规定为大于0.35个时钟周期,没有上限。于是,我们在设置触发条件之前,首先要确定读/写前导的宽度。由于读前导和写前导各自有不同的宽度,因此可利用这一点分离读出的数据和写入的数据。
但这种方法在使用过程中也存在问题。首先,JEDEC规范中对前导宽度的定义比较松散,而且不同 ASIC/ DRAM厂商在这方面的定义也不尽相同。此外,由于写前导的上限没有定义,因此它也有可能与读前导宽度相同,而如果二者的值过于接近,那么要想分离读信号与写信号就十分困难了。
第二,如果写前导的宽度为0.5个时钟周期,与一个数据比特的宽度相当,那么硬件触发器就无法区分写前导比特与正常数据比特。
第三,随着DDR数据率变高,时钟周期将变得越来越窄。而随着时钟周期变窄,写信号的前导宽度也会大幅缩小。以DDR3-1600为例,其小前导宽度只有大约200ps。示波器的硬件触发器有可能无法被如此窄的脉宽触发。