原创 Xilinx FIFO IP core使用注意事项

2010-3-4 15:02 10570 11 11 分类: FPGA/CPLD

1、almost full 和 almost empty flags用来指示只剩一个字了。

2、Programmable full and empty status flags可以由用户自定义内容设定或者用专用的输入口进行设定。

3、对于V5的block RAM和built-in FIFO可以使用内嵌的寄存器。使用这个寄存器可以提高FIFO的性能,但是增加延迟。

4、FIFO常用于:跨时钟域操作和数据位宽转换。例如:两个独立的时钟域,独立的数据位宽,可以利用一个FIFO进行连接,如下图所示:

image

    FIFO可以自动完成数据位宽的转换。

5、当需要用到大块的FIFO时,可以使用V5 built-in FIFO

6、First-Word Fall-Through(FWFT)特性是指,可以在没有进行读操作的时候,就可以提前知道下一个数据是什么,并且自动将这个数据放到输出数据线(DOUT)上。FWFT在要求低访问延迟时,很有用。

    这几种FIFO支持FWFT特性:block RAM, distributed RAM, V5 built-in FIFO

7、FIFO接口信号

点击看大图

 

    在写操作时,注意一下几个信号:

(1)、FULL:当FULL有效时,所有的写操作都将被忽略,并且这时对FIFO的写操作不会对FIFO造成损坏。

(2)、ALMOST_FULL:当这个信号有效时,说明还可以再进行一次写操作

(3)、FROG_FULL:当FIFO得数据大于或者等于设定的门限时,这个信号有效;当FIFO得数据小于这个设定的门限时,这个信号无效。

(4)、OVERFLOW:这个信号用来指示在前一个时钟周期的写请求(WR_EN)被拒绝,因为FIFO已经满了。

(5)、PROG_FULL_THRESH:用来设定PROG_FULL的有效时的数据数目,和无效时的数据数目

    在读操作时,注意一下几个信号:

(1)、FROG_EMPTY:当FIFO的数据数量小于等于设定的门限时,这个信号有效。

(2)、RD_DATA_COUNT[C:0]:这个值表明FIFO中可以读取的数据的数目,在读操作的时候,通过对这个数据进行判断,可以保证当FIFO中没有数据的时候,停止读操作。当发生一次读操作时,会在下一个时钟的上升沿对RD_DATA_COUNT进行改变。即写入一个数据的时候rd_data_count+1,当读出一个数据的时候,rd_data_count-1。

(3)、UNDERFLOW:表明前一次读操作被拒绝了,因为FIFO已经空了。

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条