Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Followers (2)
cgc setup and hold checks
Why clock gaters:
Follow
Clock gating is the well known technique to reduce dynamic power
consumption.
Blog Archive
2. On a side note, clock gating can greatly help save area in the scenario buffer vs delay cells to fix hold
described by getting rid of the large mux'ed feedback path which would violations
otherwise be necessary to meet logic requirements. get attributes of different
classes
Drawback of Simple AND as CGC: To do: analysis oncross talk
Think of a clock gate as "simple and" with an enable gating the clock. The affected nets
reason you do this is to stop unnecessary toggles on the clock pin of flops. whatif analysis
Even if the output doesn't toggle, the internal flop circuitry dissipates Getting scaling factor of the
unnecessary power. Power saving can be achieved by simply gating the clock library from min to ...
with an enable.
report_timing -path_type
summary
1. Here's the catch, if the enable is asynchronous to the clock and gates the
Clock push or pull techniques
clock during its active phase, you can end up with a clipped clock,
which effects the duty cycle. cgc setup and hold checks
►
► October (18)
2. This scenario can lead to timing violations on the flop and downstream
►
► September (6)
logic. If clock clipping happens very close to the active edge of the clock, there
might even be a clock width violation. ►
► August (10)
►
► 2010 (8)
How to mitigate this problem:
To prevent violations, its best to sync the enable signal with respect to the
clock it is gating. This is achieved by using a latch which is transparent only
during the inactive phase of the clock. For example, to gate the clock to its low
state, use an active low latch to sync the enable and gate the clock with the
sync'ed version as described by the code below:
Code:
always_latch
if(!clk) en_syn <= en;
sureshofficial.blogspot.com/2017/11/cgc-setup-and-hold-checks.html 1/7
17/07/2019 Suresh's official blog...: cgc setup and hold checks
How to model:
The gating check is performed on pins (EN) that gate a clock signal.
Clock gating checks need to be done where the clock is gated with a data or enable
signal. The basic idea here is to check whether the enable signal is toggling only when
the clock is in its inactive phase. If enable toggles in the clock's active phase, it will result
in glitch in the gate output clock.
AND/NAND gate is inactive when clock is in the LOW phase. i.e., at this
time gate output will not depen on the other inputs. So AND/NAND gate
is having a HIGH clock gating check. Similarly, for OR/NOT gate is
inactive when clock is in the HIGH phase, so it has LOW clock gating
check.
Setup violation:
Similar to normal flop, here, D input is EN and clock is CLK. And we
are checking setup violation of Latch.
If clock gating setup failure leads to: A clock gating setup failure
can cause either a glitch at the leading edge of the clock pulse, or a
clipped clock pulse.
Fix1:
1. Reduce data path delay:
sureshofficial.blogspot.com/2017/11/cgc-setup-and-hold-checks.html 2/7
17/07/2019 Suresh's official blog...: cgc setup and hold checks
2. Clock push:
- adding delay in the clock path (inserting buffers at CLK input pin of
CGC)
##Getting slack of next stage flops (from endpoint of current path under fix)
as gated clock is the start point for those flops:
set f [open slc_cg.txt w ]
set fo [get_cells [all_fanout -from CGC_cell/clk -flat -endpoints_only -
only_cells]]
ECO:
insert_buffer path_till_CGC/CGC_cell/clk_in clk_buffer_1x_drive
Hold check:
The clock gating hold check is used to ensure that the controlling
data signals are stable while the clock is active.
The arrival time of the trailing edge of the clock pin is checked against
both levels of any
data signal gating the clipped clock pulse.
References:
http://tech.tdzire.com/clock-gating-checks-and-clock-gating-cell/
EXAMPLES
The following example specifies a setup time of 0.2 and a hold
time of 0.4 for all gates in the clock network of clock CK1.
set_clock_gati
ng_check
sureshofficial.blogspot.com/2017/11/cgc-setup-and-hold-checks.html 3/7
17/07/2019 Suresh's official blog...: cgc setup and hold checks
NAME
set_clock_gating_check
Specifies the value of setup and hold time for
clock gating
checks.
SYNTAX
string set_clock_gating_check
[-setup setup_value]
[-hold hold_value]
[-rise | -fall]
[-high | -low]
[object_list]
float setup_value
float hold_value
list object_list
ARGUMENTS
-setup setup_value
Specifies the clock gating setup time. The default is
0.0.
-hold hold_value
Specifies the clock gating hold time. The default is
0.0.
object_list
Specifies a list of objects in the current design for
which the
clock gating check is to be applied. The objects can
be clocks,
ports, pins, or cells. If a cell is specified, all input pins
of
that cell are affected. If a pin, cell, or port is
specified,
all gates in the transitive fanout are affected. If a clock
is
specified, the clock gating check is applied to all gating
gates
driven by that clock. If you specify -high or -low
you must
sureshofficial.blogspot.com/2017/11/cgc-setup-and-hold-checks.html 5/7
17/07/2019 Suresh's official blog...: cgc setup and hold checks
DESCRIPTION
The set_clock_gating_check command specifies a setup or
hold time clock
gating check to be used for clocks, ports, pins, or cells. The
gating
check is performed on pins that gate a clock signal.
SYNTAX
string remove_clock_gating_check
[-setup]
[-hold]
[-rise]
[-fall]
[-high | -low]
[object_list]
list object_list
ARGUMENTS
-setup
Remove the high specification from the obejct list, previously set
up by set_clock_gating_check command. This option has to be
either high or low..
-low
Remove the low specification from the obejct list, previously set up
by set_clock_gating_check command. This option has to be either
high or low.
object_list
DESCRIPTION
sureshofficial.blogspot.com/2017/11/cgc-setup-and-hold-checks.html 6/7
17/07/2019 Suresh's official blog...: cgc setup and hold checks
This command is available only if you invoke the pt_shell with the -
constraints option.
The remove_clock_gating_check command removes clock gating
checks for design objects set by set_clock_gating_check.
EXAMPLES
The following example removes the setup requirement (for rising and
falling delays) on all gates in the clock network involved with clock
CK1 path.
Labels: STA
No comments:
Post a Comment
Publish Preview
sureshofficial.blogspot.com/2017/11/cgc-setup-and-hold-checks.html 7/7