FIFO and FIFO Setup

What is FIFO and Setting up FIFO with Vivado Software

4319

Introduction

FIFO stands for First In First Out meaning that whatever data is written into the FIFO first will come out First when read. FIFOs are used in crossing clock domains or to create buffers in digital systems.

Setting Up FIFO in Vivado

Search for FIFO Generator IP and add it to your design. Open up the IP configuration and you should be promted with the window seen in figure 1.

Figure 1. FIFO Generator Customize IP
Figure 1. FIFO Generator Customize IP

Go to native ports window and configure the write and read width based on your needs for your design.

Figure 2. Native FIFO Ports
Figure 2. Native FIFO Ports

Set up almost full and almost empty status flags if needed for your design.

Figure 3. Status Flags
Figure 3. Status Flags

Interrupts for FIFO through EMIO GPIO Ports

You can set up Interrupts for the FIFO through EMIO GPIO Ports. YOu can do this by opening the zynq7000 processing system.

Configure the system as shown for the EMIO GPIO as shown in figure 4.

Figure 4. EMIO GPIO Pin configuration
Figure 4. EMIO GPIO Pin configuration

Verify that your Zynq7 Processing system has now 2 bit wide GPIO_I bus. You can connect FIFO Full and Empty flags there.

Figure 5. Updated Zynq7 Processing System
Figure 5. Updated Zynq7 Processing System

After you’ve made the necessary connections, setup the ARM Generic Interrupt Controller interrupt #52 for GPIO Interrupt as rising edge triggered. Then configure the EMIO Pins 1:0 under the GPIO module as inputs. You can refer to the Microprocessor Systems Interrupt Controller Project for more information.