A method for specifying and synthesizing a synchronous digital circuit by first
accepting a specification of an asynchronous system in which stored values are
updated according to a set of state transition rules. For instance, the state transition
rules are specified as a Term Rewriting System (TRS) in which each rule specifies
a number of allowable state transitions, and includes a logical precondition on
the stored values and a functional specification of the stored values after a state
transition in terms of the stored values prior to the state transition. The specification
of the asynchronous circuit is converted into a specification of an synchronous
circuit in which a number of state transitions can occur during each clock period.
The method includes identifying sets of state transitions, for example by identifying
sets of TRS rules, that can occur during a single clocking period and forming the
specification of the synchronous circuit to allow any of the state transitions
in a single set to occur during any particular clocking period.