1 数字IC设计中的分段时钟树综合-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

CHANBAEK 来源:志芯 作者: Jack Xu 2023-12-04 14:42 次阅读

背景

为什么需要分段去做时钟树呢?因为在某些情况下,按照传统的方法让每一个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的时钟树。

结果

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

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120224
  • IC设计
    +关注

    关注

    38

    文章

    1295

    浏览量

    103914
  • 时钟树
    +关注

    关注

    0

    文章

    54

    浏览量

    10741
  • 数字IC
    +关注

    关注

    1

    文章

    38

    浏览量

    12545
收藏 人收藏

    评论

    相关推荐

    时钟优化与有用时钟延迟

    时钟优化与有用时钟延迟在 “后端时序修正基本思路” 提到了时序优化的基本步骤。其中,最关键的阶段就是时钟建立。
    发表于 10-26 09:29 4419次阅读
    <b class='flag-5'>时钟</b><b class='flag-5'>树</b>优化与有用<b class='flag-5'>时钟</b>延迟

    射频识别芯片设计时钟功耗的优化与实现

    在RFID芯片中的功耗主要有模拟射频前端电路,存储器,数字逻辑三部分,而在数字逻辑电路时钟树上的功耗会占逻辑功耗不小的部分。本文着重从降低数字
    发表于 03-24 14:36 4344次阅读

    #硬声创作季 #IC设计 数字IC设计-47 ICC-时钟综合-2

    IC设计
    水管工
    发布于 :2022年11月30日 21:53:28

    #硬声创作季 #IC设计 数字IC设计-47 ICC-时钟综合-4

    IC设计
    水管工
    发布于 :2022年11月30日 21:54:58

    系统框图和时钟

    。1、芯片介绍;2、软件安装MDK5;3、开发板介绍;(核心板和控制底板);4、系统框图和时钟;5、阅读程序(看别人的代码:LED、按键、定时器)6、IO输出:LED灯;7、IO输入:按键查询;8、IO输入:按键中断;8.1
    发表于 08-03 08:22

    时钟我们可以得知哪些

    时钟我们可以得知(1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线(2)通用定时器timer2~t
    发表于 08-13 07:23

    multi-tap的FlexHtree自动化时钟综合流程

    时钟综合(CTS)相结合来控制整个时钟的clock skew[1]。时钟根节点(root
    的头像 发表于 08-15 10:01 1w次阅读
    multi-tap的FlexHtree自动化<b class='flag-5'>时钟</b><b class='flag-5'>树</b><b class='flag-5'>综合</b>流程

    STM32时钟

    STM32时钟问题1:为什么需要时钟?答:STM 32的时钟系统类似于人的心脏,需要为芯片提供时钟芯片才能正常工作,而STM32有很多的外
    发表于 12-06 09:51 16次下载
    STM32<b class='flag-5'>时钟</b><b class='flag-5'>树</b>

    评价时钟质量的方法

    时钟综合,通常我们也叫做CTS。时钟综合就是建立一个时钟
    的头像 发表于 09-05 10:11 1897次阅读

    大型多GHz时钟时钟偏斜

    大型时钟通过多个时钟设备、使用多种传输线类型以及跨多个板和同轴电缆路由时钟信号的情况并不少见。即使遵循最佳实践,这些介质的任何一种都可能
    的头像 发表于 12-22 15:19 1012次阅读
    大型多GHz<b class='flag-5'>时钟</b><b class='flag-5'>树</b><b class='flag-5'>中</b>的<b class='flag-5'>时钟</b>偏斜

    详解数字设计时钟与约束

    数字设计时钟与约束 本文作者 IClearner 在此特别鸣谢 最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊
    的头像 发表于 01-28 07:53 2918次阅读
    详解<b class='flag-5'>数字</b>设计<b class='flag-5'>中</b>的<b class='flag-5'>时钟</b>与约束

    时钟综合CTS阶段如何去降低Latency和Skew

    对于时钟综合,各位后端工程师应该都很熟悉,做好一个模块/一个chip的时钟,对整个项目 的功耗和Timing影响都是巨大的。
    的头像 发表于 05-22 09:38 3388次阅读
    <b class='flag-5'>时钟</b><b class='flag-5'>树</b><b class='flag-5'>综合</b>CTS阶段如何去降低Latency和Skew

    CTS时钟综合对uncertainty的影响

    时钟电路的设计,存在 jitter 和 skew 问题。
    的头像 发表于 06-26 16:49 2140次阅读
    CTS<b class='flag-5'>时钟</b><b class='flag-5'>树</b><b class='flag-5'>综合</b>对uncertainty的影响

    大型多GHz时钟的相位偏差设计

    德赢Vwin官网 网站提供《大型多GHz时钟的相位偏差设计.pdf》资料免费下载
    发表于 11-22 16:56 0次下载
    大型多GHz<b class='flag-5'>时钟</b><b class='flag-5'>树</b><b class='flag-5'>中</b>的相位偏差设计

    时钟是什么?介绍两种时钟树结构

    今天来聊一聊时钟。首先我先讲一下我所理解的时钟是什么,然后介绍两种时钟树结构。
    的头像 发表于 12-06 15:23 1716次阅读