我用IP 生成器生成了一个宽度8位深度为103680的FIFO,发现往里存数据,写一半的时候,出来的视频就在显示器上不正常了。我试过存1000个,没问题。为什么大了就不行呢?
1、为什么深度为103680而不是2的n次方呢?
2、会不会生成IP时选用的芯片和实际使用的不同,实际的没那么多资源?
回复楼上
用的是Xilinx的Virtex-4 xc4vsx25芯片。里面有128个18kb的bram。我的视频数据是每个8位,存180*576=103680个。这样算下来,bram应该够。我设置的FIFO是8位*131072,所以能存下的。最后报表显示,bram使用了64个.是不是时序约束问题呢!~
回复 4楼 jokeboy999 的帖子
你计算的BRAM使用量是对的,看来只有时序问题了。建议检查读数据时否少一CLK,这个地方容易错,看仿真波形也应看得出。
回复 5楼 仙猫 的帖子
我做了仿真。没发现溢出,clk也改过。
还有一些东西我没说,我做的是视频处理,很简单那种,就是把采集的656格式的视频流进行八分频,然后把得到的y分量存到我设的fifo里,等到103680个以后,读出来,再进行还原成656格式输出。我输出的时候,用的计数器,cnt=0,给cb和cr赋值128,cnt=1,给y分量赋值前面读出的数。如果前面fifo那里测试没问题的话,是不是可能在还原这里出问题呢?
我设a=103680,之前我存1000时,显示正常,存a/4时,屏幕分为了四部分,存a/2时,出现分割线,靠近显示器右侧,存a时,仍有分割线,但线较a/2时靠左。
我没有团队,自己琢磨的,想不出怎么回事,希望仙猫指点下,感激不尽
回复 6楼 jokeboy999 的帖子
现在看来是视频同步问题
一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!