FPGA外挂DDR3硬件正常的自检方法?
时间:10-02
整理:3721RD
点击:
各位大虾,我想设计一个检测FPGA的外挂DDR3硬件是否有问题的程序。目前先做初级阶段工作,主要实现以下几点:
1、检测DDR3数据线DQ是否有错连和漏连(虚焊)的情况,如有找到对应的错误处;
2、DDR3内部存储单元自检,判断内存的每个存储单元是否能正常工作。
关于第二点,网上的资料相对来说多一点,最简单的为march算法,遍历每个存储单元写入特定数据并读取做判断。
但是对于第一个要求,没有找到什么资料,请大家给我一点思路或者一些相关资料,之前听人说有个什么“九步棋盘法”,但是也没有找到相关资料。谢谢大家了。
其实对于第二点,我还有一个疑问,如果DQ两根线连反了是否对我的读写数据的正确性有影响,因为由于线连反了,我写入和读取时都是错误的,那么最终结果又变成了对的,对我们的设计貌似不产生影响。但是理论上连错了肯定会导致结果出错的,想不通,求各位大虾帮忙解惑,谢谢了。
1、检测DDR3数据线DQ是否有错连和漏连(虚焊)的情况,如有找到对应的错误处;
2、DDR3内部存储单元自检,判断内存的每个存储单元是否能正常工作。
关于第二点,网上的资料相对来说多一点,最简单的为march算法,遍历每个存储单元写入特定数据并读取做判断。
但是对于第一个要求,没有找到什么资料,请大家给我一点思路或者一些相关资料,之前听人说有个什么“九步棋盘法”,但是也没有找到相关资料。谢谢大家了。
其实对于第二点,我还有一个疑问,如果DQ两根线连反了是否对我的读写数据的正确性有影响,因为由于线连反了,我写入和读取时都是错误的,那么最终结果又变成了对的,对我们的设计貌似不产生影响。但是理论上连错了肯定会导致结果出错的,想不通,求各位大虾帮忙解惑,谢谢了。
没搞懂缘由,等大侠解释
对于DQ是否有错连的情况, 一点参考:
1. 只要是一个DQS所管辖的DQ数据线里面,DQ连错是无所谓的。例如DQS0管着DQ0~DQ7, 那么FPGA侧的DQ0 连接到DDR3的DQ7; DQ1连接到DDR3的DQ2;。都可以。
2. 跨DQS所管辖之间的DQ数据线连错,就会出问题。 例如FPGA侧的DQ0连接到DDR3侧的DQ9, 当FPGA侧仅进行bit【7:0】写操作时,DQS0会发出脉冲(DQS1没有脉冲)供DDR3侧采样bit【7:0】上的数据,而FPGA侧DQ0的数据实际传到了DDR3侧的DQ9,由于DDR3侧的DQ9数据采样是靠DQS1采样的,因此DQ9上的数据就写不进去。
非常感谢,解决了我的一个疑惑。那意味着对于位宽为8bit,DQS仅有1bit的DDR3,数据线可以任意连接,但是对于位宽大于8bit的DDR3则有一些要求,一般DQS对应8bit的DQ,是吧
找个DDR芯片,数据手册看看。
一个DQS和8个DQ为一组的
这个不一定的,也有1个DQS和16bit DQ一组的。不过我的主要问题还是怎么检测DDR3是否有问题,呵呵
加c model仿真
xuexile
后来找了一些资料,有棋盘法、奔跳法和行进法等检验算法,大家有兴趣可以百度看看
学习了。
