This document describes an efficient memory design for error tolerant applications. It aims to test memories, detect faults, and improve repair ability. The design uses a built-in self-repair (BISR) scheme combining built-in self-test (BIST) and built-in redundancy analysis (BIRA). BIST tests memories and sends fault information to BIRA. BIRA finds repair solutions for faulty memories. The design reduces testing time and switching activities while improving repairability.