自己写的内存控制器,4层板目前跑到了1.4G

2020-01-30 16:07发布

顶层和底层布线,中间两层电源和地,JLC做的样板,自己手动焊接,纯粹是好玩。

验证了很多东西啊,跟说明书上不一样,比如说等长、线间距、过孔、电源退耦等等。
除了时钟等长,其它等长不考虑,由自动调整的IODELAY来搞定,不用绕线了。
线宽0.12mm,线间距0.12mm,什么规则都没考虑,只是布通,刚开始还没考虑速度问题。
高速信号线上的过孔最多的有3个。
电源退耦,FPGA使用了2个bank,每个bank的供电2个0805的22uf和1个0603的0.1uf,VREF每个引脚一个0.1uf。
内存那边,一个芯片使用了6个0603的0.1uf退耦,旁边再加2个0805的22uf,比较零散,方便手动焊接。
先行验证的工程没有仔细调教IOSERDES,只是跑个功能,目前受制于BUFG速度,跑1.4G稳定了。
看IODELAY校准的参数,还有很大的提升空间。
高速啊内存的神秘面纱被揭开了。
下一步就使用IO的高级玩意,估计在K7上能跑到2.4G
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
20条回答
drentsi
2020-01-31 10:22
本帖最后由 drentsi 于 2019-1-6 22:12 编辑

今天进度,稳定跑2G了,尝试2.4G失败,看校准结果,信号的高低电平宽度不一样了,而且有的bit有飘忽不定现象。
另外再补充一些信息,阻抗我是故意焊成不对称不匹配的,这个实验板基本上验证了各种不稳定因素,总结如下:
1.等长问题,最长的与最短的线差距有25mm多,FPGA通过校准过程可以补偿好
2.线路串扰问题,0.12线宽0.1mm间距拉了一排线,在2G数据速度下似乎不存在,
3.阻抗匹配问题,两端人为造成不一样,一边60欧,一边40欧,加上设计时不考虑阻抗,在2G速率下可以稳定运行,所以低于2G的板子只要两边ODT相等即可,根本无需考虑PCB阻抗,因为我设计时就没考虑过
4.过孔问题,有的线路没有过孔,有的有3个过孔,这可以归结到等长问题,2G速度还稳定,所以可以放心的打孔了5.数据线分组问题,有的bank既有地址又有数据,同时控制信号还跨越了PLL和bank,有一定影响,校准过程中能看到bank之间有延时的区别
6.VREF问题,这个比较重要,不然会出现码字高电平低电平宽窄不一样的情况
7.时钟问题,时钟没有严格等长,一对线差距5mm也是可以的,在2G数据速度下没啥影响
8.PCB层数问题,增加更多的层数不是必须
9.电源退耦,摆一大堆小电容不是必要

一周热门 更多>