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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 曾经擦肩

[求助] 求教:XILINX:DDR3 IPCORE--MIG

[复制链接]
 楼主| 发表于 2012-3-20 19:24:48 | 显示全部楼层
回复 2# lucien_1986


    lucien_1986大侠,启动modelsim后,运行sim.do之后,现在仿真貌似是做起来了,有几个小问题还需要请教一番:

    1.init_mem_pattern_ctr.v模块,依照datasheet的意思是:“为traffic generator 产生 flow control logic”,这里的 flow control logic,我直译为---流控逻辑,但不知是怎么理解,是什么意思?

    2.在init_mem_pattern_ctr.v模块中,变量“vio_data_mode_value”被设定为2,看解释说“当vio_data_mode_value=2时,The address is used as the data pattern”,我直译为“该地址被用作数据模式”,想问的就是这地址被用作数据模式是什么意思呀?

   3.在mem_ui_ip_top.v模块中,用户可以控制的端口变量,是以app_xx的变量,而输出的关于ddr的变量则是ddr3_xx,我笨想应该是先有app_xx这些变量的输入,然后才有ddr3_xx这些变量的输出,但是根据仿真结果ddr3_dq,ddr3_dqs,ddr3_cas_n,ddr3_ras_n等等,输出端口变量,竟然在app_addr,app_ba等变量出现之前,就已经有数据变化了,这种情况,请问遇到过没有,怎么解释呢?或者说我理解错了。
   希望您早点看到这些问题,并不吝赐教,谢谢了。
 楼主| 发表于 2012-3-20 19:29:51 | 显示全部楼层
回复 10# catcat_2


     为了尽早解决问题,同样的问题也问问 catcat_2大侠,就是启动modelsim后,运行sim.do之后,现在仿真貌似是做起来了,有几个小问题还需要请教一番:

    1.init_mem_pattern_ctr.v模块,依照datasheet的意思是:“为traffic generator 产生 flow control logic”,这里的 flow control logic,我直译为---流控逻辑,但不知是怎么理解,是什么意思?

    2.在init_mem_pattern_ctr.v模块中,变量“vio_data_mode_value”被设定为2,看解释说“当vio_data_mode_value=2时,The address is used as the data pattern”,我直译为“该地址被用作数据模式”,想问的就是这地址被用作数据模式是什么意思呀?

   3.在mem_ui_ip_top.v模块中,用户可以控制的端口变量,是以app_xx的变量,而输出的关于ddr的变量则是ddr3_xx,我笨想应该是先有app_xx这些变量的输入,然后才有ddr3_xx这些变量的输出,但是根据仿真结果ddr3_dq,ddr3_dqs,ddr3_cas_n,ddr3_ras_n等等,输出端口变量,竟然在app_addr,app_ba等变量出现之前,就已经有数据变化了,这种情况,请问遇到过没有,怎么解释呢?或者说我理解错了。
   同时也希望您早点看到这些问题,并不吝赐教小弟,多谢了。
发表于 2012-3-21 01:23:10 | 显示全部楼层
回复 11# 曾经擦肩


    问题一,flow control logic你可以理解为数据流控制逻辑,其实就是控制traffic generator 产生数据的时序和内容。要更准确的翻译,我也说不好;

    问题二,The address is used as the data pattern的意思往DDR3的一个地址内,写入一个数据,这个数据就是地址本身,这样每个地址内的内容就是地址本身,可以很方便的用来检验设计的正确性。

    问题三,在app_xx变化之前ddr3_xx就变化的原因是,DDR3 控制器CORE在初始化阶段会访问DDR3,testbench里面有些逻辑也有可能会访问DDR3,因此ddr3_xx未变化之前,ddr3_xx就跳变了。


    欢迎相互交流,如果给我的帖子我没有及时回复,可以给我发消息哦,我经常会看短消息的!
发表于 2012-3-21 01:23:50 | 显示全部楼层
都有一个EXAMPLE的,包括实现,仿真等。
发表于 2012-3-21 08:58:18 | 显示全部楼层
本帖最后由 catcat_2 于 2012-3-21 10:17 编辑

