Precision programming circuit for analog neural memory in deep learning artificial neural network
Various embodiments of high voltage generation circuits, high voltage operational amplifiers, adaptive high voltage supplies, adjustable high voltage incrementor, adjustable reference supplies, and reference circuits are disclosed. These circuits optionally can be used for programming a non-volatile memory cell in an analog neural memory to store one of many possible values.
1. An adjustable programming circuit for generating one of a plurality of different voltages to program a non-volatile memory cell to store one of a plurality of different voltages on a floating gate of the non-volatile memory cell for a neural network, comprising:
an operational amplifier comprising a first input terminal, a second input terminal, and an output terminal, the first input terminal receiving a reference voltage;
a first resistor coupled to the second input terminal of the operational amplifier;
a second resistor coupled to the second input terminal of the operational amplifier and the output terminal of the operational amplifier;
wherein one of the first resistor and the second resistor is a variable resistor;
wherein the output terminal outputs a programming voltage that varies in response to a setting of the variable resistor to generate one of a plurality of different voltages.
2. The adjustable programming circuit of claim 1 , wherein the first resistor is the variable resistor.
3. The adjustable programming circuit of claim 1 , wherein the second resistor is the variable resistor.
4. The adjustable programming circuit of claim 1 , wherein the first resistor is the variable resistor operating in a low voltage domain.
5. The adjustable programming circuit of claim 1 , wherein the second resistor is the variable resistor operating in a high voltage domain.
6. The adjustable programming circuit of claim 1 , wherein a high voltage supply for the operational amplifier is adaptable basing on the operational amplifier output voltage.
7. The adjustable programming circuit of claim 1 , wherein the non-volatile memory cell is a stacked-gate memory cell.
8. The adjustable programming circuit of claim 1 , wherein the non-volatile memory cell is a split-gate memory cell.
9. A method comprising:
generating, by an adjustable programming circuit, one of a plurality of different voltages, the adjustable programming circuit comprising: (i) an operational amplifier comprising a first input terminal, a second input terminal, and an output terminal, the first input terminal receiving a reference voltage, (ii) a first resistor coupled to the second input terminal of the operational amplifier, and (iii) a second resistor coupled to the second input terminal of the operational amplifier and the output terminal of the operational amplifier, wherein one of the first resistor and the second resistor is a variable resistor, wherein the output terminal outputs a programming voltage that varies in response to a setting of the variable resistor to generate the one of a plurality of different voltages; and
programming a non-volatile memory cell using the one of a plurality of different voltages to store one of a plurality of different voltages on a floating gate of the non-volatile memory cell for a neural network.
10. The method of claim 9 , wherein the first resistor is the variable resistor.
11. The method of claim 9 , wherein the second resistor is the variable resistor.
12. The method of claim 9 , wherein the first resistor is the variable resistor operating in a low voltage domain.
13. The method of claim 9 , wherein the second resistor is the variable resistor operating in a high voltage domain.
14. The method of claim 9 , wherein a high voltage supply for the operational amplifier is adaptable basing on the operational amplifier output voltage.
15. The method of claim 9 , wherein the non-volatile memory cell is a stacked-gate memory cell.
16. The method of claim 9 , wherein the non-volatile memory cell is a split-gate memory cell.