Developing Variation Aware Simulation Tools, Models, And Designs For Stt-Ram