Electronic – Can the “unknown” turn-on state of registers in digital circuit be used as seed for random number sequence

fpgarandom number

We always like to reset registers in a synchronous digital circuit just after power up so they are in a known state before device operation begins.

Pseudo random number sequences make use of a seed value. The rest of the sequence generated by the generator then relies on this seed value in a predictable way.

Is it a good idea (say in FPGA or some other device) to use the initial state of group of registers (that are never reset) as the seed value in pseudo random number sequence?

Best Answer

Though the imbalance of transistor conductivity, and the imbalance of metal_metal capacitance and metal_active capacitance, and imbalance of load capacitance, are what determine the powerup "state", these imbalances are very consistent. You will not get much randomness.

That is bad.

If you want to explore randomness, then design a clocked Comparator that initially resides in Metastability, and disrupt the Metastability with random noise from a broadband amplifier, and then CLOCK the Comparator from Track mode into Hold mode.