beeflobill
Member level 3
We have the idea of a setup timing constraint between two signals which defines the minimum time which one signal must be stable before another signal changes, and we have the idea of a hold timing constraint between two signals which defines the minimum time a signal must remain stable after another signal changes.
This all seems to be very clear when discussing synchronous circuitry, but when defining setup and hold constraints on asynchronous circuitry, it starts to become confusing trying to decide which timing constraints should be "holds" and which ones should be "setups". It seems that the decision may go either way depending on the thinking of the designer.
Wouldn't it be easier if the concept of "hold times" was discarded and every timing constraint was simply defined as a setup constraint? Is there a reason beside convention for having the concept of hold times?
This all seems to be very clear when discussing synchronous circuitry, but when defining setup and hold constraints on asynchronous circuitry, it starts to become confusing trying to decide which timing constraints should be "holds" and which ones should be "setups". It seems that the decision may go either way depending on the thinking of the designer.
Wouldn't it be easier if the concept of "hold times" was discarded and every timing constraint was simply defined as a setup constraint? Is there a reason beside convention for having the concept of hold times?