2.5.2 Glitch-Free Clock Switching
(Ask a Question)The PolarFire family has 12 No-Glitch MUXs (NGMUXs) for glitch-free dynamic clock switching between two independent clocks. NGMUXs are located at the center of the edge on four sides of the device. Libero SoC selects the appropriate NGMUX based on the clock source. NGMUX is accessible by instantiating PF_NGMUX configurator in the design. The following figure shows the NGMUX symbol.
The CLK0 and CLK1 inputs to NGMUX can be driven from any of the following:
- Preferred clock inputs
- On-chip oscillators
- Global clock network
- Fabric routing
- CCC (PLL/DLL)
- Clock dividers
The selection control input for each NGMUX (SEL) is driven from the fabric or I/O and can be changed dynamically by the user logic. The selected clock (CLK_OUT) is driven onto the global clock network.
When both current and new clocks are active (Mode 0), glitch-free clock switching happens as quickly as three current clock cycles plus three new clock cycles. The NGMUX can also be configured to support the switch from an uncertain or inactive clock to an active clock (Mode 1). In Mode 1, the clock switching takes up to 50 new clock cycles with a minimal chance of glitch during the switching.
