A fault-analysis oriented re-design and cost-effectiveness evaluation methodology for error tolerant applications. (August 2017)