微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 异步不对称FIFO读出数据存在问题。

异步不对称FIFO读出数据存在问题。

时间:10-02 整理:3721RD 点击:
我是在DDR2读出来数据出来加了个异步FIFO,256bit进,8bit出。我用STP观察时候发现有时候前两个256bit读出来数据是正确,但是后面就有些错误,有时候会有规律对调一些数据的位置,不知道哪位大哥有遇到过?
rd_fifo   rdfifo(
     .aclr(~local_init_done),
     .data(sys_data_out),    //输入256Bit
     .rdclk(rd_clk),
     .rdreq(rdf_rdreq), //读请求
     .wrclk(afi_clk),
     .wrreq(sdram_rd_ack), //写请求
     .q(rdf_dout),              //输出的8bit
     .rdusedw(rdf_use),
     .rdempty(rdempty)
     );
其中
assign sdram_rd_req = rdf_rdreq && (rdf_use <= 9'd256) && (!finish_ack);

看看是否FIFO FULL满了,会丢失数据的


谢谢回复。但是我这个FIFO一直处于未满状态的,我故意把深度调大了很多,但是接受到的数据还是会 一段正确,中间某个数据异常,再一段正确,某个数据异常 这样。

会不会是读出来的256bit数据与对应写入FIFO的clock时序关系不匹配造成的

DDR2 会中断 refresh数据 , fifo wren 需要判断data valid, 然后fifo读的时候 最后用read counter 控制


谢谢回复,我的写请求就是 wrreq = rdata_valid ;  您说那个read counter是怎么用?
    谢谢!

问题解决了。比较坑爹,我不用signaltap ii 我用串口发送到PC查看数据,发现都是正确的,,,,再次感谢回复的个位。



    我想问个问题啊,我也用了256进64位出的fifo,为什么读出数据先出来的是高64位,是设置的问题吗?

FIFO最先出来的事高位。若需要低位现出来,在写入FIFO的时候,可以对高低位做变换

你用的是xilinx的fifo还是自己写的?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top