Use the GATED_CLOCK property to enable Vivado synthesis to perform conversion of gated clocks. Convert clock gating logic to utilize the flop enable pins when available. This optimization can eliminate logic on the clock tree and simplify the netlist.
This RTL attribute that instructs the tool about which signal in the gated logic is the clock. The attribute is placed on the signal or port that is the clock.
This attribute can only be set in the RTL.
Note: You can also use a switch in the Vivado synthesis tool that instructs the tool to attempt the conversion:
synth_design -gated_clock_conversion on
Architecture Support
All architectures.
Applicable Objects
•Clock input port
•Clock signal
Values
•FALSE: Disables the gated clock conversion.
•TRUE: Gated clock conversion occurs if the GATED_CLOCK attribute is set in the RTL code. This option gives you more control of the outcome.
•AUTO: Gated clock conversion occurs if either of the following events are true:
°The GATED_CLOCK property is set to TRUE
°The Vivado synthesis can detect the gate and there is a valid clock constraint set. This option lets the tool make decisions.
Syntax
Verilog Example
(* gated_clock = "true" *) input clk;
VHDL Example
entity test is port (
in1, in2 : in std_logic_vector(9 downto 0);
en : in std_logic;
clk : in std_logic;
out1 : out std_logic_vector( 9 downto 0));
attribute gated_clock : string;
attribute gated_clock of clk : signal is "true";
end test;
XDC Example
Not applicable.
Affected Steps
•Synthesis