FIFO - 64 Bit Memory Interface
- Updated2025-01-23
- 4 minute(s) read
This memory interface provides the easiest-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 64-bit data words.
Signals for Writing to the FIFO
The following table lists the write-side I/O provided by the FIFO - 64 Bit memory interface.
| Memory Interface I/O | Data Type | To Memory/From Memory | Description |
|---|---|---|---|
| Full | Bool | From memory |
TRUE = Indicates that the FIFO is full and that no data can be written to it. FALSE = Indicates that the FIFO is not full and that data can written to it. |
| Write_Data_Upper | U32 | To memory | Sets the upper 32 bits of the data to write into the FIFO. |
| Write_Data_Lower | U32 | To memory | Sets the lower 32 bits of the data to write into the FIFO. |
| Write | Bool | To memory |
TRUE = Transfers data from the Write_Data_Upper and Write_Data_Lower signals into the FIFO. FALSE = Transfers no data to the FIFO. Note Do not set the Write signal to TRUE
when the Full signal is TRUE.
|
Signals for Reading from the FIFO
The following table lists the read-side I/O provided by the FIFO - 64 Bit memory interface.
| Memory Interface I/O | Data Type | To Memory/From Memory | Description |
|---|---|---|---|
| Data_Available | Bool | From memory |
TRUE = Indicates that the values in the Read_Data_Upper and Read_Data_Lower signals are valid and may be read. FALSE = Indicates that the values in the Read_Data_Upper and Read_Data_Lower signals are invalid and may not be read yet. |
| Read_Data_Upper | U32 | From memory | Displays the upper 32 bits of the data to read from the FIFO. This signal is valid only when the Data_Available signal is TRUE. |
| Read_Data_Lower | U32 | From memory | Displays the lower 32 bits of the data to read from the FIFO. This signal is valid only when the Data_Available signal is TRUE. |
| Read | Bool | To memory |
TRUE = Reads data from the Read_Data_Upper and Read_Data_Lower signals out of the FIFO. FALSE = Does not read any data from the FIFO. Note Do not set the Read signal to TRUE when the
Data_Available signal is
FALSE.
|
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 data 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 because this condition leads 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 is 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 because this condition leads to undefined behavior.
The FIFO - 64 Bit memory interface requires you to define the clock domains of the single-cycle Timed Loop from which the read-side and write-side interfaces are accessed. Configure these interfaces using the Clock Selections property page for the corresponding DRAM bank item in the LabVIEW project. Configure the Input_Clock signal to be driven with the LabVIEW FPGA clock resource which you are using to clock the single-cycle Timed Loop that is accessing the write-side interface. Likewise, configure the Output_Clock signal to be driven with the LabVIEW FPGA clock resource that you are using to clock the single-cycle Timed Loop that is accessing the read-side interface.
The FIFO - 64 Bit memory interface is designed to simultaneously read and write data at speeds up to 40 MHz. It is possible to run the interface up to 200 MHz. However, at speeds greater than 40 MHz, the Full and Data_Available signals may temporarily become TRUE and FALSE, respectively.
LabVIEW contains example VIs that read and write to the FIFO - 64 Bit memory interface. To access the NI Example Finder, open LabVIEW and select , then select Hardware Input and . You can also access device-specific examples by selecting Add device from the Hardware pull-down menu in the NI Example Finder.