在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1099|回复: 6

[求助] ICC中的insert_self_gating是怎么用的?

[复制链接]
发表于 2023-6-26 20:02:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

大家好,有个问题搞不定请大家帮忙看看。
compile_clock_tree命令有一个-insert_self_gating,这个选项到底是如何用的?
Tool 版本:ICC2017
首先,我去定所有ICG都没有被设置dont_use
clock_gating_style设置如下:
  set_clock_gating_style -sequential_cell latch                        -positive_edge_logic {integrated}                        -negative_edge_logic {integrated}                        -control_point before -observation_point false                        -max_fanout 64

  reset_switching_activity
  read_saif -input self_gating.saif  -instance_name tb_top/dut

  compile_clock_tree -clock_trees xxx -insert_self_gating
看log中有如下提示:

                               
登录/注册后可看大图


真心求教,帮忙解答下,谢谢。
发表于 2023-6-27 10:17:33 | 显示全部楼层
不一定是流程有问题,self-gating的目的是减小功耗,但会使时序变差。
如果加了self-gating不能减小功耗或者时序出了violation那不如不加。
工具从这两个角度出发来判断slack和toggle rate是否满足插入self-gating的条件
 楼主| 发表于 2023-6-27 13:56:58 | 显示全部楼层


zero_0 发表于 2023-6-27 10:17
不一定是流程有问题,self-gating的目的是减小功耗,但会使时序变差。
如果加了self-gating不能减小功耗或 ...


终于有人回复了,谢谢。

我事前知道有您说的情况的,
我为了测试专门搞了一个test design,目前把这几个filter设置成几乎不可能过滤掉任何寄存器的值,但还是不行。

  set cts_self_gating_data_toggle_rate_filter 0.000000001 #default 0.001
  set cts_self_gating_reg_power_filter  0.0 #小于cts_self_gating_reg_power_filter的被过滤

为了slack足够,频率改到很低, slack全是正的,WNS为0.
  set cts_self_gating_wns_backoff 0.0 #计算公式:WNS+Period * cts_self_gating_wns_backoff=0,只要slack better的path都应该self-gating呀,还是不行

发表于 2023-6-27 15:44:03 | 显示全部楼层
我看了下 man page 和 user guide, 对第一个变量非常怀疑。user guide 里说 toggle rate 大于cts_self_gating_data_toggle_rate_filter 的才会插 self gating, 但是如果data pin的toggle rate很高,那插 self-gating并不能节省功耗,只有在 toggle rate低的情况下插入 self-gating关掉clock才有意义。

可以试一下直接改 saif file, 挑两个寄存器一个 toggle rate (D和Q一起改)改成 0.5, 一个改成0.05,然后toggle rate filter改成 0.2

另外,design里不要含有任何ICG
 楼主| 发表于 2023-6-27 18:15:02 | 显示全部楼层


zero_0 发表于 2023-6-27 15:44
我看了下 man page 和 user guide, 对第一个变量非常怀疑。user guide 里说 toggle rate 大于cts_self_gati ...


再次感谢。

改saif file我不是很理解。我的saif file是fsdb2saif转过来的。
比如60ns周期,周期16.6Mhz,我的data是个循环,480ns内会toggle 4次。user guide里的超过限制,如果当作是大于限制会self gating理解,这个ratio设置为很小,应该会gating;
如果当作是小于限制会self gating理解,这个ratio设置很大,大于data toggle rate,应该会gating。我从4Mhz翻转率,以1Mhz为单位,调到16.6Mhz最大的data toggle ratio,并在最后设置了一个比clock频率还高值比如300,所有尝试均遭遇失败。
您觉得我还有哪种可能没有尝试?
此外,用set_switching_activity直接对寄存器的CK和D设置翻转率也没成功。





 楼主| 发表于 2023-6-28 14:10:59 | 显示全部楼层


zero_0 发表于 2023-6-27 15:44
我看了下 man page 和 user guide, 对第一个变量非常怀疑。user guide 里说 toggle rate 大于cts_self_gati ...


问题解决了,是那个library的问题,换个library可以了。
那个限制是下线。
发表于 2023-6-29 09:09:45 | 显示全部楼层


摸摸肉肉 发表于 2023-6-28 14:10
问题解决了,是那个library的问题,换个library可以了。
那个限制是下线。
...


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 06:00 , Processed in 0.021840 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表