von Neumann Corrector

nRF5340 Product Specification

The von Neumann Corrector (VNC) is designed to balance the succession of '1' and '0' bits being output by the TRNG noise source.

The input bits to the VNC is tested for bit equality, meaning a sequence of 32 consequtive bits with the same bit value will trigger event VNC_ERR_INT in register RNG_ISR.

If no error event is triggered, the input bits will be balanced using the VNC as shown in the figure below, and the resulting output bits will be subjected to additional TRNG tests. The VNC produce output only if the noise source is active, see register NOISE_SOURCE.

Figure 5. CRYPTOCELL von Neumann corrector

CRYPTOCELL von Neumann corrector

The VNC statistically output one bit for each 4 input bits sampled, meaning the average output rate of the TRNG is 1/(SAMPLE_CNT * 4) bits per CPU clock cycle.