您好,欢迎进入厦门雄霸电子商务有限公司!
厦门雄霸

联系我们

邮箱:3248602330@qq.com
电话:18030183032
地址:厦门市思明区吕岭路1733号创想中心2009-2010单元 在线咨询

数字IC设计中的分段时钟树综合

发布日期:2023-12-01 09:58 浏览次数:

背景

为什么需要分段去做时钟树呢?因为在某些情况下,按照传统的方法让每一个clock group单独去balance,如果不做额外干预,时钟树天然是做不平的。

如上图所示,存在三种寄存器序列A、B(包括B1和B2)和C,这三种寄存器序列代表三种不同时钟树情景的寄存器。A是比较普遍的情况,就是时钟树信号通过时钟树单元从clock port送到寄存器的时钟pin;C是某个Macro(硬核IP或特定子模块)内部的寄存器,正常情况下工具无法识别到该寄存器,也无法将寄存器C的时钟和外部寄存器的时钟做平;寄存器B1和B2的时钟pin是图中Macro通过clock feedthrough(也可以叫时钟飞线)。

如果按默认设置去做时钟树综合,那么A和B的时钟将会做balance;但是C的时钟肯定做不平,因为从Macro的clock in pin到寄存器C的时钟pin之间的delay不可控且没被工具识别和考虑到。

所以为了将A、B和C的时钟树做平,必须采取分段长时钟树的方法。采用两步法,先做A和C的时钟树,A和C的时钟树做好后,就可以根据已经长好的时钟树上Macro的clock out pin之前的时钟树总延迟情况去对寄存器B的时钟树做针对性调整,最终就能将A、B和C的时钟树做平。

做寄存器A和C的时钟树

案例中时钟树使用innovus实现。

先将Macro的clock out pin到寄存器B1和B2之间的时钟树net设置为don’t touch,让做A和C的时钟的时候不要动到B1和B2,使用的命令是set_dont_touch_network。具体命令是:

set_dont_touch_network [get_pins B1/CK]

set_dont_touch_network [get_pins B2/CK]

再将Macro的clock in pin设为时钟stop pin,并将clock in pin到寄存器C的时钟pin之间的延迟(假设该值为delay1)标定到Macro的clock in pin上,这样工具就能将寄存器A和C的时钟做平。使用的命令是set_ccopt_property。具体命令是:

set_ccopt_property sink_type stop -pin macro/clk_in

set_ccopt_property insertion_delay -pin macro/clk_in $ delay1

然后开始做寄存器A和寄存器C的时钟树。

做寄存器B的时钟树

首先给寄存器B1和B2创建单独的skew group,因为这个时钟不是全局时钟树都要去做,而是单独去做寄存器B1和B2;也就是Macro的clock out pin到寄存器B1和B2的时钟pin之间的这一部分,这部分的时钟起点是Macro的clock out pin,所以就定义一个Macro的clock out pin为clock port的skew group,假设主时钟域的skew group叫做main_clock,使用的命令是create_ccopt_clock_tree、create_ccopt_clock_tree_spec和create_ccopt_skew_group。具体命令是:

create_ccopt_clock_tree_spec

create_ccopt_clock_tree  -name from_macro_to_c -source macro/clk_out

create_ccopt_skew_group -name from_macro_to_c  -balance_skew_groups  main_clock

再将main_clock的时钟port到Macro的clock out pin之间的delay(假设为delay2)以clock source latency的形式标记到新创建的from_macro_to_c skew group的时钟起点(即Macro的clock out pin)上,具体命令如下:

set_ccopt_property source_latency $delay2 -clock_tree from_macro_to_c

再告诉工具长时钟树时将clock source latency考虑进去,具体命令如下:

set_ccopt_property  include_source_latency -skew_group from_macro_to_c

然后开始长寄存器B1和B2的时钟树。

结果

最终三种寄存器之间的时钟树都做平了。

联系方式

全国服务热线

18030183032

邮 箱:3248602330@qq.com

地 址:厦门市思明区吕岭路1733号创想中心2009-2010单元

扫一扫,加微信

Copyright © 2022-2024 厦门雄霸电子商务有限公司 版权所有 备案号:闽ICP备14012685号-38