DexterLab

🚨 New downloadable modules coming soon🛠️ First synthesizable modules: LFSR/PRBS, CRC, SPI/I²C/UART🛠️ Advanced testbenches and equalization models in development🛠️ Complete simulation environments coming soon

AXI4‑Stream FIFO

A parameterizable FIFO buffer for AXI4‑Stream interfaces, supporting backpressure, flow control, and optional packet‑level handling.
Useful in pipelines where rate adaptation, decoupling, or burst absorption is required.

1. Overview

Purpose
Provide temporary storage between AXI4‑Stream producer and consumer, enabling decoupling of timing and throughput.

Use Cases

  • DSP pipelines
  • decoupling between modules with different latencies
  • burst absorption
  • clock‑synchronous buffering
  • flow‑control smoothing

2. Interface Description

2.1 Port List

SignalDirectionWidthDescription.
s_axix_tdataInDATA_WIDTHInput data dtream
s_axis_tvalidIn1Input data valid
s_axis_treadyOut1FIFO ready to accept data
s_axis_tlastIn1Packet boundary indicator (optional)
m_axis_tdataOutDATA_WIDTHOutput data stream
m_axis_tvalidOut1Output data valid
m_axis_treadyIn1Downsteram ready
m_axis_tlastOut1Packet boundary indicator (optional)
clkIn1Clock
rstIn1Synchronous reset

Timing & Handshake Behavior

  • standard AXI4‑Stream valid/ready handshake
  • backpressure applied when FIFO is full
  • zero‑latency pass‑through when empty
  • optional TLAST propagation
  • throughput = 1 sample per cycle (when not stalled)

3. Parameters & Configurability

  • DATA_WIDTH — width of the data bus
  • DEPTH — number of FIFO entries
  • USE_TLAST — enable/disable TLAST handling
  • ALMOST_FULL_LEVEL — threshold for early backpressure

4. Internal Architecture

  • circular buffer implemented with RAM or registers
  • write pointer / read pointer
  • occupancy counter
  • optional TLAST side‑buffer
  • combinational pass‑through when empty

5. Implementation Notes

  • synchronous reset recommended
  • DEPTH should be power‑of‑two for pointer wrapping
  • TLAST requires parallel storage if enabled
  • synthesis tools infer BRAM for large DEPTH
  • avoid DEPTH=1 (degenerate case)

6. Verification Strategy

  • constrained‑random stimulus
  • backpressure scenarios
  • burst tests
  • TLAST propagation tests
  • full/empty boundary conditions
  • assertions on handshake protocol

7. Integration Guidelines

  • ensure downstream module handles backpressure correctly
  • set DEPTH based on worst‑case burst size
  • align DATA_WIDTH with upstream/downstream modules
  • TLAST must be enabled only if used in the pipeline

8. Revision History

VersionDateAuthorNotes
1.020260206VincenzoInitial Version