CodiodeCodiode
Home
Problem Solving
Skill Tracks
My Assignments
Contests
Leaderboard
Community
Settings
Codiode/Problems/Sequential Logic

Hold Constraint in Zero-Delay Path: Buffer Insertion

HardLogic CircuitTiming Diagram

A zero-delay path between two positive-edge-triggered D flip-flops causes a hold violation that must be resolved by inserting a delay buffer. Five signals are shown: CLK (clock, period 2), IN (input to the first flip-flop), Q1 (output of the first flip-flop), Q2_unbuf (output of the second flip-flop without a buffer), and Q2_buf (output of the second flip-flop with a buffer). Because the propagation delay is shorter than the hold time, Q2_unbuf experiences a hold violation and incorrectly captures the newly updated value of Q1 on the same clock edge. The inserted buffer delays the signal enough to satisfy the hold time, allowing Q2_buf to correctly capture the previous value of Q1. Trace Q1, Q2_unbuf, and Q2_buf across all 8 time steps.

Constraints

  • All flip-flop outputs initially start at 0.
  • Q2_unbuf captures the new value of Q1 evaluated at the exact same rising edge due to the hold violation.
  • Q2_buf captures the old value of Q1 present immediately before the rising edge.

Topics

Shift RegisterFlip-FlopsTiming AnalysisHold Violation

Solve this problem

Place the gates, wire them up and watch the signals settle. Every submission runs on the same simulation engine that grades it.

This problem is part of Codiode Pro. The statement above is free to read.

Sign in to solveSee what Pro unlocks

The circuit builder and code editor need a desktop screen. On a phone, read the problem here and open it on a laptop to solve.

Related problems

  • 3-bit Ripple Counter from Toggle Flip-FlopsEasy
  • D Latch from a 2:1 MUXEasy
  • 2-bit Ring CounterEasy
  • T Flip-Flop from a D Flip-FlopEasy
  • Handshake Deadlock Due to Early ResetHard
  • Reconvergence of Individually Synchronized BitsHard
  • Debug: Asynchronous Clear GlitchHard
  • Clock Gate Enable Crossing DomainsHard

Browse all problems · Learning tracks