A method of considering circuit timing requirements during the circuit design
process,
comprising receiving a clock cycle-time constraint; receiving delay characteristics
of hardware resources from a macrocell library; receiving an operation, an alternative
clock cycle associated with said operation and an alternative hardware resource
associated with said operation; and determining validity of the received alternative
with respect to timing constraints using a hardware structural representation of
the program graph.