This document describes the design and verification of a generic first-in first-out (FIFO) buffer using SystemVerilog. It outlines the high-level architecture of the FIFO, including parameterized data buffers and widths, status flags, and a synchronous reset. The functional verification is done using assertion-based techniques. A testbench is created with a transactor module to generate random push/pop transactions and assess the FIFO's behavior through simulation and assertion checks. The results demonstrate the FIFO operates correctly under different scenarios.