I know FPGA design using VHDL and I came up some new topic recently that usage of triplication in FPGA but I am not confident about its understanding.
How can we use triplication in FPGA design and how do we verify this.
I know FPGA design using VHDL and I came up some new topic recently that usage of triplication in FPGA but I am not confident about its understanding.
How can we use triplication in FPGA design and how do we verify this.
Triplication means (as noted) to make 3 of everything.
It is used in space and safety critical designs, and data results are voted; a disagreement in the vote has to be designed such that the erroneous result circuit is reset. For this to work within a single device, partial reconfiguration in the FPGA is required.
The reason this is necessary in SRAM based FPGA devices is that they are susceptible to single event effects (such as SEUs) which can flip a configuration bit from 0 to 1 or vice versa and therefore changing the effective circuit.
SEUs are caused primarily by high energy free neutrons and cosmic radiation (in space applications) although the lead in SnPb solder (in particular those on BGA devices) can also emit alpha particles as some of the lead is \$Pb ^{210}\$ which decays via \$Bi^{210}\$ and \$Po^{210}\$ to \$Pb^{206}\$ (Uranium decay chain) which is the stable state for lead.
Flash based devices are immune to configuration state changes from free neutrons although they can be susceptible to X-Ray, and the data path can be protected by parity or ECC.
Configuration CRC readback is also available for newer devices.
The implementation is vendor specific; Xilinx has an excellent application note on the subject.
Adam Taylor has a how to guide.