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 the 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 intended resistance window depending on the resistance of the reference cells; and varying the amount of the write current in accordance with the verification results, and then re-applying the write current to the variable resistive memory cell.