详解FIFO使用设计中的主要参数

  • 日期:07-28
  • 点击:(1274)

足球买球平台

  03:02:46小艾科技

  FIFO是FPGA设计中常用的存储资源。 FIFO的中文含义是“先进先出”,属于一种排队的缓存资源。 FIFO的使用比其他RAM简单,只有读写控制信号,状态信号和读写数据信号。同时,FIFO也有一定的局限性,即FIFO只能按顺序读写,而不能像RAM那样在地址上运行。

FIFO与通用RAM不同,不适用于大数据量缓存。它通常用于异步时钟域中的数据交换。通过FIFO两端的空标识符和完整标识符在两端读取和写入数据,并调整输入/输出处的数据流以控制两端的速率。同时,更多位宽转换FIFO用于输入/输出端口的位宽切换。

通常,在FIFO的使用和设计中需要注意以下六个主要参数。

FIFO宽度。 FIFO宽度也是FIFO的数据位,用于读写操作,例如32位ARM。通常可以根据FPGA设计中的情况定义FIFO宽度。

FIFO深度。 FIFO深度表示FIFO可以存储多少FIFO范围的数据。 FIFO宽度和FIFO深度决定了整个FIFO的大小。假设FIFO宽度为8位。深度为128时,此FIFO中可存储的最大数据量为128 x 8位。设计中FIFO的深度与实际需求有关,通常需要根据功能进行估算。

{! - PGC_COLUMN - }

FIFO满标志,几乎满标志。 FIFO满标志表示FIFO的完整状态。当FIFO满标志有效时,表示FIFO已满或几乎已满。当满标志有效时,继续向FIFO写入数据将导致FIFO溢出,并且满标志根据读写指针有效。

FIFO空标志,几乎是空标志。与FIFO满标志相反,它表示FIFO中的数据没有数据或几乎没有数据。当标志有效时,如果继续读取FIFO,则发生读取空状态,导致FIFO下溢,并且根据读/写指针确定空标志是否有效。

读指针。它用于控制内部RAM的读地址。当读取周期有效时,它会自动递增1.当它被添加到最大值时,它将翻转。

编写指针。用于控制内部RAM的写地址。当写周期有效时,它会自动递增1.当它增加到最大值时,它将翻转。

FIFO设计是空心的,创造满分是最大的难点。如下面的图8-9所示,we_p和rd_p分别代表FIFO读写控制指针。

当读指针和写指针之间的差值为0时,表示FIFO中的数据为空;当读指针和写指针之间的差异是FIFO深度时,意味着FIFO数据已满。由于FIFO读写,在读写地址达到最大值后会有跳转。如何根据当前的读写指针判断FIFO状态成为设计FIFO的最大难点。

图8-9 FIFO读写指针

FIFO是FPGA设计中常用的存储资源。 FIFO的中文含义是“先进先出”,属于一种排队的缓存资源。 FIFO的使用比其他RAM简单,只有读写控制信号,状态信号和读写数据信号。同时,FIFO也有一定的局限性,即FIFO只能按顺序读写,而不能像RAM那样在地址上运行。

FIFO与通用RAM不同,不适用于大数据量缓存。它通常用于异步时钟域中的数据交换。通过FIFO两端的空标识符和完整标识符在两端读取和写入数据,并调整输入/输出处的数据流以控制两端的速率。同时,更多位宽转换FIFO用于输入/输出端口的位宽切换。

通常,在FIFO的使用和设计中需要注意以下六个主要参数。

FIFO宽度。 FIFO宽度也是FIFO的数据位,用于读写操作,例如32位ARM。通常可以根据FPGA设计中的情况定义FIFO宽度。

FIFO深度。 FIFO深度表示FIFO可以存储多少FIFO范围的数据。 FIFO宽度和FIFO深度决定了整个FIFO的大小。假设FIFO宽度为8位。深度为128时,此FIFO中可存储的最大数据量为128 x 8位。设计中FIFO的深度与实际需求有关,通常需要根据功能进行估算。

{! - PGC_COLUMN - }

FIFO满标志,几乎满标志。 FIFO满标志表示FIFO的完整状态。当FIFO满标志有效时,表示FIFO已满或几乎已满。当满标志有效时,继续向FIFO写入数据将导致FIFO溢出,并且满标志根据读写指针有效。

FIFO空标志,几乎是空标志。与FIFO满标志相反,它表示FIFO中的数据没有数据或几乎没有数据。当标志有效时,如果继续读取FIFO,则发生读取空状态,导致FIFO下溢,并且根据读/写指针确定空标志是否有效。

读指针。它用于控制内部RAM的读地址。当读取周期有效时,它会自动递增1.当它被添加到最大值时,它将翻转。

编写指针。用于控制内部RAM的写地址。当写周期有效时,它会自动递增1.当它增加到最大值时,它将翻转。

FIFO设计是空心的,创造满分是最大的难点。如下面的图8-9所示,we_p和rd_p分别代表FIFO读写控制指针。

当读指针和写指针之间的差值为0时,表示FIFO中的数据为空;当读指针和写指针之间的差异是FIFO深度时,意味着FIFO数据已满。由于FIFO读写,在读写地址达到最大值后会有跳转。如何根据当前的读写指针判断FIFO状态成为设计FIFO的最大难点。

图8-9 FIFO读写指针