One essential VI that you will use at the HOST VI is the Read/Write Control.vi, which allows you to read and write controls from the Front Panel of the HOST to the FPGA. For example, you may want send certain values to the transmitter, such as carrier frequency or a seed value for pseudo-random number generation. Or you may want to toggle between various types of modulation (BPSK/QPSK/PAM) for this system. All of these functions depend on the Read/Write Control.vi, which is denoted by an image of sunglasses and a pencil (as highlighted below by the green squares).
Note how Read/Write Control.vienables the HOST to control the FPGA.
Host VI Block Diagram:
At the FPGA VI:
The Read/Write Control.visends values (numerical, Boolean, etc) from the HOST to the FPGA. You may wonder, “how does the HOST tell the FPGA what to do?” You may also be curious as to how the HOST sends large quantities of data to the FPGA. The answer to both of these questions is the Invoke Method.vi.
The appearance of this VI is as follows. The name of the Method, such as “Transfer Processing”, or “Transfer AO” is surrounded by a pink background on the first row. On the second row, the type of method (read, write, start, halt, etc) is given. On the third row, ‘Element’ is used for receiving values to manipulate.
For large quantities of data, you will use Invoke Method.vito read and write data to and from the FPGA through the first in, first out (FIFO) direct memory access (DMA) buffers. Note that unlike Read/Write Control.vi, Invoke Method.vialso can be used on the FPGA VI. With Invoke Method.vi, you can transfer data through FIFOs between the HOST and FPGA (target to host/host to target, denoted in red), and between different parts of the FPGA (target-scoped, denoted in orange).
Observe how for every ‘Read’ there is a ‘Write’ and vice-versa.
Understanding the previous VIs is essential to building a communications on the IF-RIO transceiver. Once again, the files, ni5640R Analog Input and Output (HOST).vi and ni5640R Analog Input and Output (FPGA).viwill already contain most of the settings and VIs you need to build a communications system. However, whenever you want to create a new Read/Write Control.vior Invoke Method.vi, you can do so at the Project Explorer window.
At the host, between the FPGA and the HOST