环境:配置FULL flag在reset后为0
测试方法:FIFO 设置为IndependentClock Block RAM,depth设置为16。用一个BRAM Controller写FIFO,用另一个BRAM Controller读FIFO。
1. FIFODepth是2的整数次幂,但是实际可用的要减去1,即2^N-1
2. 在初始状态:Almost Empty=1,Empty=1, Full=0。
3. 写入第1个数据6拍以后,Empty变为0。
4. 写入第2个数据6拍以后,Almost Empty 变为0。
5. 写入第15个数据1拍以后,Full 变为1。
6. 读第1个数据6拍后,Full 变为0。
7. 读第14个数据1拍后,Almost Empty变为1。
8. 读第15个数据1拍后,Empty变为1。
9. 读第16个数据,这时FIFO已经为空,返回上次读出的数据。
小结:相比En信号,Flag De-assert错后6拍,assert错后1拍。