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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6733|回复: 15

[讨论] ddr3 mig使用时app_rdy的疑问

[复制链接]
发表于 2017-1-12 10:46:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
跑完ip core生成的example例程发现app_rdy没有什么规律,有时脉宽长有时短。有个疑问:用时序逻辑检测app_rdy给app_en打拍,如果app_rdy只有一个clk的宽度,rdy和en不会同时为高即并没有write而mig也不会有写入成功的反馈导致丢数。
大家怎么设计mig的状态机?直接assign app_en=app_rdy是否可行?
发表于 2017-1-12 13:58:22 | 显示全部楼层
xlinx的资料应该有说明的,我记得叫UG406, 上面有app接口的总线时序,按上面的来就行。
发表于 2017-1-12 14:29:12 | 显示全部楼层
app_rdy可以在置个高期间app_en处于无效状态,此时的地址并不会存到命令FIFO当中去。自己在设计当中发现应该是命令FIFO和数据FIFO两者之间会有一个交互过程:即当命令FIFO写入太多而数据写入少时就会置低app_rdy来停止写命令操作等待写数据,反之置低app_wr_rdy来等待写命令。自己采用每8个128位数据写入后同步一下写命令个数和写数据个数得到的测验结果是app_wr_rdy一直处于有效状态,也就是说数据和命令保持基本同步是可以一直想ddr3中不断的写数据。
 楼主| 发表于 2017-1-12 16:55:01 | 显示全部楼层
回复 3# 林间醉梦


   明白你的意思,就是流水线操作命令和数据FIFO,不过仿真时发现app_wdf_rdy可以一直保持为高,而app_rdy时高时低,也许是命令FIFO的深度太浅。不过没有持续写入数据的需求,只需要检测到app_rdy有效时能立即写入,但如果app_rdy只有一个clk的话肯定做不到。
发表于 2017-1-20 22:39:21 | 显示全部楼层
用组合逻辑来做,不要用时序逻辑产生app_en信号
 楼主| 发表于 2017-1-21 18:21:49 | 显示全部楼层
回复 3# 林间醉梦


我把读和写时的地址与数据保持同步,然后在读写之间来回跳转,这样可以连续操作而app_rdy保持为高吗?
 楼主| 发表于 2017-1-21 18:25:30 | 显示全部楼层
回复 5# 怒放的_生命


   nod,现在就是把app_en和app_rdy通过组合逻辑条件选通的
发表于 2017-1-21 19:12:21 | 显示全部楼层
本帖最后由 怒放的_生命 于 2017-1-21 19:13 编辑

回复 7# daneast
并不是单纯的用assign语句来选通app_en,我觉得应该放在状态机里,用状态机的 写数(进ddr3) 或者读数(出ddr3) 这些状态来选通app_en,但请注意,这个app_en选通输出要放在状态机组合逻辑输出中,不要放在clk下;这样才能用app_rdy输出正确的app_en信号
 楼主| 发表于 2017-1-21 21:29:44 | 显示全部楼层
回复 8# 怒放的_生命


   组合逻辑的状态机?怎么个写法,always@(*)吗?请赐教~
发表于 2017-1-22 21:25:38 | 显示全部楼层
状态转移用时序逻辑写always@(posedge @clk),而状态输出(仅app_en逻辑相关的)用组合逻辑always@(state)写,地址相关的还是用时序逻辑always@(posedge @clk)来做,当然这样的状态机单段式肯定完成不了的,需要写成多段式的才行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-20 18:00 , Processed in 0.031168 second(s), 7 queries , Gzip On, Redis On.

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