【原创】基于两种模式下的同步FIFO设计

来源:本站
导读:目前正在解读《【原创】基于两种模式下的同步FIFO设计》的相关信息,《【原创】基于两种模式下的同步FIFO设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《【原创】基于两种模式下的同步FIFO设计》的详细说明。
简介:所谓FIFO就是先进先出的意思,通俗的说,就像数据从一个管道的一端进去而从管道的另一端输出。FIFO是一个没有地址端口的存储器,它依靠内部写指针(指定写数据的位置)和读指针(指定读数据的位置)来进行数据的存储或读取。

所谓FIFO就是先进先出的意思,通俗的说,就像数据从一个管道的一端进去而从管道的另一端输出。FIFO是一个没有地址端口的存储器,它依靠内部写指针(指定写数据的位置)和读指针(指定读数据的位置)来进行数据的存储或读取。

FIFO有同步FIFO和异步FIFO之分。它们的区别是同步FIFO数据的读写受同一时钟源的控制,而异步FIFO的读写则可以受不同时钟源控制。在这里,我将要介绍的是基于同步的FIFO设计。下面分别介绍基于移位寄存器模式和基于双端口RAM模式的同步FIFO设计。

1、基于移位寄存器的同步FIFO设计

基于移位寄存器的同步FIFO只需一个读指针,指示FIFO中第一个有效数据,如图1所示。

【原创】基于两种模式下的同步FIFO设计

图1 基于移位寄存器的FIFO读写数据过程

这里设计一个数据位宽和FIFO深度都可设置的简单FIFO,其实现电路如下所示:

FIFO写仿真波形如图2所示。

【原创】基于两种模式下的同步FIFO设计

图2 FIFO写数据

FIFO读仿真波形如图3所示。

【原创】基于两种模式下的同步FIFO设计

图3 FIFO读数据

此外,该设计还支持同时读写FIFO,但有两个限制。第一个限制是,当FIFO为空时,只支持写操作,不支持同时读写操作;第二个限制是,当为FIFO为满时,只支持读操作,不支持同时读写操作。

2、基于双端口RAM的同步FIFO设计

基于双端口RAM的同步FIFO需要读指针和写指针两个指针,分别指示读取数据和写数据的位置,如图4所示。

【原创】基于两种模式下的同步FIFO设计

图4 基于双端口RAM的FIFO读写数据过程

这里设计一个数据位宽和FIFO深度都可设置的简单FIFO,其实现电路如下所示:

FIFO写仿真波形如图5所示。

【原创】基于两种模式下的同步FIFO设计

图5 FIFO写数据

FIFO读仿真波形如图6所示。

【原创】基于两种模式下的同步FIFO设计

图6 FIFO读数据

该设计也是有一个限制的,就是当为FIFO为满时,只支持读操作,不支持同时读写操作。

3、总结

由于在设计中我们规定了FIFO满后就不能再写数据,所以导致了基于移位寄存器的FIFO的第二个限制和基于双端口RAM的FIFO的限制。如果想去掉这个限制,节将写FIFO的条件由if((push & ~full) == 1'b1)改为if(push == 1'b1)即可。

提醒:《【原创】基于两种模式下的同步FIFO设计》最后刷新时间 2024-03-14 00:51:06,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《【原创】基于两种模式下的同步FIFO设计》该内容的真实性请自行鉴别。