lucien_1986的个人空间 https://blog.eetop.cn/lucien [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

如何简化V6 DDR3控制器的使用

已有 1818 次阅读| 2012-3-23 19:40 |个人分类:Memory/存储器件应用

       在V6 DDR3控制器中,因为写数据通道和命令通道不是简单的FIFO接口,无法通过FIFO的将满信号进行写入的控制,只能根据命令通道和数据通道上的app_wdf_rdy信号和app_rdy信号判断数据是否成功写入,如果没有写入成功则需要重新写入。


      为了简化对V6 DDR3控制器的使用,需要对Xilinx提供的DDR3控制器源码做少量修改。DDR3控制器源码中, app_wdf_rdy信号在用户接口侧指示数据是否成功写入,由wdf_rdy_ns延迟一拍产生。wdf_rdy_ns在DDR3控制器内部用于判断数据是否写入有效。wdf_rdy_ns是由一个FIFO写入侧counter计算出来的,counter的值则取决于FIFO的读写状态。如果Counter的值大于设定的将满阈值15,则wdf_rdy_ns为0,写入的数据无效。


       为了使app_wdf_rdy信号具有将满指示效果,即把app_wdf_rdy用作反压信号时,每个写入的数据都是写入有效的,必须使app_wdf_rdy信号比wdf_rdy_ns更早的为0。wdf_rdy_ns是在counter值等于15时为0,而app_wdf_rdy应该在counter值等于15以前就为0。保险起见,可以在counter为12将app_wdf_rdy置为0。
        以下是在ui_wr_data.v文件中的修改:
        将:

always @(posedge clk) app_wdf_rdy_r <= #TCQ wdf_rdy_ns;
 assign app_wdf_rdy = app_wdf_rdy_r;

        修改为:

 wire    wdf_ready;
 reg     App_ready;
 assign wdf_ready = !(rst || ~ram_init_done_r || occ_cnt[12]);
 always @(posedge clk) App_ready <= #TCQ wdf_ready;
 assign app_wdf_rdy = App_ready;

             对于命令通道的app_rdy信号,由于产生机制过于复杂,不容易通过修改Xilinx源码来使得app_rdy信号具有提前反压效果。只能根据app_rdy信号的指示,确定上一拍数据是否成功写入。

------------------------------------------------------------------------------------------------------------------------------------------

欢迎大家光临我的主博客,或有惊喜,多谢支持:

http://blog.163.com/fpga_ip/


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 0

    获赞
  • 32

    评论
  • 927

    访问数
关闭

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

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

GMT+8, 2024-4-23 21:12 , Processed in 0.022879 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部