FIFO - 128 Bit Memory Interface Reference
- Updated2025-09-11
- 4 minute(s) read
This memory interface provides an easy-to-use FIFO interface to external DRAM. The FIFO is exposed as separate read and write interfaces. Both the write-side and read-side data ports are 128-bit data words.
Signals for Writing to the FIFO
The following table lists the write-side I/O provided by the FIFO - 128 Bit memory interface.
| Memory Interface I/O | Data Type | To Memory/From Memory | Description |
|---|---|---|---|
| Full | Bool | From memory | This signal is TRUE when data cannot be written into the FIFO. |
| Write_Data_Upper | U64 | To memory | The upper 64 bits of the data to write into the FIFO. |
| Write_Data_Lower | U64 | To memory | The lower 64 bits of the data to write into the FIFO. |
| Write | Bool | To memory | Set signal to TRUE to place data from the Write_Data_Upper and Write_Data_Lower into the FIFO. Do not set Write to TRUE when Full is TRUE, as this leads to undefined behavior. |
Signals for Reading from the FIFO
The following table lists the read-side I/O provided by the FIFO - 128 Bit memory interface.
| Memory Interface I/O | Data Type | To Memory/From Memory | Description |
|---|---|---|---|
| Data_Available | Bool | From memory | This signal is TRUE when the values in Read_Data_Upper and Read_Data_Lower are valid and may be read. |
| Read_Data_Upper | U64 | From memory | The upper 64 bits of the data to read from the FIFO. Read_Data_Upper is valid only when Data_Available is TRUE. |
| Read_Data_Lower | U64 | From memory | The lower 64 bits of the data to read from the FIFO. Read_Data_Lower is valid only when Data_Available is TRUE. |
| Read | Bool | To memory | Set this signal to TRUE to read data from Read_Data_Upper and Read_Data_Lower out of the FIFO. Do not set Read to TRUE when Data_Available is FALSE, as this leads to undefined behavior. |
The write-side interface Full signal is TRUE when data cannot be added into the FIFO. If the Full signal is low, you can write into the FIFO by driving the Write_Data_Upper and Write_Data_Lower signals with your data and setting the Write signal to TRUE. Do not set the Write signal to TRUE when Full is TRUE, as this will lead to undefined behavior.
When read-side data on the Read_Data_Upper and Read_Data_Lower lines is available to be read, the Data_Available signal will be TRUE. After this data is read, set the Read signal to TRUE. Do not set the Read signal to TRUE when Data_Available is FALSE, as this will lead to undefined behavior.
The FIFO - 128 Bit memory interface is designed to simultaneously and continuously read and write data at speeds up to 40 MHz. It is possible to access the interface at up to 200 MHz, however, at speeds greater than 40 MHz, the Full and Data_Available signals may temporarily become TRUE and FALSE, respectively (stalling access to the FIFO).
DRAM Examples
LabVIEW contains example VIs that read and write to the FIFO memory interface for FlexRIO devices and other devices. The main interface for the PXIe-5641R is similar to the interface found on the FlexRIO devices. To access the Example Finder, open LabVIEW and select Help»Find Examples, then select Hardware Input and Output»FlexRIO. The PXIe-5641R and the FlexRIO interfaces differ in terms of the bit widths of the interface and the maximum clock rate.