Adaptive write operations for non-volatile memories select programming
parameters according to monitored programming performance of individual
memory cells. In one embodiment of the invention, programming voltage for
a memory cell increases by an amount that depends on the time required to
reach a predetermined voltage and then a jump in the programming voltage
is added to the programming voltage required to reach the next
predetermined voltage. The adaptive programming method is applied to the
gate voltage of memory cells; alternatively, it can be applied to the
drain voltage of memory cells along a common word line. A circuit
combines the function of a program switch and drain voltage regulator,
allowing independent control of drain voltage of selected memory cells
for parallel and adaptive programming. Verify and adaptive read
operations use variable word line voltages to provide optimal biasing of
memory and reference cells during sensing.