(company logo if desired)
Clock Enable Timing Closure Methodology
Harish Dangat Samsung Semiconductor
Clock Enable Timing Closure Methodology Harish Dangat Samsung - - PowerPoint PPT Presentation
Clock Enable Timing Closure Methodology Harish Dangat Samsung Semiconductor (company logo if desired) Agenda Basics of Clock Gating Fixing Clock Enable Timing in RTL-2-GDSII Flow Results Conclusion Harish Dangat 2 Clock
(company logo if desired)
Harish Dangat Samsung Semiconductor
2
Harish Dangat
3
Harish Dangat
4
Harish Dangat
5
Harish Dangat
6
Harish Dangat
EN D D
CE Path CE clk Path Clock gated clk Path 1ns 1ns 0.5ns
7
Harish Dangat
8
Harish Dangat
Good Location Acceptable Location Potential bad Location CE timing
CLK
Architectural Gaters
0ns 1ns 0.5ns 0.25ns 0.75ns
9
Harish Dangat
10
Harish Dangat
11
Harish Dangat
set_clock_latency
[get_pin all_clock_gating_registers/CK] set_clock_latency 0 [get_pin all_clock_gating_registers/ECK] set timing_scgc_override_library_setup_hold true set_clock_gating_style –setup 400ps clock_gate set_clock_gating_style –no_sharing
12
Harish Dangat
CE CE timing problem CE Good CE timing
13
Harish Dangat
set timing_scgc_override_library_setup_hold true set_clock_gating_style –setup 400ps clock_gate set_clock_latency
[get_pin all_clock_gating_registers/CK] set_clock_latency 0 [get_pin all_clock_gating_registers/ECK]
14
Harish Dangat
group_path
–to [get_cell */*GATE_LATCH] set placer_disable_auto_bound_for_gated_clock false
15
Harish Dangat
16
Harish Dangat
set icg_cells { icg_cell_1 icg_cell_2 } split_clock_net -objects [get_cells $icg_cells] \
remove_ideal_network [all_fanout -flat -clock_tree] remove_propagated_clock * remove_clock_tree
17
Harish Dangat
18
Harish Dangat
foreach_in_collection CELLS [get_cells * -hier -filter "ref_name =~ *ICG*"] { set names [get_object_name $CELLS] set ckPins [get_object_name [get_pins -of_object [get_cells $CELLS] \
set eckPins [get_object_name [get_pins -of_object [get_cells $CELLS] \
set eckFanout [sizeof_collection [all_fanout -from [get_pins $eckPins] -flat]] set cgSlack [get_attribute [get_pins ${names}/ENABLE] max_slack if {$cgSlack > -0.150 && $eckFanout > 100} { echo "${names}/E" } remove_propagated_clock * remove_clock_tree
19
Harish Dangat
20
Harish Dangat
21
Harish Dangat
22
Harish Dangat
23
Harish Dangat
100 200 300 400 500 600 700 800 900 Series1 Series2 Series3
Baseline run 1ns latency
Selective latency
24
Harish Dangat
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 200 400 600 800 1000 1200
Series1 Series2
25
Harish Dangat
26
Harish Dangat
place_opt clock_opt place_opt clock_clone new place_opt clock_opt
27
Harish Dangat
28
Harish Dangat
29
Harish Dangat
30
Harish Dangat
31
Harish Dangat
http://www.phonesreview.co.uk/2012/09/26/iphone-5-vs-samsung-galaxy-s3-battery-life-confrontation/
Smartphone power for continuous web access
32
Harish Dangat
33
Harish Dangat
Clock Gating
34
Harish Dangat
Ref – ISPLED, 2008
35
Harish Dangat
USB-0 USB-1 Control Logic
Clock_EN Clock_EN USB_CLOCK
en_usb_0 en_usb_1
36
Harish Dangat
37
Harish Dangat
38
Harish Dangat
generating CE signal
from ICG cells
signal placed away from each
Flops receiving gated clock Flops generating gated clock Comb cells in clock gating path
39
Harish Dangat
generating CE signal
from ICG cells
signal placed away from each
Flops receiving gated clock Flops generating gated clock Comb cells in clock gating path
40
Harish Dangat
41
Harish Dangat
generating CE signal
from ICG cells
signal placed away from each
Flops receiving gated clock Flops generating gated clock Comb cells in clock gating path