Using DRAM (FPGA Module)

FlexRIO Help

Edition Date: November 2015

Part Number: 372614J-01

»View Product Info

»Download the Help in ZIP Format

Some FPGA targets contain onboard dynamic random access memory (DRAM) that you can access directly from the FPGA VI. LabVIEW supports two types of DRAM interface:

  • FPGA memory items—Use the memory item interface in the project to use DRAM in the same way you use block memory and LUT. DRAM memory items appear in the Project Explorer window under the FPGA target.
  • Socketed CLIP—Use the CLIP interface in the project to communicate directly with onboard DRAM. Socketed CLIP lists all memory interfaces that are compatible with the selected DRAM bank item.

Most FPGA applications using DRAM can take advantage of the usability and VHDL optimization that the FPGA memory item interface provides. However, you can still use the socketed CLIP interface for access to raw addresses using I/O signals. You cannot use both FPGA memory items and socketed CLIP to access the same DRAM bank in a VI. You cannot use VI-defined memory items to configure DRAM.

Determining Whether DRAM is Available

Complete the following steps to determine whether DRAM is available for your target.

  1. Display the Project Explorer window.
  2. Right-click the FPGA target and select Properties.
  3. If DRAM is available for your target, DRAM Properties displays in the Category list on the left side of the dialog box.
Note  If DRAM is not available for your target, the Memory Properties dialog box does not list DRAM as an option under the Implementation pull-down menu.

Partitioning the Physical DRAM into Multiple Memory Items

You can use the FPGA memory item interface to partition the physical DRAM banks available on a target into multiple memory items. Use the Memory Properties dialog box to create and configure memory partitions on a DRAM bank. For example, if a target has two physical DRAM banks, you could partition one bank into three different memories and the other bank into five memories, as shown below. LabVIEW treats each memory independently of each other.

After you create the memory partitions, you must configure the arbitration between partitions in the same DRAM bank using the DRAM Properties page of the FPGA Target Properties dialog box.

Arbitrating Access to the DRAM Bank

If you partition the DRAM into multiple memory items, you can configure the amount of time LabVIEW grants to each partition. By default, LabVIEW grants equal time to all partitions. This DRAM arbiter is not the same arbiter that arbitrates between different requestors of the same shared resource.

Specify the time to grant each partition in the DRAM Properties page of the FPGA Target Properties dialog box. LabVIEW grants time to each partition using round robin scheduling.

Understanding Latency and DRAM

Access to DRAM involves some non-deterministic latency. To compensate for this latency, use the Request Data and Retrieve Data methods to read data from DRAM. You can queue multiple requests for data using the Request Data method and retrieve requested data using the Retrieve Data method. The DRAM returns requested data when you indicate you are ready to receive it using handshaking signals.

To optimize DRAM performance, send requests for data or write data to the DRAM in bursts, such as on each clock cycle.

Data Communication Methods Home


Not Helpful