在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: l2002924700

[求助] DDR2 controller求助

[复制链接]
发表于 2012-3-9 10:03:42 | 显示全部楼层
回复 21# l2002924700

参考下emi_handbook, v4, chapter 3 吧。 calibration 要做很多事情。。
-----------------------------------------------------------------------------
    The ALTMEMPHY IP performs the following calibration stages:
1. Enter Calibration (s_reset)
2. Initialize PHY (s_phy_initialize)
3. Initialize DRAM
4. Write Header Information in the internal RAM (s_write_ihi)
5. Load Training Patterns
6. Test More Pattern Writes
7. Calibrate Read Resynchronization Phase
8. Advertize Write Latency (s_was)
9. Calculate Read Latency (s_adv_rlat)
10. Output Write Latency (s_adv_wlat)
11. Calibrate Postamble (s_poa)
12. Set Up Address and Command Clock Cycle
13. Write User Mode Register Settings (s_prep_customer_mr_setup)
14. Voltage and Temperature Tracking
------------------------------------------------------------------------

SOPC的流程是在SOPC的时候用的,你的说的对。 也可以用到一般设计里面,只要接口时序对上了,都是可以的。但是我们一般不做SOPC就不用SOPC那套东西。其实它底层也是一样的,估计就是在上面包了一个对应到SOPC的标准接口。
 楼主| 发表于 2012-3-9 10:27:09 | 显示全部楼层
回复 22# catcat_2


    好的!谢谢!我在研究一下你所说的那部分内容!很感谢你这种分享精神,向你学习!
发表于 2012-3-9 21:47:06 | 显示全部楼层
回复 13# catcat_2

请教一个问题:DDR2 controller ip核前仿功能正确,后仿时mem_dq信号比mem_dqs信号晚一个时钟周期,有什么办法解决吗?
发表于 2012-3-12 09:01:16 | 显示全部楼层
回复 24# yibiantian


    mem_dps和mem_dp的关系读写的时候是不一样的。。写的时候dps的rising edge和falling edge各对齐写入的前后两个数据的正中间,读的时候对齐前一个数据,后一个数据拉低。

    后仿不对的话,你是不是延时参数没设对? 还有,controller根据这个dps取到的数据是不是对的?
发表于 2012-3-13 22:26:15 | 显示全部楼层
回复 25# catcat_2

看里面的约束文件比较多,不知从何处着手,有什么建议没?另外,它的example工程换个器件全编译之后,后仿也出现同样的问题,采用example工程默认的器件就OK
发表于 2012-3-13 22:28:35 | 显示全部楼层
回复 25# catcat_2


    读出的数据有问题的,dqs没有指示到的dq数据就读不出来
发表于 2012-3-14 10:50:27 | 显示全部楼层
回复 27# yibiantian


    这种情况真的没有遇到过。。 你直接上板试吧。。 如果IP的输出信号波形都是正确的,那我觉得这个现象已经跟IP 本身没有关系了,是后仿真的走线latency什么地方出了问题。。 直接上板看看。。
 楼主| 发表于 2012-3-20 15:19:18 | 显示全部楼层
回复 28# catcat_2

       关于Altera的DDR2的IP核还有一个问题想要讨教一下,就是在DDR2的IP里有local_size这个参数,这个参数的设置有啥意义呢?比如说,要进行burst4的传输,也就是说要burst传输4个数,但是我可以把local_size一直设为1,这样,无非也就是local_burstbegin在burst传输期间一直为高,这和把local_size设为2,local_burstbegin一个周期为高下一个周期为低在传输效果上有啥区别呢?望赐教!
发表于 2012-3-20 15:42:59 | 显示全部楼层
local_size是设置一次burst传输数据的大小的,也是设置一次burst传输需要访问多少个sdram的地址空间的。比如,fpga 外围接了一颗sdram颗粒,颗粒的数据DQ位宽是8bit,那么burst_len =4 的时候,每一次burst 将访问sdram的4个地址,每次burst需要4*8bit个数据。对应的,local_data宽度就是2*8bit,local_address每一次burst 加2,mem_addr每次burst则是加4。数据在full rate时候的分两个时钟周期写入,这是正常情况下local_size=2的时候。

    那么,在local_size=1时候,只是一半,local_address每次加1,mem_addr每次加2,每次burst写入2*8bit个数据,在一个时钟周期写入。你可以看到在local_size=1的时候,每次burst,phy层的 mem_dm,就是sdram的data mask信号会有置1的时候,就是屏蔽调这次burst的另外2*8bit数据。

    local_size=2的时候是4个一组访问sdram的地址空间,local_size=1的时候是2个一组访问sdram的空间,都是一次burst需要进行的操作,但是local_size=1的时候效率低了一半,只写进去一半的数据。根据不同情况可以灵活选择local_size。
发表于 2012-3-30 15:35:17 | 显示全部楼层
回复 30# catcat_2


    那么根据您所说的情况,那么当把控制器的Burst length设成8的时候,是否相应的Local_size设成4,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 11:39 , Processed in 0.028781 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表