Verilog FIFO空状态的影响

Verilog FIFO空状态的影响,verilog,Verilog,我有一个关于FIFO的基本问题 FiFo的空和满状态对应空和满标志行为。关于FiFo的完整状态,我可以理解为什么它对设计不利,因为在断言full标志后,FiFo不会接受任何即将到来的数据 但是关于空状态,它是否有任何不良影响?因为我看到,当FiFo为空时,它仍然会接收任何即将到来的数据。在某些情况下,空可能与FiFo已满一样有害。假设您要维护一个恒定的数据速率,并且如果数据用完,您需要知道并发送一个错误。空标志将是指示这一点的一种方式。PCIe/USB和各种其他协议使用弹性缓冲区,该缓冲区本质上

我有一个关于FIFO的基本问题

FiFo的空和满状态对应空和满标志行为。关于FiFo的完整状态,我可以理解为什么它对设计不利,因为在断言full标志后,FiFo不会接受任何即将到来的数据


但是关于空状态,它是否有任何不良影响?因为我看到,当FiFo为空时,它仍然会接收任何即将到来的数据。

在某些情况下,空可能与FiFo已满一样有害。假设您要维护一个恒定的数据速率,并且如果数据用完,您需要知道并发送一个错误。空标志将是指示这一点的一种方式。PCIe/USB和各种其他协议使用弹性缓冲区,该缓冲区本质上是具有一些附加逻辑的FIFO。在这种情况下,空或满基本上是相同的错误(本周期数据无效)


空(甚至是满)是好还是坏取决于应用程序。

空标志表示FIFO不包含要读取的新数据。我知道这一点,但设计时是否有任何不良影响?这个问题对于堆栈溢出来说太广泛,也不关编程。然而如果有东西需要从FIFO读取数据,而没有数据可以读取,那么这可能是一个问题-这完全取决于应用程序(您使用FIFO的目的)。即使这本身不是一个问题,任何读取FIFO的东西仍然需要知道是否没有可读取的内容,这样它就不会试图读取任何内容。