A self-checking cell logic block for fault tolerant FPGAs