一个关于例化FIFO中写满信号wrfull的问题
时间:10-02
整理:3721RD
点击:
我现在在做一个信号采集模块,输入端74M时钟产生两路串行数据,转成16位数据后进异步FIFO,另一端接133M时钟的SDRAM。我想问下关于写FIFO的wrfull这个信号,持续时间是否和某些信号有相关性?
再细点说就是SDRAM设计为突发读写8个字的模式,然后在FIFO这里设置为深度为8的实例,当wrfull有效时,产生写入SDRAM的一个信号。现在遇到的问题和wrfull的持续时间相关。在signaltap中发现wrfull有时持续4个写时钟,有时又持续8个写时钟,请问wrfull信号的持续时间是变化的么?如果是可变的,和哪些因素有关联?
谢谢
再细点说就是SDRAM设计为突发读写8个字的模式,然后在FIFO这里设置为深度为8的实例,当wrfull有效时,产生写入SDRAM的一个信号。现在遇到的问题和wrfull的持续时间相关。在signaltap中发现wrfull有时持续4个写时钟,有时又持续8个写时钟,请问wrfull信号的持续时间是变化的么?如果是可变的,和哪些因素有关联?
谢谢
愚见,本身设计的思路有点问题,为何在 wrfull的时候写入sdram呢。FIFO有 RD_COUNT可以看有8个数据,开始往sdram里面写数据。如果你非要用写侧的wrfull你可以自己在写侧计数写的数据的个数,达到8个数据停下来,发出向133MHz时钟域的Flag,同步过去,这样反而更麻烦。FIFO 也可以用 DPRAM替代。
那个,设计不是我做的,我只是修改一部分模块,发现在FIFO这里出问题了。追问一下,如果把深度提高而不用full信号做标志,改用你所说的RD_COUNT,那么我想知道如果在FIFO内已经存入8个数据后,它开始向SDRAM中写数,如果在写数的进行过程中向FIFO中写入了第9个数据,那这第9个数据是否是递进至前8个数据传出后做为FIFO内的第一个数据?
我没在写FIFO端做数据写入控制是因为数据产生过来很快,而且写请求wr_req是按每7个写时钟的周期产生的,我不知道怎么处理才能控制数据停住等FIFO空。
应该设计成fifo的读端来控制,在fifo的读端加一个8个数的buffer,而写端只要不满就往fifo里写
