I need a CRIO RT controller to select one of several FPGA VIs (or bitfiles) at runtime based on an operating mode parameter.
The application requires the FPGA to acquire and process data using several different techniques based on a user supplied mode parameter. Each individual technique will fit into the FPGA, but there is not enough room to fit all of the techniques into the FPGA at the same time. Therefore, I need a way to programmatically select one of the FPGA VIs or bitfiles at runtime. The processed data is transferred to the RT through a common DMA FIFO, and all controls and I/O can be the same for each of the VIs.
I tried using a Case Structure on the RT to select the appropriate Open FPGA VI Reference call based on the current operating mode. When I wired the RefNum output from each case to the common output tunnel, I got an error stating that the RefNums were of different types.
I then tried binding the Open FPGA VI Reference calls to TypeDef or StrictTypeDef controls. In both cases there was an error stating that some of the Open FPGA VI Reference calls were bound to a TypeDef control which had changed.
Is it possible to select an FPGA VI or bitfile at runtime?
If not, is there a way to force the FPGA compiler to layout multiple VIs with the same interface structure so that the RT VI doesn't care which version is running?
If not, any suggestions short of duplicating the entire RT VI for each FPGA instance?
Thanks!