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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4655|回复: 8

[求助] FIFO级联问题(自己代码问题,几个模块搞混了)

[复制链接]
发表于 2014-10-14 19:26:49 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 yestone 于 2014-10-18 16:25 编辑

做了5个FIFO,2个前置FIFOa FIFOb,一个中间的大FIFO2,两个后置FIFOd,FIFOe   串口进数据,对应的帧头进对应的前置FIFO,前置FIFO写满后传给中间的大FIFO。
之后大FIFO读出数据给后置FIFO,也是对应的数据放到对应的FIFO中,通过另一个串口发出。
如图:
截图03.jpg
我写好后功能仿真起初是通过的,但是添加了别的模块以后出现了FIFO2读不出数的现象。FIFO级联之间只有一个8位寄存器
做缓存。
具体情况是,FIFO2的读使能有,usedw也在减少,但是q引脚没有数据变化,过了一段时间以后又出来数了,
不知道有没有人遇见过类似问题。实在不明白怎么回事。

简单地说是单独仿真是能通过的,加了其他模块,它通不过了,现象是读不出数,usedw还在减少。

所有FIFO都是使用系统CLK做读写时钟。FIFO的写请求和读请求都是一个周期的高电平。   恳请大家帮忙看看,感激不尽。
截图00.jpg 截图02.jpg 截图01.jpg

今天尝试的时候发现,第一级FIFOa的数据看似写进去了,但是读的时候没有数。将FIFO2改成单口RAM也是同样的效果,不知道有没有大神遇到过类似现象。
截图00.jpg

问题发现了,我自己每个模块的写了几种方法,捏合的时候,模块版本没陪对,导致有的逻辑不起作用了,唉,菜了。。。。。
 楼主| 发表于 2014-10-14 19:31:52 | 显示全部楼层
哎呀,图片删不下去了。。。。
 楼主| 发表于 2014-10-15 18:30:09 | 显示全部楼层
不知道有没有做过FIFO级联的大神,是不是级联的时候需要做一些特殊处理?
发表于 2014-10-15 18:47:43 | 显示全部楼层
fifo有数据吗?怎么看前面没出数据的地方empty是高的啊。读fifo前有checkfifo的空满状态吗
发表于 2014-10-15 18:53:50 | 显示全部楼层
fifo不空的时候,给了读使能,读出来的就是单元里面的数据,感觉没有数据的话,可能是数据没有写进去吧。
发表于 2014-10-15 18:57:19 | 显示全部楼层
过了一会数据出来了,说明刚才写进去的数据排到了后面,FIFO是先入先出的,很可能是上一次没有读完。
发表于 2014-10-15 21:43:33 | 显示全部楼层
fifo wr 和rd的enable信号是怎么操作的 ? lz能说一下么 ?
 楼主| 发表于 2014-10-16 19:28:47 | 显示全部楼层
回复 4# wgej1987


   看起来是有数据的。是从前一级缓存FIFOa和FIFOb写进去的。我的几个不想关的模块,单个仿真是好用的,和在一起就出现了这样的情况,我在想是不是因为代码书写不规范导致综合出了问题。
 楼主| 发表于 2014-10-16 19:30:52 | 显示全部楼层
回复 7# longyouren


   clk是系统clk,wr和rd都是一个clk的长度,clk的上升沿在wr和rd的中央
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 00:11 , Processed in 0.025331 second(s), 11 queries , Gzip On, Redis On.

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