What are the configuration programming differences between antifuse, flash, and SRAM-based FPGAs?
Antifuse-based field-programmable gate arrays (FPGAs) use one-time programmable elements called antifuses because they form a conductive path between two points. The FPGA configuration pattern is programmed into the antifuses, which are tightly integrated into the FPGA logic fabric. Once programmed, antifuses permanently retain their programmed state and cannot be reprogrammed, so the logic configuration on the FPGA is permanently set.
Flash-based FPGAs store their configuration patterns on the same chip as the programmable logic structures by using nonvolatile electrically reprogrammable storage cells that can be programmed, erased, and reprogrammed if desired. In contrast, SRAM-based FPGAs hold (as long as power is applied) their configuration patterns in on-chip static RAM (SRAM). Consequently, the SRAM-based FPGAs require an off-chip source such as a separate nonvolatile memory chip or a host computer that can transfer the configuration data into the SRAM-based logic cells when the system powers up. The contents of the SRAM cells can be reloaded to change the logic configuration of the FPGA.