Timing definitions: What is the correct distinction between setup time and hold time for clocked storage elements?
-
ASetup time occurs after the active clock edge, hold time occurs before the active clock edge.
-
BSetup time occurs before the active clock edge, hold time occurs after the active clock edge.
-
CSetup time and hold time both occur at the active clock edge.
-
DSetup and hold times are interchangeable terms.
-
ESetup is for asynchronous inputs; hold is for synchronous inputs.
Answer
Correct Answer: Setup time occurs before the active clock edge, hold time occurs after the active clock edge.
Explanation
Introduction / Context:Setup and hold times are the two primary timing constraints for reliable sampling in synchronous circuits. Violating either can cause metastability or incorrect data capture. Understanding which side of the clock edge each applies to is essential for timing closure.
Given Data / Assumptions:
- Flip-flops sample data on a specified active edge (rising or falling).
- Data must be stable before and after this edge for defined durations.
- Clock and data skew may erode these margins.
Concept / Approach:Setup time (ts) is the interval data must be valid before the clock edge. Hold time (th) is the interval after the clock edge during which data must remain stable. The combination ensures the internal latching window sees valid logic levels during the sensitive period.
Step-by-Step Solution:Identify the active edge.Ensure data is valid ts before the edge.Keep data unchanged for at least th after the edge.
Verification / Alternative check:Static timing analysis computes slack for both constraints; oscilloscopes can validate on hardware by measuring timing between data transitions and clock edges.
Why Other Options Are Wrong:Options A and C reverse or conflate definitions.Interchangeable or asynchronous claims are incorrect; both are synchronous input requirements.
Common Pitfalls:Fixing setup issues but introducing hold violations by over-optimizing path delays or clock skews.
Final Answer:Setup time occurs before the active clock edge, hold time occurs after the active clock edge.