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

Clock Doubler Using Gate Delay

HardLogic CircuitBuild

Custom ASIC designers sometimes need to multiply clock frequencies locally without the overhead of an analog phase-locked loop. A delay-line clock doubler achieves this by generating a short pulse on every transition of the source clock.

The circuit receives a base clock clk_in and outputs a doubled clock clk_out. The output must pulse high for a brief duration whenever clk_in transitions from 0 to 1 or from 1 to 0. This behavior is achieved by comparing the input clock against a delayed version of itself.

| clk_in | delayed_clk | clk_out | |----------|---------------|-----------| | 0 | 0 | 0 | | 1 | 0 | 1 | | 1 | 1 | 0 | | 0 | 1 | 1 |

Constraints

  • Use exactly one XOR gate to drive clk_out.
  • Create the delay line using a chain of buffer gates connected in series.
  • Do not use any sequential elements like flip-flops or latches.
  • The steady-state output of clk_out must always resolve to 0.

Topics

xordelayclockingsynchronization

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