作者:黄刚
如何证明一条内存条的PCB设计是好的呢?大家想的没错!可以拿一块现成通用的CPU主板来搭配验证。那如果主板上有的槽位验证通过,有的槽位不满足要求呢,这到底算谁的问题?
的确是这样,随着近年来国产化的需求越来越大,从芯片级的自研芯片到应用级的各种PCIE加速卡再到内存条,国产化的进程慢慢覆盖到更大的硬件范围。本文讲述的是一款自研内存条的测试debug过程,看看通过这个案例能给大家带来什么样的一些思考。
这是一款DDR4内存条的测试debug案例,这家客户找到我们帮忙进行该自研DIMM条的的PCB设计及后面的加工,样板回来之后他们进行测试,向我们提出了问题:
客户是把我们设计加工好的内存条搭配一款现成的电脑主板平台上进行测试得到的结论。可能大多数人看到测试的描述后的第一反应是会不会这款DIMM条的设计不太好导致的,因为主板是经过验证的平台,因为认为自研的DIMM条有问题的可能性更大。高速先生一开始也往这个方向来走,因此在重新审阅我们这款内存条的PCB设计的同时也check了一下我们的仿真报告。
而回看我们的仿真报告,由于在一开始设计和仿真的时候客户也没向高速先生说明是用哪个平台的主板搭配进行验证,因此高速先生采用的是模拟主板的仿真方式,按照经验来模拟主板的走线进行仿真,认为主板是只带一条内存条的情况进行仿真,从我们的仿真结果看,是能够支持3200Mbps的速率的。
仿真结果明显和实际测试的情况对不上,于是我们确认仿真方法没什么大问题之后,开始去关注是不是对主板的仿真模型模拟得不准确导致的。于是我们按照客户邮件给的主板型号去研究该主板的PCB设计,发现果然和我们主板的仿真模型不一样,客户验证的平台主板都是一个通道带2条内存条的设计,如下所示:
凭借着对多负载的设计经验和敏感度,高速先生对客户的测试场景也有了以下的疑问。
客户也很快给了他们更具体的测试结果:
也就是说在1拖2的主板上,1和2槽位是一个通道,3和4槽位是一个通道,如果内存条插靠近后面的2或4槽位是OK的,插前面的1槽位是有问题的。
高速先生立马就明白了个中的原因,于是按照该平台主板的模型进行了更精确的仿真,发现仿真测试的确就能和测试的结果对上了。
由于1槽位是在拓扑的前端,因此会存在后面2槽位所带来的走线stub,因此信号质量会明显变差,而4槽位由于是在拓扑的末端,在3槽位的后面,理论上不存在stub,所以信号质量可以接受。
另外针对1槽位降频到2133Mbps可以运行,我们也做了对于降频的仿真,发现也基本能和测试结果对应上。
最后再说一点就是,如果我们能提前预知到客户所要搭配的主板,并且能拿到仿真模型的话,我们的仿真结果确是可以和测试比较好的对应上的。另外也从这个案例清晰的说明,DDR系统能支持3200Mbps并不是一件容易做到的事情哈。