I. Introduction
The true random number generator (TRNG) has an important role in many cryptographic systems, including password generation, authentication protocol, key generation, random padding and digital image encryption [1], [2]. In addition, true random numbers have important applications in numerical calculations, statistical simulations, random sampling and quantum key distribution. The performance metrics of TRNGs include throughput, hardware resource consumption, and random number statistics. TRNGs strictly meet the statistical requirements, and unpredictability, and use random physical processes as entropy sources to generate random numbers. Entropy sources include thermal noise, the metastable state [3], clock jitter [4], chaos [5], and Magnetic Tunnel Junction (MTJ) [6], [7], [8]. If the randomness of the original random bitstream is not good, post-processing operations, such as Von Neumann correction or introducing a hash function, are needed to improve the randomness.