1. A method of driving a write data value to a multi-level variable resistive memory device, the method comprising: reading resistance of reference cells; applying a write current to a variable resistive memory cell to change an actual resistance of the variable resistive memory cell; verifying whether the actual resistance resides in an intended resistance window associated with the write data value and generating verification results, the resistance of the reference cells, wherein the resistance window is defined in relation to a first reference resistance and a second reference resistance; varying the amount of the write current in accordance with the verification results, and then re-applying the varied write current to the variable resistive memory cell and iteratively applying the write current, verifying of the actual resistance, and varying the amount of write current and reapplication of the varied write current until the verification results indicate that the actual resistance resides in the intended resistance window as defined by the first and second reference resistances, wherein a magnitude of change for the varying of the amount of write current gradually decreases over a number of iterations.