A programming controller is required to retrieve the new programming code from an external memory and to upload the new code into the target RT PolarFire FPGA, which is to be programmed. Some of the viable options for a programming controller include (but not limited to):
- Standalone radiation-tolerant microcontroller such as Microchip's SAMRH71F20. A reference design is available at GitHub. A demonstration video for RTG4 FPGA reprogramming is available here; a demonstration video for RT PolarFire will be provided in the later version of the document.
- Soft microprocessor IP such as RISC-V core implemented in a FPGA. A reference design using RISC-V core in RTG4 FPGA to program another RTG4 FPGA can be found in the DirectC Installer > SpaceForum.zip file. Similar principles can be applied to program an RT PolarFire FPGA by an RTG4 FPGA or by another RT PolarFire FPGA. Download the DirectC Installer. The SpaceForum.zip file can be found in the DirectC installation folder. For example, \DirectC_Suite_v1.1\JTAG-DirectC_v4.1\SpaceForum.zip. This reference design has not been updated to the latest Libero software versions.
- Other possible solutions, which include implementing a JTAG player in RTL or using a different soft processor on another FPGA. These solutions have not been tested by Microchip.