回复 12# 曾经擦肩

     前面两个问题就是13楼说的那个意思。第3个问题,补充一下:

      3.在mem_ui_ip_top.v模块中,用户可以控制的端口变量,是以app_xx的变量,而输出的关于ddr的变量则是ddr3_xx,我笨想应该是先有app_xx这些变量的输入,然后才有ddr3_xx这些变量的输出,但是根据仿真结果ddr3_dq,ddr3_dqs,ddr3_cas_n,ddr3_ras_n等等,输出端口变量,竟然在app_addr,app_ba等变量出现之前,就已经有数据变化了,这种情况,请问遇到过没有,怎么解释呢?或者说我理解错了。

     ddr3_xx这些信号是phy层输出到ddr3 sdram 的。确实是根据用户层的ui接口,就是app_xx这些变化而变化的。但是,你要注意UI接口有一个信号叫xxx_init_done。ddr3 在启动过程中有一个initial & calibration的过程,这个过程要配置片外ddr3 sdram 的一些寄存器,还要校准其与IP之间的一些参数,过程比较复杂,你可以参考jedec的jesd79-3d.pdf,论坛上有下。仿真也是需要的,IP CORE本身的顶层有两个参数也是与之相关的。在这个过程中,phy 层会自动输出相关的信号组合去 initial & calibration ddr3 sdram,所以ddr3_xx就在app_xx之前变化了。initial & calibration 成功完成之后,xxx_init_done就会变成高电平,app_xx在xxx_init_done变高之后才可以动作。在这之后,就是你说的“应该是先有app_xx这些变量的输入,然后才有ddr3_xx这些变量的输出”。
 楼主| 发表于 2012-3-21 21:30:56 | 显示全部楼层
回复 15# catcat_2


    真心感谢您的及时回复,真的受益颇深。谢谢。以后可能还会经常向您求教的,希望您一如既往的分享您的经验,多谢!
 楼主| 发表于 2012-3-21 21:43:17 | 显示全部楼层
回复 13# lucien_1986


    lucien_1986大侠,发自真心的感谢您的帮助,我短消息给您了,不知道能否收到,您的答复每次帮助都很大,再次谢谢了。还有一个小问题需要麻烦您:就是我看到26位的地址变量app_addr每次的递增变化时64,即0-64-128-192...,数据变量app_wdf_data,app_rd_data为256位,仿真出来时有一个控制各个命令的使能信号app_en,总是不规律的时不时拉高拉低,这就导致有的64个地址空间内,app_en信号拉高一个时钟,貌似写入一个256位数据,有的64个地址空间内,app_en信号持续拉高好多时钟,貌似写入很多个256位数据,这就很难理解到底一个地址内写入多少数据呢?请求指教!!
发表于 2012-3-22 13:14:48 | 显示全部楼层
回复 17# 曾经擦肩


    app_en信号在同一个地址的访问中拉高多次的原因是:app_en不是一次就能写成功的,如果没写成功就要写第二次。判断第一次app_en有没有写成功的方法是,看app_en为1时(有效),app_rdy是否同时为1。若同时为1则写成功,否则就是写失败,要重写一次。
发表于 2012-3-22 16:27:30 | 显示全部楼层
回复 18# lucien_1986

你好,看了你和catcat_2最近的帖子收获颇丰,我有点设计问题也想咨询下你们
请问你们在将DDR3-IP用在板子上时,IP的ODT功能都是如何设置的?ODT对于高速DDR3器件的信号完整性影响大不??
还望不吝赐教!谢谢
 楼主| 发表于 2012-3-22 19:05:39 | 显示全部楼层
3.bmp 回复 18# lucien_1986


    好的,明白,我今天看了一下午UG406,确实如您所说,app_rdy信号也是很重要的。关于地址值直接作为数据写入,我还有一点疑惑得麻烦您,我都不好意思了, .当app_cmd=3'b000时,进行写操作,app_rdy,app_en,app_wren,三个信号同时高电平时,数据将写入,按照 “地址值直接作为数据值”“app_addr” 应该 = “ app_wrf_data”,但是我看到的仿真结果并不是这样的,很奇怪;而且当app_cmd=3'b001时,进行读操作,我理解的是应该有地址输入,否则不知从哪个地址读出数据,但仿真结果显示app_addr依然如同写数据时一样,在之前写操作的地址基础上一如既往的进行递增 ,与此同时app_rd_valid信号拉高, app_rd_data有数据输出。但是我认为连地址都没正确给入,这个数据到底是哪来的呢?谢谢您。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-3 07:09 , Processed in 0.041318 second(s), 7 queries , Gzip On, Redis On.

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