赞
踩
首字置出FIFO(FWFT)指的是在数据输出线Dout上回挂载着下一个要读出的数据。
首字漏出(FWFT)特性提供了在不发出读操作的情况下从FIFO中提前查看下一个可用字的能力。当数据在FIFO中可用时,第一个字通过FIFO并自动出现在输出总线上(dout)。一旦第一个单词出现在dout上,empty被取消断言,表示FIFO中有一个或多个可读单词,VALID被断言,表示dout上存在一个有效单词。
当第一个数据写入空FIFO时,FWFT特性增加了两个时钟周期延迟。
在下面的仿真截图中我们可以发现,写入第三个数据之后才会拉低empty信号,并且第一个数据挂载到输出数据线Dout上,这就是因为延迟的存在。
几乎满的标志(almost_full)表示在断言满之前只能再执行一次写操作。该标志为active-High,与写时钟(wr_clk)同步。full标志(full)表示FIFO已满,在读取数据之前不能再执行写操作。该标志为active-High,与写时钟(wr_clk)同步。如果在断言full的情况下发起写操作,则忽略写请求并断言溢出。
我们通过FIFO IP核生成一个深度为16,宽度为32的FWFT,然后持续向其中写入20个数据,分别为从1至20。然后我们观察下图可以发现写入18之后full拉高,FIFO被写满。虽然我们设置的深度是16,但是对于FWFT,Xinlinx的设计中会将其深度扩展两个,因此实际深度为18。
而当读出一个数据后,就会将FULL拉低。
满标志的判断与标准模式的FIFO相同,在读取一个数据后就可以将满信号拉低。
在读完最后一个数据后就可以拉高empty信号。
因此FWFT与标准FIFO在信号断言方面的差距主要体现在写入时空信号empty的断言有两个时钟周期的延迟。
在我们之前的说明中,我们设置的FWFT深度为16,但是我们却可以向其中写入18个数据。
各种FIFO的深度如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。