Razor: A Variability-Tolerant Design Methodology for Low-Power and Robust Computing.