clock tree and skew

Clock Trees and Skew Groups
Clock trees and skew groups are the two key object types used in the CCOpt clock specification. The term object is used here
because clock tree and skew group objects can be defined, modified, and deleted using commands. For example,
create_ccopt_clock_tree , create_ccopt_skew_group , modify_ccopt_skew_group , and delete_ccopt_skew_groups .
Properties can be set per skew group or clock tree instead of globally.
For example,
set_ccopt_property
–skew_group name
target_skew value .
The report_ccopt_clock_trees and report_ccopt_skew_groups commands can be used to generate reports on clock trees and
skew groups. For more information, see the Reporting section.
Clock Trees
The union of all clock trees specifies the subset of the circuit graph that CTS will buffer. The circuit subset covered by clock tree
definitions is best referred to as a clock tree graph since clock trees may interact, for example via clock logic cells. The clock
tree graph is a single physical graph even in a multi-mode timing environment.
Maximum transition times, route types and other physical properties are associated with the clock tree graph or with individual
trees in the clock tree graph.
In all but rare exceptional circumstances, the clock tree definitions created by create_ccopt_clock_tree_spec do not require
user modification.
Skew Groups
A skew group represents a balancing constraint and is the CTS equivalent of an SDC clock. The automatically generated clock
tree specification will create one skew group per SDC clock per mode.
Each skew group has one or more sources and a number of sinks. Among other properties, a skew target and insertion delay
target can be set per skew group. Any pin in the clock tree graph can be a skew group source or sink and pins can be
designated a skew group specific ignore pin such that the specific skew group does not propagate beyond the pin.
CCOpt-CTS global skew balancing aims to achieve an equal delay, subject to the skew target, from all sources to all sinks
within each skew group. CCOpt virtually balances skew groups to zero skew to determine initial clock tree timing with
propagated clocks before optimization starts.
A skew group can be viewed as a subset of the clock tree graph superimposed on top of the clock tree graph. Skew groups can
overlap, share sources, and/or sinks.
In complex cases or with CCOpt-CTS where the SDC timing constraints do not fully capture the balancing requirements, user
adjustment to the skew group configuration may be required and/or additional skew groups can be defined.
Network Latencies
The create_ccopt_clock_tree_spec command will translate clock network latency settings to an insertion delay target on the
corresponding skew group. For example, consider the functional mode SDC constraint, “set_clock_latency 1.456 [get_clocks
{ck1}]”. The automatically generated specification will contain the following line:
set_ccopt_property target_insertion_delay -skew_group ck1/func 1.456
Similarly, pin network latency settings are translated to the insertion_delay property of a pin. This property is often referred to as a
pin insertion delay. A pin insertion delay represents the delay ‘underneath’ a clock sink. For example, for a macro clock input pin, the
pin insertion delay would represent the internal clock path delay inside the macro. Continuing the above example, add the constraint
“ set_clock_latency 0.234 [get_pins {mem1/CK}] ”. The automatically generated specification will additionally contain the
following line:
set_ccopt_property
insertion_delay
–pin mem1/CK 1.222
The prop

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在数字电路设计中,时钟树(clock tree)是指将时钟信号从时钟源传输到各个时钟接收器的网络。时钟树的设计对于电路的性能和功耗有着重要的影响。时钟树的目标是保持时钟信号的稳定性和一致性,以确保电路的正确操作。时钟树的设计中,常常会将一些不属于其所属生成时钟(generate clock)的sink pin抓出来设置成一个时钟偏移组(clock skew group),这些sink pin通常只与彼此以及时钟分频器(clock divider)和时钟门控单元(clock gating cell)有时序检查(timing check)的关系。\[1\] 时钟偏移(clock skew)是指时钟信号在时钟树中传播过程中的延迟差异。全局偏移(global skew)指的是同时钟(同一时钟域)中最长和最短路径之间的差值,而局部偏移(local skew)指的是具有时序检查的两个寄存器之间时钟路径长度的差值。从定义上看,全局偏移似乎应该大于等于局部偏移,但实际上在分析时序违规时,我们也会看到局部偏移大于全局偏移的情况。这是因为全局偏移计算的是sink pin的最大差值,而局部偏移不仅考虑了sink pin,还考虑了through pin(时钟路径中的中间节点)。\[2\] 举例来说,当命名为*dlytr*的时钟路径出现时,意味着这是一个长路径或者在优化时为了延长sink pin而使用绕行方式(detour)绕过电路的buf/inv。如果这条路径是时钟路径中最长的,我们需要使用report_clock_timing -type latency -nworst xx命令来报告更多的时钟路径,以分析导致时钟树整体变长的真正原因。\[3\] #### 引用[.reference_title] - *1* [ICC2:skew group](https://blog.csdn.net/m0_61544122/article/details/130530332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [静态时序分析—时钟偏斜(Clock Skew:Global Skew与Local Skew)](https://blog.csdn.net/m0_61544122/article/details/126498047)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值