To write data to the FIFO, present the data to be written and assert the write enable. At the next rising edge of the clock, the data will be written. For every rising edge of the clock that the write enable is asserted, a piece of data is written into the FIFO. If the FIFO has data in it, the value at the head of the FIFO is present on the FIFO data output. To read data from the FIFO, assert the read enable. At the next rising edge of the clock, capture the data output the FIFO will subsequently advance to the next piece of data stored in the FIFO.