I sell OneRNGs (currently out of stock more coming soon) that use a version of it, however SMT 2N3904s have been EOL'd, next generation will need to use something different (probably a zener)
I sell OneRNGs (currently out of stock more coming soon) that use a version of it, however SMT 2N3904s have been EOL'd, next generation will need to use something different (probably a zener)
The Zener diodes are designed so that avalanche breakdown happens in a controlled location, in the bulk of the silicon crystal, so it can be sustained for decades without any changes in behavior.
The avalanche breakdown of the emitter junction of most bipolar transistors is not a controlled mode of operation and it happens in some random location, normally at the external surface of the silicon crystal.
While a Zener diode is designed so that the avalanche current is spread over a large area, to avoid local overheating, in the bipolar transistor the avalanche current may become concentrated in a very small spot, so that the current density can become very high, despite the fact that the current is limited to a very small value by the external resistor.
The small spot where the current is concentrated can become very hot, even up to causing the melting of the crystal. The initial avalanche path may become either insulating or equivalent with a resistor with a very high value in parallel with the junction.
Then the avalanche breakdown will move to another spot on the periphery of the emitter junction, and the cycle will repeat.
This leads to slow fluctuations in the breakdown voltage of the transistor emitter junction and in the amplitude of the noise during the lifetime of the device, which leads to a time-dependent statistical bias of the random bits.
In rare cases, after a long time of use, the reverse-biased emitter junction can become completely resistive, in which case it will still generate thermal noise, but this noise has a lower amplitude than the initial avalanche noise. If the amplifier does not have a gain high enough, the noise may become unable to flip the output gate most of the time, leading to a strong bias in the output.
If the hardware random bits are used only as an input to a secure hash function, then the not-ideal properties of the hardware RNG should not influence the output, as long as the bias of the random bits does not become so extreme as to cause a non-negligible probability of identical bit strings occurring as inputs to the hash.
Also, the schematic with 74ALS04 is quite dated, as such legacy integrated circuits, which have not been used for many decades in new designs, may be hard to find.
If 74ALS04 would be replaced with modern ICs, some changes would be necessary.
Reproducing the schematic with equivalent CMOS gates is dangerous, because the CMOS gates biased into the linear mode of operation have a very high power consumption and they may latch-up, short-circuiting the power supply.
There are many ICs with multiple fast operational amplifiers in a package, which are better suited and safer for the amplifier stages.
Also using a standard CMOS gate at the output would be dangerous. It is much safer to use a Schmitt-trigger gate. Such Schmitt-trigger gates can be found in packages with a single gate that are no bigger than a transistor.
If the noise generator would be used with a microcontroller, then the output gate would normally not be needed, because most microcontrollers have Schmitt-trigger inputs on their GPIO pins.
But how exactly "using a standard CMOS gate at the output would be dangerous"? Because of not providing good zeros an ones, with sharp fronts? High power consumption?
I also do not remember that microcontrollers datasheet explicitly specfied that inputs a Schmitt-triggered. The may be, but I have vague recollection of AVR 90S2313 consuming more than needed power when fed with analog signal on a digital pin.
The output of the noise amplifier is quick aperiodic oscillation centered on a value that is not a valid logic level. There is no guarantee about how fast will be the transition times between the logic low and high levels.
For a gate with Schmitt-trigger input, it does not matter whether the inputs have valid logic levels or not.
On the other hand, for any standard CMOS logic gate, there is a maximum time during which the input is allowed to be not valid. If that maximum time is exceeded, then there are no guarantees about the power consumption of the gate and there are no guarantees that latch-up (an internal thyristor short-circuiting the power supply) cannot happen (in normal operation, only one of the two transistors of a CMOS inverter is on, while the other is off, so only leakage currents are consumed; when the input is invalid, both transistors are on and an unpredictable current passes through them; the time while the input is invalid must be limited, so that the transistors will not overheat).
Of course you may be lucky and nothing wrong will happen when a certain CMOS gate will have an invalid logic level at input. However, such a schematic would never be acceptable for a product made in large quantities, because it is unpredictable how many will fail and when they will fail. Moreover, if such a schematic would be used with a power supply that does not have overcurrent protection, it could even be a safety hazard.
The older bipolar gates like 74ALS04 do not have this problem, but their more modern replacements, like 74HC04 or 74LVC04, must be used as in their specifications, they are much less forgiving of being used in undocumented ways.
Well, the earliest quoted article is from 1995 :)
Can't you use the MMBT3904? DigiKey has several active suppliers of that (in SOT-23, as well as other packages).
Another option: characterize a bunch of different vendors, then selectively populate resistors for proper biasing based on test results from each vendor.
What are you tuning? The bias resistor?
Edit: wow you can do even better than I thought. You could get 30k MMBTs for $500!!
https://www.digikey.com/en/products/detail/diodes-incorporat...
If you're making small runs buying a reel that doesn't work is a risk, I've already made the decision to switch to using a zener for the next production run
Happy to show you what I mean with a quick sch sample if you give me a contact email. My email is the same as my username but at Gmail.
Only mention this because:
- MMBTs are dirt cheap,
- they’re even cheaper when you buy at qty, and your device uses three, whereas you’d only have a single zener and single MMBT otherwise.
End of the day, though - your board, your design, your decision.