A Satisfiability Algorithm for Synchronous Boolean Circuits