54.5.9 PUF Diagnostics

To determine the PUF quality, the PUF controller performs a statistical analysis on various aspects of the PUF, like randomness and noise. This is done during the Test PUF, Enroll, Start and Reconstruct operations, and results in a PUF score with a value from 0 to 7 that can be read in PUF Score Register after the operation successfully completes. A lower PUF score indicates a better PUF quality.

If the operation is not successful (PUF_SR.ERROR=1), the PUF score is not presented, and the register contains 0xF instead.

The PUF scores returned after Enroll (or Test PUF) give an indication of the PUF quality, while the scores after Start (or Reconstruct) provide an indication of the PUF noise level. Therefore the scores can be different.

When a high PUF score is unexpected, the system level software must determine what actions, if any, are required.