set_ccopt_property基本用法备忘录(下)

发布时间:2024年01月04日

7b2a33e2a4154196a3a030b9b4f34ff9.png

dd4dbb3c497e4e069b3156273eb722b4.png

我正在「拾陆楼」和朋友们讨论有趣的话题,你?起来吧?

拾陆楼知识星球入口

往期文章链接:

innovus: set_ccopt_property基本用法备忘录(上)

innovus:set_ccopt_property基本用法备忘录(中)

59e4dc628ba545c39c9521a61e3f5ecf.png

2c9cf5d3c4a844129a8077633e0c329e.png

estimate route

estimated route,也被称作Guided,为了快速迭代调整clock setting,使用estimate route代替NanoRoute,。

innovus> set_ccopt_property use_estimated_routes_during_final_implementation true

innovus> ccopt_design

基于造成真实route的方式也只需要把该property设置成false,在route clock nets即可,无需重新ccopt_design。

innovus> set_ccopt_property use_estimated_routes_final_implementation false

# 启动CTS真实绕线,这个命令会找到所有的Clock nets进行绕线

innovus> route_ccopt_clock_tree_nets

如果log中显示net length在Guide和route后有比较大差别,需要注意一下,尤其是超过100%的net。

71858c3521e54b0db4f26924aab95442.jpg

73c869848f4b46d8b1579deb4de333ef.png

?clone icg

工具可以在cts阶段clone icg以解决icg fanout问题,较之插buffer解决high fanout此法还不会增加级数,增加clock tree delay。开启方法如下:

# 使用clone icg来修复DRV

> set_ccopt_property clone_clock_gates true

# 使用clone icg来缩短delay

> set_ccopt_property clustering_clone_cells_to_reduce_balancing_conflicts true

64ae143a186f446498c171f256d2a00d.png

?add driver cell

clock root如果是一个instance pin,那这个instance的驱动我们是可以知道的,如果这个clock root是个port,模块设计时外部的具体情况我们是不得而知的,所以在root附近插一个buffer更保险一些,好处是common path比clock root直接推多个fanout更长些。方法如下:

# 在clock root附近插一个buffer

> set_ccopt_property add_driver_cell {BUF_X2B}

效果如下图:

7bb6d62364e64d71a5c536f19750c53d.jpg

?

?

?

?

?

?

文章来源:https://blog.csdn.net/m0_61544122/article/details/135236429
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。