1. A memory cell circuit, comprising: a memory cell having a source terminal, a drain terminal, and a gate terminal; a current source coupled to the source terminal of the memory cell; and circuitry for programming the memory cell at an adaptive rate, based on a target voltage for programming, using a feedback loop between the gate terminal of the memory cell and a reference control input.