A gated clock is what you get when you feed a flip-flop's clock pin from logic, for example G = CLK · EN, so that the register only sees edges while EN = 1. It looks like a neat way to make a register hold, but it breaks the rules of synchronous design:
- Glitches become clock edges. EN comes from logic, which can glitch, and its timing isn't tied to the clock. If EN changes while CLK is high, G gets an extra edge at the wrong time or a pulse too short to trust.
- Skew. The AND gate delays G, so the gated register is clocked later than the rest. That's clock skew, which can cause hold violations.
- Analysis gets harder. The clock is now a data-dependent signal.
The safe alternative is a clock enable: keep the clock clean and put a 2-to-1 multiplexer in front of D, so D = new data when EN = 1 and D = Q (reload the old value) when EN = 0.
Real chips do gate clocks to save power, but with special glitch-free clock-gating cells and careful timing, not ordinary logic.