You can store and transfer data on an FPGA using FIFOs, memory items, or FPGA registers.
Use the following table to determine the best type of data storage and transfer for your application.
|Type of Data Storage or Transfer||Use Case||Additional Information|
|FIFO||Use a FIFO when you need to store multiple sequential data samples. FIFOs support lossless data transfer.||Data Transfer Using FIFOs|
|Memory Item||Use a memory item when you need to access data without respect to the sequence in which the data is written to memory. Unlike FIFOs, all units of data within a memory item are readable at any time. You can also store data in memory items prior to run time, called pre-initializing data, to use the memory as a read-only reference. Pre-initialized data can save logic resources and computation time.||Data Transfer Using Memory Items|
|FPGA Register||Use a register when you need to hold only one unit of the specified data size at one time. Data transfer using registers is often lossy, but registers consume fewer FPGA resources than FIFOs when storing equivalent sizes of data. Use registers for synchronization, handshaking, and pipelining.||Data Transfer Using FPGA Registers|