Forum Discussion
Altera_Forum
Honored Contributor
12 years agoYou only need to have a valid OpenCL kernel burned into flash once. This image can be your kernel or a pre-cooked one that is shipped with the OpenCL SDK. This is required so that the OpenCL hardware infrastructure is present in the FPGA at boot time. So once you have programmed that flash you shouldn't need to touch it unless you upgrade to later tools that requires you to do so. I'm not expecting further upgrades to require re-burning the flash but I keep my JTAG cable hooked up since I'm worried about that ribbon cable breaking if I connect and disconnect it a lot.
Once your board has been flashed then you can rely on clCreateProjectWithBinary to program any kernel you want from that point on. For that to work there has to be a valid OpenCL image in the FPGA for it to work which is why you have to burn the flash once. I hope that makes sense. If I had to compare it to a GPU it's the same reason why a GPU must have it's flash/EEPROM programmed with firmware, without it the hardware would be dead in the water at boot time.