Thursday, 3 November 2016

timing - Setup and hold time


Of the setup and hold timing constraints which are to be met to get a stable output, which one is critical in estimating the maximum clock frequency of a circuit?



Answer



Setup time limits the fastest frequency (shortest period) for the clock. Hold time must be met to have proper operation, and any added buffers or delays to ensure hold time is met can slow the circuit below what you'd estimate from setup time. Beyond this simple rule of thumb, the upper frequency limit depends on the circuit details, and once you determine the critical path you might find ways to improve the design by changing the topology (e.g. put something in parallel, break up the combinational logic across more than one flop in the chain, as in pipelining if added latency is okay).


Another way to think about this: - Setup time relates to behavior from one clock edge to the next and data delay for a change launched on one edge settling before the next clock edge. If you have a setup time violation, you can reduce the clock rate and the circuit will function properly (assuming the clock tree is balanced reasonably well - see Tut's comment below). - Hold time can relate to behavior even on a single clock edge, in the case where a data change on one flop propagates to another flop quickly enough to violate the hold time at the next flop. When this happens the next flop latches the wrong data (the new data instead of the old). Slowing the clock rate will not help a hold time violation. To fix it you must add delay in the violating data path.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...