1. A computer-implemented method for communicating between programs executing respectively on a controller and a programmable hardware element, the method comprising: creating a first graphical program in response to first user input, wherein the first graphical program comprises a first plurality of interconnected nodes that visually indicate functionality of the first graphical program, wherein the first graphical program includes a first node that represents a direct memory access (DMA) structure; creating a second graphical program in response to second user input, wherein the second graphical program comprises a second plurality of interconnected nodes that visually indicate functionality of the second graphical program, wherein the second graphical program includes a second node that provides an interface to the DMA structure; deploying the first graphical program to the programmable hardware element; deploying the second graphical program to the controller; wherein the first graphical program and the second graphical program are executable to communicate via the DMA structure to cooperatively perform a specified task.