Disclosed are a non-volatile memory device and a method of programming the
same. The method comprises applying a wordline voltage, a bitline
voltage, and a bulk voltage to a memory cell during a plurality of
program loops. In cases where the bitline voltage falls below a first
predetermined detection voltage during a current program loop, or the
bulk voltage becomes higher than a second predetermined detection
voltage, the same wordline voltage is used in the current programming
loop and a next program loop following the current program loop.
Otherwise, the wordline voltage is incremented by a predetermined amount
before the next programming loop.