Altera FPGA DDR3 PHY问题
时间:10-02
整理:3721RD
点击:
最近,项目进行SOC在FPGA上的测试时,发现一奇怪现象,目前还没解决,哪位高手遇到过,或者有什么建议可否提供下,具体情形如下:我们采用自己的ddr controller搭配FPGA中的DDR3 PHY进行测试(PHY配置为16bit数据位宽,采用half rate模式),仿真时没有问题,但是上板子后出现了大问题:
如在写byte数据时,仿真时,两位宽的dm信号,只有一位有效,而在实际板子上采用示波器测试时,竟然发现两位dm都有效(写了16bit数据?);在写word(32bit)数据时,两位dm有效,且保持两个dqs沿(上升沿加下降沿),而在板子上采用示波器抓出的波形,竟然是两位dm有效,且保持了四个dqs沿(两个上升沿加两个下降沿)。
从上述测试中,我们也怀疑是DDR3 PHY配置成了8bit操作?但是我们检查了配置应该是16bit的,而且最奇怪的是,仿真竟然和上板测试完全不一样,个人猜测已经不仅仅是时序的问题了。
如在写byte数据时,仿真时,两位宽的dm信号,只有一位有效,而在实际板子上采用示波器测试时,竟然发现两位dm都有效(写了16bit数据?);在写word(32bit)数据时,两位dm有效,且保持两个dqs沿(上升沿加下降沿),而在板子上采用示波器抓出的波形,竟然是两位dm有效,且保持了四个dqs沿(两个上升沿加两个下降沿)。
从上述测试中,我们也怀疑是DDR3 PHY配置成了8bit操作?但是我们检查了配置应该是16bit的,而且最奇怪的是,仿真竟然和上板测试完全不一样,个人猜测已经不仅仅是时序的问题了。
la抓数据分析
第一检查dram的PDF,是否和你模型一样。
第二应该是你的DRAM的配置有问题(DRAM颗粒一开始是有一个配置过程的,这个过程叫什么我忘记了,很有可能是这个配置的时序有问题)
目前FPGA中跑出的波形和仿真时一样了(目前只能怀疑是当时测试时,软件程序的问题)。
目前的问题是,读操作时,DDR PHY从外部颗粒读取的数据是错误的,我们采用示波器测试了颗粒输出的数据,可以确定写入DRAM颗粒的数据和读出的是一样的,即读操作时,从颗粒输出的数据是正确的;然后我们通过内部sigtab抓取了DDR PHY的输出,发现经过DDR PHY后数据是错误的。从而我们初步判断数据经过DDR PHY后,数据丢失了。
采用 burst 8操作,现在跑的频率为200MHz 的DDR3 DATA RATE,发现都是最后一个word丢失。
配置DDR3 颗粒的话,如果采用altera PHY的话,此PHY会自动配置DRAM颗粒
DDR3能跑在200Mhz吗?好像低于其最低速率了。记得最低速率是300MHz
DDR3的存储器时钟从100到266MHz,IOBus时钟对应是400到1066MHz,不知道你说的是300MHz是指的哪部分时钟。
DDR内部时钟比外面慢,只在总线上体现很高的频率
Altera的DDR的核就是问题很多
very good
