Minimizing and exploiting leakage in VLSI