【FPGA学习笔记】FIFO IP核的使用

一、FIFO 简介

1、概念

FPGA使用的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互,也即所谓的跨时钟域信号传递。它与FPGA内部的RAM和ROM的区别是没有外部读写地址线,采取顺序写入数据,顺序读出数据的方式。

可以分为单时钟FIFO双时钟FIFO。
单时钟FIFO: 单时钟FIFO具有一个独立的时钟端口clock,因此所有的输入输出信号都同步于clock信号。单时钟FIFO常用于同步时钟的数据缓存
双时钟FIFO: 写端口和读端口分别有独立的时钟,所有与写相关的信号都是同步于写时钟wrclk,所有与读相关的信号都是同步于读时钟rdclk。双时钟FIFO常用于跨时钟域的数据信号的传递。

2、常用参数

FIFO的宽度:一次读写操作的数据位N
FIFO的深度::FIFO可以存储宽度为N位的数据的个数
空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出。
满标志:FIFO已满或将要写满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出。
读时钟:读FIFO是遵循的时钟,上升沿有效
写时钟:写FIFO时遵循的时钟,上升沿有效。

3、读入写出顺序

1、写数据:当wrempty(写空)有效且wrfull(写满)无效时,wrreq(写请求)置位,过一个周期开始写数据。
在这里插入图片描述
2、写满时:wrfull(写满)有效,过三个周期,rdfull(读满)有效;
过一个周期,读请求信号有效,开始读数据。开始读数据后,wrfull(写满)信号失效。

在这里插入图片描述
3、读空时:rdempty(读空)信号有效,过两个周期,wrempty(写空)信号有效;过一个周期上升沿到来,写请求信号有效,然后开始写数据。

在这里插入图片描述

FIFO IP核 内部机制

1、读空FIFO时,读空信号rdempty先拉高,过两个时钟周期后写空信号wrempty才拉高,这是由FIFO内部结构决定的,并且在写请求信号wrreq拉高后的第4个时钟周期读空信号rdempty才拉低。

2、写满FIFO时:写满信号wrfull拉高3个时钟周期后,读满信号rdfull才有效,并且在读请求信号rereq拉高后的第4个时钟周期写满信号wrfull才拉低。
在这里插入图片描述

  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值