93
Embedded FIFO Generator v1.0 LogiCORE IP Product Guide PG327 (v1.0) July 14, 2020

Embedded FIFO Generator v1.0 LogiCORE IP Product Guide · 2021. 1. 15. · 2. The Embedded FIFO Generator core supports the UniSim simulation model. 3. For the supported versions

  • Upload
    others

  • View
    23

  • Download
    0

Embed Size (px)

Citation preview

  • Embedded FIFO Generatorv1.0

    LogiCORE IP Product Guide

    PG327 (v1.0) July 14, 2020

    https://www.xilinx.com

  • Table of ContentsChapter 1: Introduction.............................................................................................. 4

    Features........................................................................................................................................4IP Facts..........................................................................................................................................6

    Chapter 2: Overview......................................................................................................7Navigating Content by Design Process.................................................................................... 7Core Overview..............................................................................................................................7Applications................................................................................................................................41Licensing and Ordering............................................................................................................ 44

    Chapter 3: Product Specification......................................................................... 45Performance.............................................................................................................................. 45

    Chapter 4: Designing with the Core................................................................... 46General Design Guidelines.......................................................................................................46Initializing the FIFO Generator................................................................................................ 48FIFO Usage and Control........................................................................................................... 49Clocking...................................................................................................................................... 62Resets..........................................................................................................................................65Actual FIFO Depth..................................................................................................................... 68Latency........................................................................................................................................69Special Design Considerations................................................................................................ 75

    Chapter 5: Design Flow Steps.................................................................................79Customizing and Generating the Native Core.......................................................................79Customizing and Generating the AXI Core............................................................................ 84Constraining the Core...............................................................................................................84Simulation.................................................................................................................................. 85Synthesis and Implementation................................................................................................85

    Appendix A: Verification, Compliance, and Interoperability...............86Simulation.................................................................................................................................. 86

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 2Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=2

  • Appendix B: Debugging.............................................................................................87Finding Help on Xilinx.com...................................................................................................... 87Debug Tools............................................................................................................................... 88Simulation Debug......................................................................................................................89Hardware Debug....................................................................................................................... 89Interface Debug........................................................................................................................ 89

    Appendix C: Additional Resources and Legal Notices............................. 91Xilinx Resources.........................................................................................................................91References..................................................................................................................................91Revision History......................................................................................................................... 91Please Read: Important Legal Notices................................................................................... 92

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 3Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=3

  • Chapter 1

    IntroductionThe Xilinx® LogiCORE™ IP Embedded FIFO Generator core is a fully verified first-in first-out(FIFO) memory queue for applications requiring in-order storage and retrieval. The core providesan optimized solution for all FIFO configurations and delivers maximum performance (up to 500MHz) while utilizing minimum resources. Delivered through the Vivado® Design Suite, you cancustomize the width, depth, status flags, memory type, and the write/read port aspect ratios.

    The Embedded FIFO Generator core supports Native interface FIFOs, AXI Memory Mappedinterface FIFOs and AXI4-Stream interface FIFOs. Native interface FIFO cores are optimized forbuffering, data width conversion and clock domain decoupling applications, providing orderedstorage and retrieval.

    AXI Memory Mapped and AXI4-Stream interface FIFOs are derived from the Native interfaceFIFO. Two AXI Memory Mapped interface styles are available: AXI4 and AXI4-Lite.

    Features• Supports Native, AXI4-Stream, AXI4, and AXI4-Lite interfaces.

    • FIFO depths up to 4194304 entries.

    • Independent or common clock domains.

    • Fully configurable using the Xilinx Vivado® Design Suite IP catalog.

    Native FIFO Specific Features

    • FIFO data widths from 1 to 4096 bits.

    • Symmetric or Non-symmetric aspect ratios (read-to-write port ratios ranging from 1:8 to 8:1).

    • Synchronous reset option.

    • Selectable memory type (block/UltraRAM and distributed RAM).

    • Option to operate in Standard or first-word fall-through modes (FWFT).

    • Full and Empty status flags, and Almost Full and Almost Empty flags for indicating one-word-left.

    • Programmable Full and Empty status flags, set by user-defined constant(s).

    Chapter 1: Introduction

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 4Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=4

  • • Hamming error injection and correction checking (ECC) support for block RAM and UltraRAMFIFO configurations.

    • Configurable read latency for Standard Read Mode.

    • Dynamic Power Gating.

    AXI FIFO Features

    • FIFO data widths:

    ○ AXI4-Stream: 1 to 4096 bits

    ○ AXI4: 32, 64....... 1024 (multiples of 2) bits

    ○ AXI4-Lite: 32, 64 bits

    • Supports AXI4 memory mapped and AXI4-Stream interface protocols: AXI4, AXI4-Stream, andAXI4-Lite.

    • Symmetric aspect ratios.

    • Asynchronous active-Low reset.

    • Selectable memory type (block/UltraRAM, or distributed RAM).

    • Selectable application type (Data FIFO and Packet FIFO).

    ○ Packet FIFO feature is available only for common/independent clock AXI4-Stream FIFOand common clock AXI4 FIFOs.

    • Operates in first-word fall-through mode (FWFT).

    • Auto-calculation of FIFO width based on AXI signal selections and data and address widths.

    • Hamming error injection and correction checking (ECC) support for block / UltraRAM FIFOconfigurations.

    • Configurable programmable Full/Empty flags as sideband signals.

    Chapter 1: Introduction

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 5Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=5

  • IP FactsLogiCORE™ IP Facts Table

    Core Specifics

    Supported Device Family Versal™ ACAP

    Supported User Interfaces Native, AXI4-Stream, AXI4, AXI4-Lite

    Provided with Core

    Design Files System Verilog RTL

    Example Design N/A

    Test Bench N/A

    Constraints File XDC

    Simulation Model N/A

    Supported S/W Driver N/A

    Tested Design Flows

    Design Entry Vivado Design Suite

    Simulation For supported simulators, see the Xilinx Design Tools: Release Notes Guide.

    Synthesis Vivado Synthesis

    Support

    All Vivado IP Change Logs Master Vivado IP Change Logs: 72775

    Xilinx Support web page

    Notes:1. For a complete list of supported devices, see the Vivado® IP catalog.2. The Embedded FIFO Generator core supports the UniSim simulation model.3. For the supported versions of the tools, see the Xilinx Design Tools: Release Notes Guide.

    Chapter 1: Introduction

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 6Send Feedback

    https://www.xilinx.com/cgi-bin/docs/rdoc?v=2020.1;t-vivado+release+noteshttps://www.xilinx.com/support/answers/72775.htmlhttps://www.xilinx.com/supporthttps://www.xilinx.com/cgi-bin/docs/rdoc?v=2020.1;t-vivado+release+noteshttps://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=6

  • Chapter 2

    Overview

    Navigating Content by Design ProcessXilinx® documentation is organized around a set of standard design processes to help you findrelevant content for your current development task. This document covers the following designprocesses:

    • Hardware, IP, and Platform Development: Creating the PL IP blocks for the hardwareplatform, creating PL kernels, subsystem functional simulation, and evaluating the Vivado®timing, resource use, and power closure. Also involves developing the hardware platform forsystem integration. Topics in this document that apply to this design process include:

    • Clocking

    • Resets

    • Customizing and Generating the Native Core

    Core OverviewThe Embedded FIFO Generator core is a fully verified first-in first-out memory queue for use inany application requiring ordered storage and retrieval, enabling high-performance and area-optimized designs. The core provides an optimized solution for all FIFO configurations anddelivers maximum performance (up to 500 MHz) while using minimum resources.

    This core supports Native interface FIFOs, AXI Memory Mapped interface FIFOs and AXI4-Stream interface FIFOs. AXI Memory Mapped and AXI4-Stream interface FIFOs are derived fromthe Native interface FIFO. Two AXI Memory Mapped interface styles are available: AXI4 andAXI4-Lite.

    This core can be customized using the Vivado® IP customizers in the IP catalog as a completesolution with control logic already implemented, including management of the read and writepointers and the generation of status flags.

    Note: The Memory Mapped interface FIFO and AXI4-Stream interface FIFO are referred to as AXI FIFOthroughout this document.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 7Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=7

  • Native Interface FIFOsThe Native interface FIFO can be customized to utilize block RAM, UltraRAM, and DistributedRAM resources available in some FPGA families to create high-performance, area-optimizedFPGA designs. Standard mode and First Word Fall Through are the two operating modesavailable for Native interface FIFOs.

    Figure 1: Native Interface FIFO Signals

    dout[m:0]

    empty

    rd_en

    Write Clock Domain

    Read Clock Domain

    full

    wr_en

    din[n:0]

    almost_full

    prog_full

    almost_empty

    prog_empty

    data_validunderflow

    rd_data_count[q:0]

    sbiterr

    dbiterr

    wr_ackoverflow

    wr_data_count[p:0]

    injectsbiterr

    injectdbiterr

    rst

    OPTIONALMANDATORY

    OPTIONAL SIDEBAND

    wr_clk rd_clk

    Read AgentWrite Agent

    X21794-111318

    AXI Interface FIFOsAXI interface FIFOs are derived from the Native interface FIFO, as shown in the following figure.Three AXI interface styles are available: AXI4-Stream, AXI4, and AXI4-Lite. In addition toapplications supported by the Native interface FIFO, AXI FIFOs can also be used in AXI SystemBus and Point-to-Point high speed applications.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 8Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=8

  • Use the AXI FIFOs in the same applications supported by the Native Interface FIFO when youneed to connect to other AXI functions. AXI FIFOs can be integrated into a system by using theIP integrator. See the Vivado Design Suite User Guide: Designing IP Subsystems using IP Integrator(UG994) for more details.

    Figure 2: AXI FIFO Derivation

    fullrd_en

    rd_clk

    emptywr_en

    wr_clk

    rst

    din[n:0] dout[n:0]

    *VALID

    *ready

    *data

    *strobe

    *last

    *user

    *id

    ---

    *valid

    *ready

    *data

    *strobe

    *last

    *user

    *id

    ---

    s_aclk

    s_aresetn

    m_aclk

    AXI4 SLAVE AXI4 MASTER

    WRITE CLOCKDOMAIN

    READ CLOCKDOMAIN

    wr_data_count[P:0]

    injectsbiterr

    prog_full

    injectdbiterr

    rd_data_count[Q:0]

    sbiterr

    prog_empty

    dbiterr

    Mandatory

    Optional Sideband

    AXI4 MASTER AXI4 SLAVE

    *valid

    X21791-111318

    The AXI interface protocol uses a two-way valid and ready handshake mechanism. Theinformation source uses the valid signal to show when valid data or control information isavailable on the channel. The information destination uses the ready signal to show when it canaccept the data. The following figures show an example timing diagram for write and readoperations to the AXI4-Stream FIFO, and an example timing diagram for write and readoperations to the AXI memory mapped interface FIFO.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 9Send Feedback

    https://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug994-vivado-ip-subsystems.pdfhttps://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=9

  • Figure 3: AXI4-Stream FIFO Timing

    s_axis_tready

    s_aclk

    s_axis_tvalid

    m_axis_tvalid

    m_axis_tready

    D0information D1

    D0information D1

    Information--> s/m_axs_tdata/tid/tstrb/tkeep/tkeep/tdest/tlast/tuserX21891-111218

    Figure 4: AXI Memory Mapped Interface FIFO Timing

    s_axi_*ready

    s_aclk

    s_axi_*valid

    m_axi_*valid

    m_axi_*ready

    D0information D1

    D0information D1

    *valid --> awvalid/wvalid/bvalid/arvalid/rvalid*ready --> awready/wready/bready/arready/rreadyInformation --> s/m_axi_aw/wb/ar/r channel signals except valid and ready

    X21890-111218

    The information source generates the valid signal to indicate when the data is available. Thedestination generates the ready signal to indicate that it can accept the data, and transferoccurs only when both the valid and ready signals are High.

    Because AXI FIFOs are derived from Native interface FIFOs, much of the behavior is commonbetween them. The ready signal is generated based on availability of space in the FIFO and isheld high to allow writes to the FIFO. The ready signal is pulled Low only when there is nospace in the FIFO left to perform additional writes. The valid signal is generated based onavailability of data in the FIFO and is held High to allow reads to be performed from the FIFO.The valid signal is pulled Low only when there is no data available to be read from the FIFO.The information signals are mapped to the din and dout bus of Native interface FIFOs. Thewidth of the AXI FIFO is determined by concatenating all of the information signals of theAXI interface. The information signals include all AXI signals except for the valid and readyhandshake signals.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 10Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=10

  • AXI FIFOs operate only in First-Word Fall-Through mode. The First-Word Fall-Through (FWFT)feature provides the ability to look ahead to the next word available from the FIFO withoutissuing a read operation. When data is available in the FIFO, the first word falls through the FIFOand appears automatically on the output data bus.

    Native FIFO Feature OverviewClock Implementation and Operation

    The Embedded FIFO Generator core enables FIFOs to be configured with either independent orcommon clock domains for write and read operations. The independent clock configuration ofthe Embedded FIFO Generator core enables you to implement unique clock domains on thewrite and read ports. The Embedded FIFO Generator core handles the synchronization betweenclock domains, placing no requirements on phase and frequency. When data buffering in a singleclock domain is required, the Embedded FIFO Generator core can be used to generate a coreoptimized for that single clock.

    First-Word Fall-Through (FWFT)

    The first-word fall-through (FWFT) feature provides the ability to look-ahead to the next wordavailable from the FIFO without issuing a read operation. When data is available in the FIFO, thefirst word falls through the FIFO and appears automatically on the output bus (dout). FWFT isuseful in applications that require Low-latency access to data and to applications that requirethrottling based on the contents of the read data. FWFT support is included in FIFOs createdwith block RAM, Distributed RAM, or UltraRAM.

    See the FIFO Configurations table for FWFT availability. The use of this feature impacts thebehavior of many other features, such as:

    • Read operations

    • Programmable empty

    • Data counts

    Supported Memory Types

    The Embedded FIFO Generator core implements FIFOs built from block RAM, Distributed RAM,or UltraRAM. The following table provides best-use recommendations for specific designrequirements.

    Table 1: Memory Configuration Benefits

    MemoryTypes

    IndependentClocks

    CommonClock

    SmallBuffering

    Medium - LargeBuffering

    HighPerformance

    MinimalResources

    Block RAM ✓ ✓ ✓ ✓ ✓UltraRAM ✓ ✓ ✓ ✓

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 11Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=11

  • Table 1: Memory Configuration Benefits (cont'd)

    MemoryTypes

    IndependentClocks

    CommonClock

    SmallBuffering

    Medium - LargeBuffering

    HighPerformance

    MinimalResources

    DistributedRAM

    ✓ ✓ ✓ ✓

    Non-Symmetric Aspect Ratio Support

    The core supports generating FIFOs with write and read ports of different widths, enablingautomatic width conversion of the data width. Non-symmetric aspect ratios ranging from 1:8 to8:1 are supported for the write and read port widths. This feature is available for the followingFIFO implementations:

    • Common or Independent clock block RAM FIFOs

    • Common clock UltraRAM FIFOs

    Configurable Read Latency

    The core supports configurable read latency, ranging from 1 to 16 for Standard Read ModeFIFOs. For FWFT FIFOs, the supported latency is 0.

    Error Injection and Correction (ECC) Support

    The block RAMs and UltraRAMs are equipped with built-in Error Injection and CorrectionChecking. This feature is available for Common/Independent Clock block RAM FIFOs andCommon Clock UltraRAM FIFOs.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 12Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=12

  • Native FIFO Configuration and ImplementationThe following table defines the supported memory and clock configurations.

    Table 2: FIFO Configurations

    ClockDomain Memory Type

    Non-symmetricAspect Ratios

    First-word Fall-Through ECC Support

    ConfigurableRead Latency

    SupportCommon Block RAM ✓ ✓ ✓ ✓Common Distributed RAM ✓ ✓Common UltraRAM ✓ ✓ ✓ ✓Independent Block RAM ✓ ✓ ✓ ✓Independent Distributed RAM ✓ ✓

    Common Clock: Block RAM, Distributed RAM, UltraRAM

    This implementation category allows you to select block RAM, Distributed RAM, or UltraRAMand supports a common clock for write and read data accesses. The feature set supported forthis configuration includes non-symmetric aspect ratios (different write and read port widths) forblock/UltraRAM FIFOs, status flags (full, almost full, empty, and almost empty), andprogrammable empty and full flags generated with user-defined thresholds.

    In addition, optional handshaking and error flags are supported (write acknowledge, overflow,read valid, and underflow), and an optional data count provides the number of words in the FIFO.The block/UltraRAM FIFO configuration also supports ECC.

    Independent Clocks: block RAM and Distributed RAM

    This implementation option allows you to select block RAM or Distributed RAM and supportsindependent clock domains for write and read data accesses. Operations in the read domain aresynchronous to the read clock and operations in the write domain are synchronous to the writeclock.

    The feature set supported for this type of FIFO includes non-symmetric aspect ratios (differentwrite and read port widths) for block RAM, status flags (full, almost full, empty, and almostempty), as well as programmable full and empty flags generated with user-defined thresholds.Optional read data count and write data count indicators provide the number of words in theFIFO relative to their respective clock domains. In addition, optional handshaking and error flagsare available (write acknowledge, overflow, read valid, and underflow). The block RAM FIFOconfiguration also supports ECC.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 13Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=13

  • Native Interface Feature SummaryThe following table summarizes the supported Embedded FIFO Generator core features for eachclock configuration and memory type.

    Table 3: FIFO Configurations Summary

    FIFO FeatureIndependent Clocks Common Clock

    Block RAM DistributedRAM Block RAMDistributed

    RAM UltraRAM

    Non-symmetricAspect Ratios

    ✓ ✓ ✓

    Symmetric AspectRatios

    ✓ ✓ ✓ ✓ ✓

    Almost Full ✓ ✓ ✓ ✓ ✓Almost Empty ✓ ✓ ✓ ✓ ✓Handshaking ✓ ✓ ✓ ✓ ✓Data Count ✓ ✓ ✓ ✓ProgrammableEmpty/FullThresholds

    ✓ ✓ ✓ ✓ ✓

    First-Word Fall-Through

    ✓ ✓ ✓ ✓ ✓

    SynchronousReset

    ✓ ✓ ✓ ✓ ✓

    dout Reset Value ✓ ✓ ✓ ✓ ✓ECC ✓ ✓ ✓Configurable ReadLatency

    ✓ ✓ ✓ ✓ ✓

    Dynamic PowerSaving

    Native FIFO Interface SignalsThe following sections define the FIFO interface signals. The following figure illustrates thesesignals (both standard and optional ports) for a FIFO core that supports independent write andread clocks.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 14Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=14

  • Figure 5: FIFO with Independent Clocks: Interface Signals

    dout[M:0]

    empty

    rst

    rd_en

    rd_clk

    Write Clock Domain

    Read Clock Domain

    full

    wr_en

    din[n:0]

    wr_clk

    almost_empty

    prog_empty

    data_valid

    underflow

    almost_full

    prog_full

    wr_ack

    overflow

    X#####-110618X21839-110618

    Note: Optional ports are represented in italics.

    Interface Signals: FIFOs With Independent Clocks

    The rst signal, as defined in the following table, causes a reset of the entire core logic (bothwrite and read clock domains. The initial hardware reset should be generated by the user.

    Table 4: Reset and Sleep Signals for FIFOs with Independent Clocks

    Name Direction Descriptionrst Input Reset: A synchronous reset signal that initializes all internal

    pointers and output registers.

    sleep Input Dynamic power gating. If sleep is active, the FIFO is in powersaving mode.Only available for UltraRAM FIFOs.

    The following table defines the write interface signals for FIFOs with independent clocks. Thewrite interface signals are divided into required and optional signals and all signals aresynchronous to the write clock (wr_clk).

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 15Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=15

  • Table 5: Write Interface Signals for FIFOs with Independent Clocks

    Name Direction DescriptionRequired

    wr_clk Input Write Clock: All signals on the write domain are synchronous tothis clock.

    din[n:0] Input Data Input: The input data bus used when writing the FIFO.

    wr_en Input Write Enable: If the FIFO is not full, asserting this signal causesdata (on din) to be written to the FIFO.

    full Output Full Flag: When asserted, this signal indicates that the FIFO is full.Write requests are ignored when the FIFO is full, initiating a writewhen the FIFO is full is not destructive to the contents of the FIFO.

    Optional

    almost_full Output Almost Full: When asserted, this signal indicates that only onemore write can be performed before the FIFO is full.

    prog_full Output Programmable Full: This signal is asserted when the number ofwords in the FIFO is greater than or equal to the assert threshold.It is deasserted when the number of words in the FIFO is lessthan the negate threshold.

    wr_data_count [d:0] Output Write Data Count: This bus indicates the number of wordswritten into the FIFO. The count is guaranteed to never under-report the number of words in the FIFO, to ensure you neveroverflow the FIFO. The exception to this behavior is when a writeoperation occurs at the rising edge of wr_clk/clk, that writeoperation will only be reflected on wr_data_count at the secondrising clock edge. If D is less than log2(FIFO depth)-1, the bus istruncated by removing the least-significant bits.

    wr_ack Output Write Acknowledge: This signal indicates that a write request(wr_en) during the prior clock cycle succeeded.

    overflow Output Overflow: This signal indicates that a write request (wr_en)during the prior clock cycle was rejected, because the FIFO is full.Overflowing the FIFO is not destructive to the contents of theFIFO.

    injectsbiterr Input Injects a single bit error if the ECC feature is used on block RAMsor UltraRAM FIFO macros.

    injectdbiterr Input Injects a double bit error if the ECC feature is used on block RAMsor UltraRAM FIFO macros.

    wr_rst_busy Output When asserted, this signal indicates that the write domain is inreset state.

    The following table defines the read interface signals of a FIFO with independent clocks. Readinterface signals are divided into required signals and optional signals, and all signals aresynchronous to the read clock (rd_clk).

    Table 6: Read Interface Signals for FIFOs with Independent Clocks

    Name Direction DescriptionRequired

    rd_clk Input Read Clock: All signals on the read domain are synchronous tothis clock.

    dout[m:0] Output Data Output: The output data bus is driven when reading theFIFO.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 16Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=16

  • Table 6: Read Interface Signals for FIFOs with Independent Clocks (cont'd)

    Name Direction Descriptionrd_en Input Read Enable: If the FIFO is not empty, asserting this signal causes

    data to be read from the FIFO (output on dout).

    empty Output Empty Flag: When asserted, this signal indicates that the FIFO isempty. Read requests are ignored when the FIFO is empty,initiating a read while empty is not destructive to the FIFO.

    Optional

    almost_empty Output Almost Empty Flag: When asserted, this signal indicates that theFIFO is almost empty and one word remains in the FIFO.

    prog_empty Output Programmable Empty: This signal is asserted when the numberof words in the FIFO is less than or equal to the programmablethreshold. It is de-asserted when the number of words in the FIFOexceeds the programmable threshold.

    rd_data_count [c:0] Output Read Data Count: This bus indicates the number of wordsavailable for reading in the FIFO. The count is guaranteed tonever over-report the number of words available for reading, toensure that you do not underflow the FIFO. The exception to thisbehavior is when the read operation occurs at the rising edge ofrd_clk/clk, that read operation is only reflected on rd_data_countat the second rising clock edge. If C is less than log2(FIFOdepth)-1, the bus is truncated by removing the least-significantbits.

    data_valid Output Data Valid: This signal indicates that valid data is available on theoutput bus (dout).

    underflow Output Underflow: Indicates that the read request (rd_en) during theprevious clock cycle was rejected because the FIFO is empty.Underflowing the FIFO is not destructive to the FIFO.

    sbiterr Output Single Bit Error: Indicates that the ECC decoder detected andfixed a single-bit error on block RAM or UltraRAM FIFO macro.

    dbiterr Output Double Bit Error: Indicates that the ECC decoder detected adouble-bit error on block RAM or UltraRAM FIFO macro and datain the FIFO core is corrupted.

    rd_rst_busy Output When asserted, this signal indicates that the read domain is inreset state.

    Interface Signals: FIFOs with Common Clock

    The following table defines the interface signals of a FIFO with a common write and read clockand is divided into standard and optional interface signals. All signals are synchronous to thecommon clock (clk).

    Table 7: Interface Signals for FIFOs with a Common Clock

    Name Direction DescriptionRequired

    rst Input Reset: A synchronous reset that initializes all internal pointersand output registers.

    clk Input Clock: All signals on the write and read domains are synchronousto this clock.

    din[n:0] Input Data Input: The input data bus used when writing the FIFO.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 17Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=17

  • Table 7: Interface Signals for FIFOs with a Common Clock (cont'd)

    Name Direction Descriptionwr_en Input Write Enable: If the FIFO is not full, asserting this signal causes

    data (on din) to be written to the FIFO.

    full Output Full Flag: When asserted, this signal indicates that the FIFO is full.Write requests are ignored when the FIFO is full, initiating a writewhen the FIFO is full is not destructive to the contents of the FIFO.

    dout[m:0] Output Data Output: The output data bus driven when reading the FIFO.

    rd_en Input Read Enable: If the FIFO is not empty, asserting this signal causesdata to be read from the FIFO (output on dout).

    empty Output Empty Flag: When asserted, this signal indicates that the FIFO isempty. Read requests are ignored when the FIFO is empty,initiating a read while empty is not destructive to the FIFO.

    Optional

    wr_data_count [c:0] Output Data Count: This bus indicates the number of words stored in theFIFO. If C is less than log2(FIFO depth)-1, the bus is truncated byremoving the least-significant bits.

    almost_full Output Almost Full: When asserted, this signal indicates that only onemore write can be performed before the FIFO is full.

    prog_full Output Programmable Full: This signal is asserted when the number ofwords in the FIFO is greater than or equal to the assert threshold.It is deasserted when the number of words in the FIFO is lessthan the negate threshold.

    wr_ack Output Write Acknowledge: This signal indicates that a write request(wr_en) during the prior clock cycle succeeded.

    overflow Output Overflow: This signal indicates that a write request (wr_en)during the prior clock cycle was rejected, because the FIFO is full.Overflowing the FIFO is not destructive to the FIFO.

    almost_empty Output Almost Empty Flag: When asserted, this signal indicates that theFIFO is almost empty and one word remains in the FIFO.

    prog_empty Output Programmable Empty: This signal is asserted after the numberof words in the FIFO is less than or equal to the programmablethreshold. It is de-asserted when the number of words in the FIFOexceeds the programmable threshold.

    data_valid Output Data Valid: This signal indicates that valid data is available on theoutput bus (dout).

    underflow Output Underflow: Indicates that read request (rd_en) during theprevious clock cycle was rejected because the FIFO is empty.Underflowing the FIFO is not destructive to the FIFO.

    sbiterr Output Single Bit Error: Indicates that the ECC decoder detected andfixed a single-bit error.

    dbiterr Output Double Bit Error: Indicates that the ECC decoder detected adouble-bit error and data in the FIFO core is corrupted.

    injectsbiterr Input Injects a single bit error if the ECC feature is used. For detailedinformation.

    injectdbiterr Input Injects a double bit error if the ECC feature is used. For detailedinformation.

    sleep Input Dynamic shutdown power saving. If sleep is active, the FIFO is inpower saving mode.

    wr_rst_busy Output When asserted, this signal indicates that the write domain is inreset state.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 18Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=18

  • Table 7: Interface Signals for FIFOs with a Common Clock (cont'd)

    Name Direction Descriptionrd_rst_busy Output When asserted, this signal indicates that the read domain is in

    reset state.

    AXI FIFO Feature OverviewEasy Integration of Independent FIFOs for Read and Write Channels

    For AXI memory mapped interfaces, AXI specifies Write Channels and Read Channels. WriteChannels include a Write Address Channel, Write Data Channel and Write Response Channel.Read Channels include a Read Address Channel and Read Data Channel. The Embedded FIFOGenerator core provides the ability to generate either Write Channels or Read Channels, or bothWrite Channels and Read Channels for AXI memory mapped. Three FIFOs are integrated forWrite Channels and two FIFOs are integrated for Read Channels. When both Write and ReadChannels are selected, the FIFO Generator core integrates five independent FIFOs.

    For AXI memory mapped interfaces, the Embedded FIFO Generator core provides the ability toimplement independent FIFOs for each channel, as shown in the following figure. For eachchannel, the core can be independently configured to generate a block RAM or DistributedMemory or UltraRAM based FIFO. The depth of each FIFO can also be independentlyconfigured.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 19Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=19

  • Figure 6: AXI Memory Mapped FIFO Block Diagram

    Write ClockDomain

    Read ClockDomain

    Write ClockDomain

    Read ClockDomain

    Write ClockDomain

    Write ClockDomain

    Read ClockDomain

    Write ClockDomain

    VALID

    READY

    CHANNEL INFO

    VALIDREADY

    CHANNEL INFO

    VALIDREADY

    CHANNEL INFO

    VALID

    READYCHANNEL INFO

    VALID

    READYCHANNEL INFO

    VALID

    READY

    CHANNEL INFO

    VALIDREADY

    CHANNEL INFO

    VALID

    READYCHANNEL INFO

    VALID

    READYCHANNEL INFO

    VALID

    READY

    CHANNEL INFO

    Read ClockDomain

    Read ClockDomain

    S_ACLKS_ARESETN

    Write Address Channel

    Write Data Channel

    Write Response

    Channel

    Read Address Channel

    Read Response

    Channel

    Write Channels

    Read Channels

    Write Address Channel

    Write Data Channel

    Write Response Channel

    Read Address Channel

    Read Response Channel

    Write Channels

    Read Channels

    M_ACLK

    OptionalMandatoryX21800-110618

    Clock and Reset Implementation and Operation

    For the AXI4-Stream and AXI memory mapped interfaces, all instantiated FIFOs share clock andasynchronous active-Low reset signals. In addition, all instantiated FIFOs can support eitherindependent clock or common clock operation.

    The independent clock configuration of the Embedded FIFO Generator core enables you toimplement unique clock domains on the write and read ports. The Embedded FIFO Generatorcore handles the synchronization between clock domains, placing no requirements on phase andfrequency. When data buffering in a single clock domain is required, the Embedded FIFOGenerator core can be used to generate a core optimized for a single clock by selecting thecommon clock option.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 20Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=20

  • Automatic FIFO Width Calculation

    AXI FIFOs support symmetric widths for the FIFO Read and Write ports. The FIFO width for theAXI FIFO is determined by the selected interface type (AXI4-Stream or AXI memory mapped)and user-selected signals and signal widths within the given interface. The AXI FIFO width isthen calculated automatically by the aggregation of all signal widths in a respective channel.

    Supported Configuration, Memory and Application Types

    The Embedded FIFO Generator core implements FIFOs built from block RAM, UltraRAM, orDistributed RAM memory types. Depending on the application type selection (Data FIFO orPacket FIFO), the core combines memory primitives in an optimal configuration based on thecalculated width and selected depth of the FIFO.

    Packet FIFO

    The Packet FIFO configuration delays the start of packet (burst) transmission until the end (LASTbeat) of the packet is received. This ensures uninterrupted availability of data after master-sidetransfer begins, thus avoiding source-end stalling of the AXI data channel. This is valuable inapplications in which data originates at a master device. Examples of this include real-time signalchannels that operate at a lower data rate than the downstream AXI switch and/or slavedestination, such as a high-bandwidth memory.

    The Packet FIFO principle applies to both AXI4 memory-mapped burst transactions (both writeand read) and AXI4-Stream packet transmissions. This feature is sometimes referred to as "store-and-forward", referring to the behavior for memory-mapped writes and stream transmissions. Formemory-mapped reads, transactions are delayed until there are enough vacancies in the FIFO toguarantee uninterrupted buffering of the entire read data packet, as predicted by the AR-channeltransaction. Read transactions do not actually rely on the RLAST signal.

    The Packet FIFO feature is supported for Common Clock AXI4 and Common/Independent ClockAXI4-Stream configurations. It is not supported for AXI4-Lite configurations.

    AXI4-Stream Packet FIFO

    The Embedded FIFO Generator core uses AXI4-Stream Interface for the AXI4-Stream PacketFIFO feature. The Embedded FIFO Generator core indicates a tvalid on the AXI4-StreamMaster side when a complete packet (marked by tlast) is received on the AXI4-Stream Slaveside or when the AXI4-Stream FIFO is FULL. Indicating tvalid on the Master side due to theFIFO becoming full is an exceptional case, and in such case, the Packet FIFO acts as a normalFWFT FIFO forwarding the data received on the Slave side to the Master side until it receivestlast on the Slave side.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 21Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=21

  • AXI4 Packet FIFO

    The Embedded FIFO Generator core uses the AXI memory mapped interface for the AXI4 PacketFIFO feature (for both write and read channels).

    • Packet FIFO on Write Channels: The Embedded FIFO Generator core indicates an awvalidon the AXI AW channel Master side when a complete packet (marked by wlast) is receivedon the AXI W channel Slave side. The Write Channel Packet FIFO is coupled to the WriteAddress Channel so that AW transfers are not posted to the AXI Write Address Channel untilall of the data needed for the requested transfer is received on the AXI W channel Slave side.The minimum depth of the W channel is set to 512 and enables the Write Channel PacketFIFO to hold two packets of its maximum length.

    • Packet FIFO on Read Channels: The Embedded FIFO Generator core indicates an rvalid onthe AXI R channel Slave side when a complete packet (marked by rlast) is received on theAXI R channel Master side. The Read Channel Packet FIFO is coupled to the Read AddressChannel so that AR transfers are not posted to the AXI Read Address Channel if there is notenough space left in the Packet FIFO for the associated data. The minimum depth of the Rchannel is set to 512, and enables the Read Channel Packet FIFO to hold two packets of itsmaximum length.

    Error Injection and Correction (ECC) Support

    The block RAM and UltraRAM macros are equipped with built-in Error Injection and CorrectionChecking. This feature is available for both the common clock block/UltraRAM FIFOs andindependent clock block RAM FIFOs.

    AXI Slave Interface for Performing Writes

    AXI FIFOs provide an AXI Slave interface for performing Writes. The AXI Master providesINFORMATION and VALID signals; the AXI FIFO accepts the INFORMATION by asserting theREADY signal. The READY signal is de-asserted only when the FIFO is full.

    AXI Master Interface for Performing Reads

    The AXI FIFO provides an AXI Master interface for performing Reads. The AXI FIFO providesINFORMATION and VALID signals; upon detecting a READY signal asserted from the AXI Slaveinterface, the AXI FIFO places the next INFORMATION on the bus. The VALID signal is de-asserted only when the FIFO is empty.

    AXI FIFO Feature SummaryThe following table summarizes the supported Embedded FIFO Generator core features for eachclock configuration and memory type.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 22Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=22

  • Table 8: AXI FIFO Configuration Summary

    FIFO OptionsCommon Clock Independent Clock

    Block RAM/UltraRAM

    DistributedMemory Block RAM

    DistributedMemory

    Full1 ✓ ✓ ✓ ✓Programmable Full2 ✓ ✓ ✓ ✓Empty ✓ ✓ ✓ ✓Programmable Empty2 ✓ ✓ ✓ ✓Data Counts ✓ ✓ ✓ ✓ECC ✓ ✓Notes:1. Mapped to s_axis_tready/s_axi_awready/s_axi_wready/m_axi_bready/s_axi_arready/m_axi_rready depending on the

    Handshake Flag Options in the IDE.2. Mapped to m_axis_tvalid/m_axi_awvalid/m_axi_wvalid/s_axi_bvalid/m_axi_arvalid/s_axi_rvalid depending on the

    Handshake Flag Options in the IDE.Provided as sideband signal depending on the IDE option.Mapped tos_axis_tready/s_axi_awready/s_axi_wready/m_axi_bready/s_axi_arready/m_axi_rready depending on the HandshakeFlag Options in the IDE.

    AXI FIFO Interface SignalsThe following sections define the AXI FIFO interface signals.

    The value of s_axis_tready, s_axi_awready, s_axi_wready, m_axi_bready,s_axi_arready and m_axi_rready is 1 outside Reset Window. To avoid unexpectedbehavior, do not perform any transactions during Reset Window.

    Note: Reset Window: reset duration + 60 slowest clock cycles.

    Global Signals

    The following table defines the global interface signals for AXI FIFO.

    The s_aresetn signal causes a reset of the entire core logic. It is an active-Low, asynchronousinput synchronized internally in the core before use. The initial hardware reset should begenerated by the user.

    Table 9: AXI FIFO - Global Interface Signals

    Name Direction DescriptionGlobal Clock and Reset Signals Mapped to FIFO Clock and Reset Inputs

    m_aclk Input Global Master Interface Clock: All signals on Master Interface ofAXI FIFO are synchronous to m_aclk

    s_aclk Input Global Slave Interface Clock: All signals are sampled on therising edge of this clock.

    s_aresetn Input Global Reset: This signal is active-Low.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 23Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=23

  • AXI4-Stream FIFO Interface Signals

    The following table defines the AXI4-Stream FIFO interface signals.

    Table 10: AXI4-Stream FIFO Interface Signals

    Name Direction DescriptionAXI4-Stream Interface: Handshake Signals for FIFO Write Interface

    s_axis_tvalid Input TVALID: Indicates that the master is driving a valid transfer. Atransfer takes place when both TVALID and TREADY are asserted.

    s_axis_tready Output TREADY: Indicates that the slave can accept a transfer in thecurrent cycle.

    AXI4-Stream Interface: Information Signals Mapped to FIFO Data Input (din) Bus

    s_axis_tdata[m-1:0] Input TDATA: The primary payload that is used to provide the data thatis passing across the interface. The width of the data payload isan integer number of bytes.

    s_axis_tstrb[m/8-1:0] Input TSTRB: The byte qualifier that indicates whether the content ofthe associated byte of TDATA is processed as a data byte or aposition byte. For a 64-bit DATA, bit 0 corresponds to the leastsignificant byte on DATA, and bit 7 corresponds to the mostsignificant byte. For example:

    • STROBE[0] = 1b, DATA[7:0] is valid• STROBE[7] = 0b, DATA[63:56] is not valid

    s_axis_tkeep[m/8-1:0] Input TKEEP: The byte qualifier that indicates whether the content ofthe associated byte of TDATA is processed as part of the datastream. Associated bytes that have the TKEEP byte qualifierdeasserted are null bytes and can be removed from the datastream. For a 64-bit DATA, bit 0 corresponds to the leastsignificant byte on DATA, and bit 7 corresponds to the mostsignificant byte. For example:

    • KEEP[0] = 0b, DATA[7:0] is a NULL byte• KEEP [7] = 1b, DATA[63:56] is not a NULL byte

    s_axis_tlast Input TLAST: Indicates the boundary of a packet.

    s_axis_tid[m:0] Input TID: The data stream identifier that indicates different streams ofdata.

    s_axis_tdest[m:0] Input TDEST: Provides routing information for the data stream.

    s_axis_tuser[m:0] Input TUSER: The user-defined sideband information that can betransmitted alongside the data stream.

    AXI4-Stream Interface: Handshake Signals for FIFO Read Interface

    m_axis_tvalid Output TVALID: Indicates that the master is driving a valid transfer. Atransfer takes place when both tvalid and tready are asserted.

    m_axis_tready Input TREADY: Indicates that the slave can accept a transfer in thecurrent cycle.

    AXI4-Stream Interface: Information Signals Derived from FIFO Data Output (dout) Bus

    m_axis_tdata[m-1:0] Output TDATA: The primary payload that is used to provide the data thatis passing across the interface. The width of the data payload isan integer number of bytes.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 24Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=24

  • Table 10: AXI4-Stream FIFO Interface Signals (cont'd)

    Name Direction Descriptionm_axis_tstrb[m/8-1:0] Output TSTRB: The byte qualifier that indicates whether the content of

    the associated byte of TDATA is processed as a data byte or aposition byte. For a 64-bit DATA, bit 0 corresponds to the leastsignificant byte on DATA, and bit 7 corresponds to the mostsignificant byte. For example:

    • STROBE[0] = 1b, DATA[7:0] is valid• STROBE[7] = 0b, DATA[63:56] is not valid

    m_axis_tkeep[m/8-1:0] Output TKEEP: The byte qualifier that indicates whether the content ofthe associated byte of TDATA is processed as part of the datastream. Associated bytes that have the TKEEP byte qualifierdeasserted are null bytes and can be removed from the datastream. For a 64-bit DATA, bit 0 corresponds to the leastsignificant byte on DATA, and bit 7 corresponds to the mostsignificant byte. For example:

    • KEEP[0] = 1b, DATA[7:0] is a NULL byte• KEEP [7] = 0b, DATA[63:56] is not a NULL byte

    m_axis_tlast Output TLAST: Indicates the boundary of a packet.

    m_axis_tid[m:0] Output TID: The data stream identifier that indicates different streams ofdata.

    m_axis_tdest[m:0] Output TDEST: Provides routing information for the data stream.

    m_axis_tuser[m:0] Output TUSER: The user-defined sideband information that can betransmitted alongside the data stream.

    AXI4-Stream FIFO: Optional Sideband Signals

    injectsbiterr_axis Input Inject Single-Bit Error: Injects a single-bit error if the ECC featureis used.

    injectdbiterr_axis Input Inject Double-Bit Error: Injects a double-bit error if the ECCfeature is used.

    sbiterr_axis Output Single-Bit Error: Indicates that the ECC decoder detected andfixed a single-bit error.

    dbiterr_axis Output Double-Bit Error: Indicates that the ECC decoder detected adouble-bit error and data in the FIFO core is corrupted.

    wr_data_count_axis[d:0] Output Write Data Count: This bus indicates the number of wordswritten into the FIFO. The count is guaranteed to neverunderreport the number of words in the FIFO, to ensure younever overflow the FIFO. The exception to this behavior is when awrite operation occurs at the rising edge of write clock; that writeoperation will only be reflected on wr_data_count at the secondrising clock edge.

    • D= log2(FIFO depth)+1

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 25Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=25

  • Table 10: AXI4-Stream FIFO Interface Signals (cont'd)

    Name Direction Descriptionrd_data_count_axis[d:0] Output Read Data Count: This bus indicates the number of words

    available for reading in the FIFO. The count is guaranteed tonever over-report the number of words available for reading, toensure that you do not underflow the FIFO. The exception to thisbehavior is when the read operation occurs at the rising edge ofread clock; that read operation is only reflected on rd_data_countat the second rising clock edge.

    • D = log2(FIFO depth)+1

    prog_full_axis Output Programmable Full: This signal is asserted when the number ofwords in the FIFO is greater than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOis less than the programmable threshold.

    prog_empty_axis Output Programmable Empty: This signal is asserted when the numberof words in the FIFO is less than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOexceeds the programmable threshold.

    AXI4 FIFO Interface Signals

    Write Channels

    The following table defines the AXI4 FIFO interface signals for the Write Address Channel.

    Table 11: AXI4 Write Address Channel FIFO Interface Signals

    Name Direction DescriptionAXI4 Interface Write Address Channel: Information Signals Mapped to FIFO Data Input (din) Bus

    s_axi_awid[m:0] Input Write Address ID: Identification tag for the write address groupof signals.

    s_axi_awaddr[m:0] Input Write Address: The write address bus gives the address of thefirst transfer in a write burst transaction. The associated controlsignals are used to determine the addresses of the remainingtransfers in the burst.

    s_axi_awlen[7:0] Input Burst Length: The burst length gives the exact number oftransfers in a burst. This information determines the number ofdata transfers associated with the address.

    s_axi_awsize[2:0] Input Burst Size: Indicates the size of each transfer in the burst. Bytelane strobes indicate exactly which byte lanes to update.

    s_axi_awburst[1:0] Input Burst Type: The burst type, coupled with the size information,details how the address for each transfer within the burst iscalculated.

    s_axi_awlock[1:0] Input Lock Type: This signal provides additional information about theatomic characteristics of the transfer.

    s_axi_awcache[3:0] Input Cache Type: Indicates the bufferable, cacheable, write-through,write-back, and allocate attributes of the transaction.

    s_axi_awprot[2:0] Input Protection Type: Indicates the normal, privileged, or secureprotection level of the transaction and whether the transaction isa data access or an instruction access.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 26Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=26

  • Table 11: AXI4 Write Address Channel FIFO Interface Signals (cont'd)

    Name Direction Descriptions_axi_awqos[3:0] Input Quality of Service (QoS): Sent on the write address channel for

    each write transaction.

    s_axi_awregion[3:0] Input Region Identifier: Sent on the write address channel for eachwrite transaction.

    s_axi_awuser[m:0] Input Write Address Channel User

    AXI4 Interface Write Address Channel: Handshake Signals for FIFO Write Interface

    s_axi_awvalid Input Write Address Valid: Indicates that valid write address andcontrol information are available:

    • 1 = Address and control information available.• 0 = Address and control information not available.• The address and control information remain stable until the

    address acknowledge signal, awready, goes High.

    s_axi_awready Output Write Address Ready: Indicates that the slave is ready to acceptan address and associated control signals:

    • 1 = Slave ready.• 0 = Slave not ready.

    AXI4 Interface Write Address Channel: Information Signals Derived from FIFO Data Output (dout) Bus

    m_axi_awid[m:0] Output Write Address ID: This signal is the identification tag for thewrite address group of signals.

    m_axi_awaddr[m:0] Output Write Address: The write address bus gives the address of thefirst transfer in a write burst transaction. The associated controlsignals are used to determine the addresses of the remainingtransfers in the burst.

    m_axi_awlen[7:0] Output Burst Length: The burst length gives the exact number oftransfers in a burst. This information determines the number ofdata transfers associated with the address.

    m_axi_awsize[2:0] Output Burst Size: This signal indicates the size of each transfer in theburst. Byte lane strobes indicate exactly which byte lanes toupdate.

    m_axi_awburst[1:0] Output Burst Type: The burst type, coupled with the size information,details how the address for each transfer within the burst iscalculated.

    m_axi_awlock[1:0] Output Lock Type: This signal provides additional information about theatomic characteristics of the transfer.

    m_axi_awcache[3:0] Output Cache Type: This signal indicates the bufferable, cacheable,write-through, write-back, and allocate attributes of thetransaction.

    m_axi_awprot[2:0] Output Protection Type: This signal indicates the normal, privileged, orsecure protection level of the transaction and whether thetransaction is a data access or an instruction access.

    m_axi_awqos[3:0] Output Quality of Service (QoS): Sent on the write address channel foreach write transaction.

    m_axi_awregion[3:0] Output Region Identifier: Sent on the write address channel for eachwrite transaction.

    m_axi_awuser[m:0] Output Write Address Channel User

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 27Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=27

  • Table 11: AXI4 Write Address Channel FIFO Interface Signals (cont'd)

    Name Direction DescriptionAXI4 Interface Write Address Channel: Handshake Signals for FIFO Read Interface

    m_axi_awvalid Output Write Address Valid: Indicates that valid write address andcontrol information are available:

    • 1 = address and control information available• 0 = address and control information not available• The address and control information remain stable until the

    address acknowledge signal, AWREADY, goes high.

    m_axi_awready Input Write Address Ready: Indicates that the slave is ready to acceptan address and associated control signals:

    • 1 = Slave ready• 0 = Slave not ready

    The following table defines the AXI4 FIFO interface signals for the Write Data Channel.

    Table 12: AXI4 Write Data Channel FIFO Interface Signals

    Name Direction DescriptionAXI4 Interface Write Data Channel: Information Signals mapped to FIFO Data Input (din) Bus

    s_axi_wdata[m-1:0] Input Write Data: The write data bus can be 8, 16, 32, 64, 128, 256 or512 bits wide.

    s_axi_wstrb[m/8-1:0] Input Write Strobes: Indicates which byte lanes to update in memory.There is one write strobe for each eight bits of the write data bus.Therefore, WSTRB[n] corresponds to WDATA[(8 × n) + 7:(8 × n)].For a 64-bit DATA, bit 0 corresponds to the least significant byteon DATA, and bit 7 corresponds to the most significant byte. Forexample:

    • STROBE[0] = 1b, DATA[7:0] is valid• STROBE[7] = 0b, DATA[63:56] is not valid

    s_axi_wlast Input Write Last: Indicates the last transfer in a write burst.

    s_axi_wuser[m:0] Input Write Data Channel User

    AXI4 Interface Write Data Channel: Handshake Signals for FIFO Write Interface

    s_axi_wvalid Input Write Valid: Indicates that valid write data and strobes areavailable:

    • 1 = Write data and strobes available.• 0 = Write data and strobes not available.

    s_axi_wready Output Write Ready: Indicates that the slave can accept the write data:

    • 1 = Slave ready• 0 = Slave not ready

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 28Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=28

  • Table 12: AXI4 Write Data Channel FIFO Interface Signals (cont'd)

    Name Direction DescriptionAXI4 Interface Write Data Channel: Information Signals Derived from FIFO Data Output (dout) Bus

    m_axi_wdata[m-1:0] Output Write Data: The write data bus can be 8, 16, 32, 64, 128, 256 or512 bits wide.

    m_axi_wstrb[m/8-1:0] Output Write Strobes: Indicates which byte lanes to update in memory.There is one write strobe for each eight bits of the write data bus.Therefore, WSTRB[n] corresponds to WDATA[(8 × n) + 7:(8 × n)].For a 64-bit DATA, bit 0 corresponds to the least significant byteon DATA, and bit 7 corresponds to the most significant byte. Forexample:

    • STROBE[0] = 1b, DATA[7:0] is valid• STROBE[7] = 0b, DATA[63:56] is not valid

    m_axi_wlast Output Write Last: Indicates the last transfer in a write burst.

    m_axi_wuser[m:0] Output Write Data Channel User

    AXI4 Interface Write Data Channel: Handshake Signals for FIFO Read Interface

    m_axi_wvalid Output Write valid: Indicates that valid write data and strobes areavailable:

    • 1 = Write data and strobes available• 0 = Write data and strobes not available

    m_axi_wready Input Write ready: Indicates that the slave can accept the write data:

    • 1 = Slave ready• 0 = Slave not ready

    AXI4 Write Data Channel FIFO: Optional Sideband Signals

    injectsbiterr_wdch Input Inject Single-Bit Error: Injects a single bit error if the ECC featureis used.

    injectdbiterr_wdch Input Inject Double-Bit Error: Injects a double bit error if the ECCfeature is used.

    sbiterr_wdch Output Single-Bit Error: Indicates that the ECC decoder detected andfixed a single-bit error.

    dbiterr_wdch Output Double-Bit Error: Indicates that the ECC decoder detected adouble-bit error and data in the FIFO core is corrupted.

    wr_data_count_wdch[d:0] Output Write Data Count: This bus indicates the number of wordswritten into the FIFO. The count is guaranteed to neverunderreport the number of words in the FIFO, to ensure younever overflow the FIFO. The exception to this behavior is when awrite operation occurs at the rising edge of write clock, that writeoperation will only be reflected on wr_data_count at the nextrising clock edge. D = log2(FIFO depth)+1

    rd_data_count_wdch[d:0] Output Read Data Count: This bus indicates the number of wordsavailable for reading in the FIFO. The count is guaranteed tonever over-report the number of words available for reading, toensure that you do not underflow the FIFO. The exception to thisbehavior is when the read operation occurs at the rising edge ofread clock, that read operation is only reflected on rd_data_countat the next rising clock edge. D = log2(FIFO depth)+1

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 29Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=29

  • Table 12: AXI4 Write Data Channel FIFO Interface Signals (cont'd)

    Name Direction Descriptionprog_full_wdch Output Programmable Full: This signal is asserted when the number of

    words in the FIFO is greater than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOis less than the programmable threshold.

    prog_empty_wdch Output Programmable Empty: This signal is asserted when the numberof words in the FIFO is less than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOexceeds the programmable threshold.

    The following table defines the AXI4 FIFO interface signals for the Write Response Channel.

    Table 13: AXI4 Write Response Channel FIFO Interface Signals

    Name Direction DescriptionAXI4 Interface Write Response Channel: Information Signals Mapped to FIFO Data Output (dout) Bus

    s_axi_bid[m:0] Output Response ID: The identification tag of the write response. TheBID value must match the AWID value of the write transaction towhich the slave is responding.

    s_axi_bresp[1:0] Output Write Response: Indicates the status of the write transaction.The allowable responses are OKAY, EXOKAY, SLVERR, and DECERR.

    s_axi_buser[m:0] Output Write Response Channel User

    AXI4 Interface Write Response Channel: Handshake Signals for FIFO Read Interface

    s_axi_bvalid Output Write Response Valid: Indicates that a valid write response isavailable:

    • 1 = Write response available.• 0 = Write response not available.

    s_axi_bready Input Response Ready: Indicates that the master can accept theresponse information.

    • 1 = Master ready.• 0 = Master not ready.

    AXI4 Interface Write Response Channel: Information Signals Derived from FIFO Data Input (din) Bus

    m_axi_bid[m:0] Input Response ID: The identification tag of the write response. TheBID value must match the AWID value of the write transaction towhich the slave is responding.

    m_axi_bresp[1:0] Input Write Response: Indicates the status of the write transaction.The allowable responses are OKAY, EXOKAY, SLVERR, and DECERR.

    m_axi_buser[m:0] Input Write Response Channel User

    AXI4 Interface Write Response Channel: Handshake Signals for FIFO Write Interface

    m_axi_bvalid Input Write Response Valid: Indicates that a valid write response isavailable:

    • 1 = Write response available.• 0 = Write response not available.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 30Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=30

  • Table 13: AXI4 Write Response Channel FIFO Interface Signals (cont'd)

    Name Direction Descriptionm_axi_bready Output Response Ready: Indicates that the master can accept the

    response information.

    • 1 = Master ready.• 0 = Master not ready.

    Read Channels

    The following table defines the AXI4 FIFO interface signals for the Read Address Channel.

    Table 14: AXI4 Read Address Channel FIFO Interface Signals

    Name Direction DescriptionAXI4 Interface Read Address Channel: Information Signals Mapped to FIFO Data Input (din) Bus

    s_axi_arid[m:0] Input Read Address ID: This signal is the identification tag for the readaddress group of signals.

    s_axi_araddr[m:0] Input Read Address: The read address bus gives the initial address of aread burst transaction. Only the start address of the burst isprovided and the control signals that are issued alongside theaddress detail how the address is calculated for the remainingtransfers in the burst.

    s_axi_arlen[7:0] Input Burst Length: The burst length gives the exact number oftransfers in a burst. This information determines the number ofdata transfers associated with the address.

    s_axi_arsize[2:0] Input Burst Size: This signal indicates the size of each transfer in theburst.

    s_axi_arburst[1:0] Input Burst Type: The burst type, coupled with the size information,details how the address for each transfer within the burst iscalculated.

    s_axi_arlock[1:0] Input Lock Type: This signal provides additional information about theatomic characteristics of the transfer.

    s_axi_arcache[3:0] Input Cache Type: This signal provides additional information aboutthe cacheable characteristics of the transfer.

    s_axi_arprot[2:0] Input Protection Type: This signal provides protection unit informationfor the transaction.

    s_axi_arqos[3:0] Input Quality of Service (QoS): Sent on the read address channel foreach read transaction.

    s_axi_arregion[3:0] Input Region Identifier: Sent on the read address channel for eachread transaction.

    s_axi_aruser[m:0] Input Read Address Channel User

    AXI4 Interface Read Address Channel: Handshake Signals for FIFO Write Interface

    s_axi_arvalid Input Read Address Valid: When high, indicates that the read addressand control information is valid and will remain stable until theaddress acknowledge signal, arready, is high.

    • 1 = Address and control information valid.• 0 = Address and control information not valid.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 31Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=31

  • Table 14: AXI4 Read Address Channel FIFO Interface Signals (cont'd)

    Name Direction Descriptions_axi_arready Output Read Address Ready: Indicates that the slave is ready to accept

    an address and associated control signals:

    • 1 = Slave ready.• 0 = Slave not ready.

    AXI4 Interface Read Address Channel: Information Signals Derived from FIFO Data Output (dout) Bus

    m_axi_arid[m:0] Output Read Address ID: This signal is the identification tag for the readaddress group of signals.

    m_axi_araddr[m:0] Output Read Address: The read address bus gives the initial address of aread burst transaction. Only the start address of the burst isprovided and the control signals that are issued alongside theaddress detail how the address is calculated for the remainingtransfers in the burst.

    m_axi_arlen[7:0] Output Burst Length: The burst length gives the exact number oftransfers in a burst. This information determines the number ofdata transfers associated with the address.

    m_axi_arsize[2:0] Output Burst Size: This signal indicates the size of each transfer in theburst.

    m_axi_arburst[1:0] Output Burst Type: The burst type, coupled with the size information,details how the address for each transfer within the burst iscalculated.

    m_axi_arlock[1:0] Output Lock Type: This signal provides additional information about theatomic characteristics of the transfer.

    m_axi_arcache[3:0] Output Cache Type: This signal provides additional information aboutthe cacheable characteristics of the transfer.

    m_axi_arprot[2:0] Output Protection Type: This signal provides protection unit informationfor the transaction.

    m_axi_arqos[3:0] Output Quality of Service (QoS) signaling, sent on the read addresschannel for each read transaction.

    m_axi_arregion[3:0] Output Region Identifier: Sent on the read address channel for eachread transaction.

    m_axi_aruser[m:0] Output Read Address Channel User

    AXI4 Interface Read Address Channel: Handshake Signals for FIFO Read Interface

    m_axi_arvalid Output Read Address Valid: Indicates, when HIGH, that the read addressand control information is valid and will remain stable until theaddress acknowledge signal, arready, is high.

    • 1 = Address and control information valid.• 0 = Address and control information not valid.

    m_axi_arready Input Read Address Ready: Indicates that the slave is ready to acceptan address and associated control signals:

    • 1 = Slave ready.• 0 = Slave not ready.

    The following table defines the AXI4 FIFO interface signals for the Read Data Channel.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 32Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=32

  • Table 15: AXI4 Read Data Channel FIFO Interface Signals

    Name Direction DescriptionAXI4 Interface Read Data Channel: Information Signals Mapped to FIFO Data Output (dout) Bus

    s_axi_rid[m:0] Output Read ID Tag: ID tag of the read data group of signals. The RIDvalue is generated by the slave and must match the ARID value ofthe read transaction to which it is responding.

    s_axi_rdata[m-1:0] Output Read Data: Can be 8, 16, 32, 64, 128, 256 or 512 bits wide.

    s_axi_rresp[1:0] Output Read Response: Indicates the status of the read transfer. Theallowable responses are OKAY, EXOKAY, SLVERR, and DECERR.

    s_axi_rlast Output Read Last: Indicates the last transfer in a read burst.

    s_axi_ruser[m:0] Output Read Data Channel User

    AXI4 Interface Read Data Channel: Handshake Signals for FIFO Read Interface

    s_axi_rvalid Output Read Valid: Indicates that the required read data is available andthe read transfer can complete:

    • 1 = Read data available.• 0 = Read data not available.

    s_axi_rready Input Read Ready: Indicates that the master can accept the read dataand response information:

    • 1= Master ready.• 0 = Master not ready.

    AXI4 Interface Read Data Channel: Information Signals Derived from FIFO Data Input (din) Bus

    m_axi_rid[m:0] Input Read ID Tag: ID tag of the read data group of signals. The RIDvalue is generated by the slave and must match the ARID value ofthe read transaction to which it is responding.

    m_axi_rdata[m-1:0] Input Read Data: Can be 8, 16, 32, 64, 128, 256 or 512 bits wide.

    m_axi_ rresp[1:0] Input Read Response: Indicates the status of the read transfer. Theallowable responses are OKAY, EXOKAY, SLVERR, and DECERR.

    m_axi_rlast Input Read Last: Indicates the last transfer in a read burst.

    m_axi_ruser[m:0] Input Read Data Channel User

    AXI4 Interface Read Data Channel: Handshake Signals for FIFO Write Interface

    m_axi_rvalid Input Read Valid: Indicates that the required read data is available andthe read transfer can complete:

    • 1 = Read data available.• 0 = Read data not available.

    m_axi_rready Output Read Ready: Indicates that the master can accept the read dataand response information:

    • 1= Master ready.• 0 = Master not ready.

    AXI4 Read Data Channel FIFO: Optional Sideband Signals

    injectsbiterr_rdch Input Injects a single bit error if the ECC feature is used.

    injectdbiterr_rdch Input Injects a double bit error if the ECC feature is used.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 33Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=33

  • Table 15: AXI4 Read Data Channel FIFO Interface Signals (cont'd)

    Name Direction Descriptionsbiterr_rdch Output Single Bit Error: Indicates that the ECC decoder detected and

    fixed a single-bit error.

    dbiterr_rdch Output Double Bit Error: Indicates that the ECC decoder detected adouble-bit error and data in the FIFO core is corrupted.

    wr_data_count_rdch[d:0] Output Write Data Count: This bus indicates the number of wordswritten into the FIFO. The count is guaranteed to neverunderreport the number of words in the FIFO, to ensure younever overflow the FIFO. The exception to this behavior is when awrite operation occurs at the rising edge of write clock, that writeoperation will only be reflected on wr_data_count at the nextrising clock edge. D = log2(FIFO depth)+1

    rd_data_count_rdch[d:0] Output Read Data Count: This bus indicates the number of wordsavailable for reading in the FIFO. The count is guaranteed tonever over-report the number of words available for reading, toensure that you do not underflow the FIFO. The exception to thisbehavior is when the read operation occurs at the rising edge ofread clock, that read operation is only reflected on rd_data_countat the next rising clock edge. D = log2(FIFO depth)+1

    prog_full_rdch Output Programmable Full: This signal is asserted when the number ofwords in the FIFO is greater than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOis less than the programmable threshold.

    prog_empty_rdch Output Programmable Empty: This signal is asserted when the numberof words in the FIFO is less than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOexceeds the programmable threshold.

    AXI4-Lite FIFO Interface Signals

    Write Channels

    The following table defines the AXI4-Lite FIFO interface signals for the Write Address Channel.

    Table 16: AXI4-Lite Write Address Channel FIFO Interface Signals

    Name Direction DescriptionAXI4-Lite Interface Write Address Channel: Information Signals Mapped to FIFO Data Input (din) Bus

    s_axi_awaddr[m:0] Input Write Address: Gives the address of the first transfer in a writeburst transaction. The associated control signals are used todetermine the addresses of the remaining transfers in the burst.

    s_axi_awprot[3:0] Input Protection Type: Indicates the normal, privileged, or secureprotection level of the transaction and whether the transaction isa data access or an instruction access.

    AXI4-Lite Interface Write Address Channel: Handshake Signals for FIFO Write Interface

    s_axi_awvalid Input Write Address Valid: Indicates that valid write address andcontrol information are available:

    • 1 = Address and control information available.• 0 = Address and control information not available.The address and control information remain stable until theaddress acknowledge signal, AWREADY, goes high.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 34Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=34

  • Table 16: AXI4-Lite Write Address Channel FIFO Interface Signals (cont'd)

    Name Direction Descriptions_axi_awready Output Write Address Ready: Indicates that the slave is ready to accept

    an address and associated control signals:

    • 1 = Slave ready.• 0 = Slave not ready.

    AXI4-Lite Interface Write Address Channel: Information Signals Derived from FIFO Data Output (dout) Bus

    m_axi_awaddr[m:0] Output Write Address: Gives the address of the first transfer in a writeburst transaction. The associated control signals are used todetermine the addresses of the remaining transfers in the burst.

    m_axi_awprot[3:0] Output Protection Type: This signal indicates the normal, privileged, orsecure protection level of the transaction and whether thetransaction is a data access or an instruction access.

    AXI4-Lite Interface Write Address Channel: Handshake Signals for FIFO Read Interface

    m_axi_awvalid Output Write Address Valid: Indicates that valid write address andcontrol information are available:

    • 1 = Address and control information available.• 0 = Address and control information not available.The address and control information remain stable until theaddress acknowledge signal, AWREADY, goes high.

    m_axi_awready Input Write Address Ready: Indicates that the slave is ready to acceptan address and associated control signals:

    • 1 = Slave ready.• 0 = Slave not ready.

    The following table defines the AXI4-Lite FIFO interface signals for the Write Data Channel.

    Table 17: AXI4-Lite Write Data Channel FIFO Interface Signals

    Name Direction DescriptionAXI4-Lite Interface Write Data Channel: Information Signals Mapped to FIFO Data Input (din) Bus

    s_axi_wdata[m-1:0] Input Write Data: Can be 8, 16, 32, 64, 128, 256 or 512 bits wide.

    s_axi_wstrb[m/8-1:0] Input Write Strobes: Indicates which byte lanes to update in memory.There is one write strobe for each eight bits of the write data bus.Therefore, WSTRB[n] corresponds to WDATA[(8 × n) + 7:(8 × n)].For a 64-bit DATA, bit 0 corresponds to the least significant byteon DATA, and bit 7 corresponds to the most significant byte. Forexample:

    • STROBE[0] = 1b, DATA[7:0] is valid• STROBE[7] = 0b, DATA[63:56] is not valid

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 35Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=35

  • Table 17: AXI4-Lite Write Data Channel FIFO Interface Signals (cont'd)

    Name Direction DescriptionAXI4-Lite Interface Write Data Channel: Handshake Signals for FIFO Write Interface

    s_axi_wvalid Input Write Valid: Indicates that valid write data and strobes areavailable:

    • 1 = Write data and strobes available.• 0 = Write data and strobes not available.

    s_axi_wready Output Write Ready: Indicates that the slave can accept the write data:

    • 1 = Slave ready.• 0 = Slave not ready.

    AXI4-Lite Interface Write Data Channel: Information Signals Derived from FIFO Data Output (dout) Bus

    m_axi_wdata[m-1:0] Output Write Data: Can be 8, 16, 32, 64, 128, 256 or 512 bits wide.

    m_axi_wstrb[m/8-1:0] Output Write Strobes: Indicates which byte lanes to update in memory.There is one write strobe for each eight bits of the write data bus.Therefore, WSTRB[n] corresponds to WDATA[(8 × n) + 7:(8 × n)].For a 64-bit DATA, bit 0 corresponds to the least significant byteon DATA, and bit 7 corresponds to the most significant byte. Forexample:

    • STROBE[0] = 1b, DATA[7:0] is valid• STROBE[7] = 0b, DATA[63:56] is not valid

    AXI4-Lite Interface Write Data Channel: Handshake Signals for FIFO Read Interface

    m_axi_wvalid Output Write Valid: Indicates that valid write data and strobes areavailable:

    • 1 = Write data and strobes available• 0 = Write data and strobes not available

    m_axi_wready Input Write Ready: Indicates that the slave can accept the write data:

    • 1 = Slave ready.• 0 = Slave not ready.

    AXI4-Lite Write Data Channel FIFO: Optional Sideband Signals

    injectsbiterr_wdch Input Injects a single bit error if the ECC feature is used.

    injectdbiterr_wdch Input Injects a double bit error if the ECC feature is used.

    sbiterr_wdch Output Single Bit Error: Indicates that the ECC decoder detected andfixed a single-bit error.

    dbiterr_wdch Output Double Bit Error: Indicates that the ECC decoder detected adouble-bit error and data in the FIFO core is corrupted.

    wr_data_count_wdch[d:0] Output Write Data Count: This bus indicates the number of wordswritten into the FIFO. The count is guaranteed to neverunderreport the number of words in the FIFO, to ensure younever overflow the FIFO. The exception to this behavior is when awrite operation occurs at the rising edge of write clock, that writeoperation will only be reflected on wr_data_count at the nextrising clock edge. D = log2(FIFO depth)+1.

    Chapter 2: Overview

    PG327 (v1.0) July 14, 2020 www.xilinx.comEmbedded FIFO Generator 36Send Feedback

    https://www.xilinx.comhttps://www.xilinx.com/about/feedback/document-feedback.html?docType=Product_Guide&docId=PG327&Title=Embedded%20FIFO%20Generator%20v1.0%20&releaseVersion=1.0&docPage=36

  • Table 17: AXI4-Lite Write Data Channel FIFO Interface Signals (cont'd)

    Name Direction Descriptionrd_data_count_wdch[d:0] Output Read Data Count: This bus indicates the number of words

    available for reading in the FIFO. The count is guaranteed tonever over-report the number of words available for reading, toensure that you do not underflow the FIFO. The exception to thisbehavior is when the read operation occurs at the rising edge ofread clock, that read operation is only reflected on rd_data_countat the next rising clock edge. D = log2(FIFO depth)+1.

    prog_full_wdch Output Programmable Full: This signal is asserted when the number ofwords in the FIFO is greater than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOis less than the programmable threshold.

    w_prog_empty_wdch Output Programmable Empty: This signal is asserted when the numberof words in the FIFO is less than or equal to the programmablethreshold. It is deasserted when the number of words in the FIFOexceeds the programmable threshold.

    The following table defines the AXI4-Lite FIFO interface signals for the Write Response Channel.

    Table 18: AXI4-Lite Write Response Channel FIFO Interface Signals

    Name Direction DescriptionAXI4-Lite Interface Write Response Channel: Information Signals Mapped to FIFO Data Output (dout) Bus

    s_axi_bresp[1:0] Output Write Response: Indicates the status of the write transaction.The allowable responses are OKAY, EXOKAY, SLVERR, and DECERR.

    AXI4-Lite Interface Write Response Channel: Handshake Signals for FIFO Read Interface

    s_axi_bvalid Output Write Response Valid: Indicates that a valid write response isavailable:

    • 1 = Write response available.• 0 = Write response not available.

    s_axi_bready Input Response Ready: Indicates that the master can accept theresponse information.

    • 1 = Master ready.• 0 = Master not ready.

    AXI4-Lite Interface Write Response Channel: Information Signals Derived from FIFO Data Input (din) Bus

    m_axi_bresp[1:0] Input Write response: Indicates the status of the writ