As we move into deeper sub-micron technologies, the complexity of pushing the circuit performance further is becoming an important obstacle. To achieve better performance, there is an increasing need for collaboration of higher level (e.g. microarchitecture-level) and circuit level optimizations. Traditionally for a computer system, applications lie at the top...