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

Cascaded Clock Gating Logic

MediumLogic CircuitBuild

Complex subsystems often have multiple reasons to sleep, such as software overrides, idle timers, and thermal throttling. Combining these conditions safely requires integrating multiple enable signals before driving the final clock gate to prevent downstream glitches.

The circuit must generate a glitch-free gated clock gclk. The subsystem runs only when en_sw, en_idle, and en_therm are all asserted high. Combine these three signals into an intermediate signal en_comb according to the following logic:

| en_sw | en_idle | en_therm | en_comb | |---------|-----------|------------|-----------| | 0 | 0 | 0 | 0 | | 0 | 0 | 1 | 0 | | 0 | 1 | 0 | 0 | | 0 | 1 | 1 | 0 | | 1 | 0 | 0 | 0 | | 1 | 0 | 1 | 0 | | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 |

Feed en_comb into a standard Integrated Clock Gating (ICG) structure. When clk is low, the ICG must capture and latch en_comb. When clk is high, the latched value must hold steady, ignoring any changes to the input enables. Finally, gclk must follow clk if the latched enable is high, and remain low if the latched enable is low.

Constraints

  • Combine all enable signals combinationally before feeding them to the clock gating cell.
  • Use exactly one active-low D-latch to hold the combined enable condition.
  • Gate the clock using a single AND gate driven by the latch output and clk.
  • Do not gate clk directly with unlatched combinational signals.

Topics

ICGClock GatingPower Management

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