This repository contains a VHDL implementation of an Asynchronous FIFO, designed to facilitate data transfer between two systems operating on different clock frequencies. The design uses gray code pointers to ensure safe synchronization across clock domains, making it ideal for clock domain crossing applications.
- Configurable data width and FIFO depth.
- Uses gray code pointers for reliable cross-domain synchronization.
- Includes a testbench to verify write/read operations and full/empty conditions.
async_fifo.vhd
: VHDL code for the Asynchronous FIFO.tb_async_fifo.vhd
: Testbench to simulate and verify the FIFO behavior.
- Compile the
async_fifo.vhd
andtb_async_fifo.vhd
files using a VHDL simulator (e.g., ModelSim, GHDL). - Run the simulation to observe the FIFO's behavior with different clock frequencies.
- Adjust the
DATA_WIDTH
andFIFO_DEPTH
generics inasync_fifo.vhd
as needed.