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

Three Way Glitch Free Multiplexer

HardLogic CircuitBuild

Modern processors dynamically switch between high-performance, efficiency, and ultra-low-power oscillators to optimize the power-performance envelope. Scaling clock multiplexing beyond two sources requires careful cascading to prevent runt pulses or glitches during the transition.

The circuit must select one of three asynchronous clock sources (clk0, clk1, clk2) based on a 2-bit selection signal (sel1, sel0) and route it to clk_out. The transition between any two clocks must be completely glitch-free.

| sel1 | sel0 | Active Clock | |--------|--------|--------------| | 0 | 0 | clk0 | | 0 | 1 | clk1 | | 1 | 0 | clk2 | | 1 | 1 | 0 |

Constraints

  • Cascade two 2-to-1 glitch-free clock multiplexers to form the 3-way multiplexer.
  • Use negative-edge triggered flip-flops for all clock synchronization stages.
  • Design the select decoding logic so that intermediate clock lines never glitch during a sel1 or sel0 transition.
  • Ensure clk_out remains strictly at 0 when sel1 and sel0 are both 1.

Topics

sequentialclockingsynchronization

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