FPGA中,同步FIFO,读侧16位,写侧8位的设计,仿真验证成功

基于verilog的不同位宽的同步FIFO设计

工具 quartus13.1

仿真工具modelsimse10.4

参考了两位博主的文章

 

Mr.zhang_FPGA

基于verilog的同步FIFO设计,

emperor_strange
FIFO读写侧位数不同的处理

一、同步fifo,读写侧位数不同设计

1、FIFO设计难点及主要参数:

主要参数:fifo深度,fifo宽度,空标志,满状态。

同步FIFO设计难点在于判断FIFO的满状态和空状态。

判断空状态:

我们使用一个count计数器,在读状态时:count来一个时钟减一,计数到0,则为空

判断满状态:

在读状态时:count来一个时钟加一,计数到MAX(MAX为FIFO深度-1),则为满

对于不同位宽的同步FIFO设计

即读写两次分别进行控制,要么设置FIFO宽度与写侧相同,在读侧进行控制;要么设置FIFO宽度与读侧相同,在写侧进行控制。我们在让FIFO宽度和读侧相同,在写侧进行控制。

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FPGA 同步 FIFO 是一种用于在 FPGA 设备实现数据缓冲和数据转移的组件。它由一个读取指针和一个写入指针组成,可以实现读写操作的同步和互斥。 使用 FPGA 同步 FIFO 的一个常见场景是在不同频率的数据传输之间进行数据缓冲和同步。当输入以不同频率产生数据时,为了保证数据的可靠传输和处理,可以使用同步 FIFO 来缓冲输入数据,并在输出端以相同或不同的频率读取数据。 FPGA 同步 FIFO 的实现可以采用 FPGA 内部的存储单元,如 Block RAM 或 Distributed RAM。写入操作将数据写入 FIFO 的写入指针所指向的置,并将写入指针前移。读取操作将数据从 FIFO 的读取指针所指向的置读取出来,并将读取指针前移。读写指针的移动是同步的,以保证数据的正确性和完整性。 FPGA 同步 FIFO 的大小通常取决于数据传输的需求和 FPGA 设备的资源限制。可以根据数据产生和处理的速度来确定 FIFO 的大小,并且需要根据需要调整读写指针的顺序和移动策略,以满足数据的传输需求。 尽管 FPGA 同步 FIFO 在数据传输起到了重要的作用,但同时也会增加设计的复杂性和资源消耗。在使用 FPGA 同步 FIFO 时,需要注意处理数据的同步和互斥问题,以及避免出现数据丢失、溢出等异常情况。 总之,FPGA 同步 FIFO 是一种用于实现数据缓冲和转移的组件,在不同频率的数据传输发挥了关键作用。它可以通过读写指针的同步移动来保证数据的可靠性和完整性,并且可根据需求和硬件资源进行灵活调整。但同时也需要注意处理同步和互斥问题,以确保数据的正确传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值