Logic synthesis by signal-driven decomposition