
GR716-DS-UM, May 2019, Version 1.29
232
www.cobham.com/gaisler
GR716
26
Clock gating unit (Primary)
The GR716 microcontroller have 2 separate clock gating units. Each clock gating unit will control its
own clock domains and has a unique AMBA address described in chapter 2.11.
26.1
Overview
The clock gating unit provides a mean to save power by disabling the clock to unused functional
blocks. The core provides a mechanism to automatically disabling the clock to the LEON processor
when it is in power-down mode, and also to disable the clock for the shared floating-point unit. The
also core provides a mechanism to reset, enable clock and disable clock for following cores:
•
FTMCTRL
•
SPI4S
•
GRSPWTDP
•
GRMEMPROT
•
L3STAT
•
UART
•
GRPWM
•
I2C
•
SPI
•
GRPWRX
•
GRPWTX
•
SPI2AHB
•
I2C2AHB
•
NVRAM
The core provides a register interface via its APB slave bus interface.
26.2
Operation
The operation of the clock gating unit is controlled through four registers: the unlock, clock enable,
core reset and CPU/FPU override registers. The clock enable register defines if a clock is enabled or
disabled. A ‘1’ in a bit location will enable the corresponding clock, while a ‘0’ will disable the clock.
The core reset register allows to generate a reset signal for each generated clock. A reset will be gen-
erated as long as the corresponding bit is set to ‘1’. The bits in clock enable and core reset registers
can only be written when the corresponding bit in the unlock register is 1. If a bit in the unlock register
is 0, the corresponding bits in the clock enable and core reset registers cannot be written.
To gate the clock for a core, the following procedure should be applied:
1. Disable the core through software to make sure it does not initialize any AHB accesses
2. Write a 1 to the corresponding bit in the unlock register
3. Write a 0 to the corresponding bit in the clock enable register
4. Write a 0 to the corresponding bit in the unlock register
To enable the clock for a core, the following procedure should be applied
1. Write a 1 to the corresponding bit in the unlock register
2. Write a 1 to the corresponding bit in the core reset register
3. Write a 1 to the corresponding bit in the clock enable register