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的时钟树。

结果

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

图片

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

    关注

    30

    文章

    5028

    浏览量

    117721
  • IC设计
    +关注

    关注

    37

    文章

    1264

    浏览量

    102955
  • 时钟树
    +关注

    关注

    0

    文章

    51

    浏览量

    10661
  • 数字IC
    +关注

    关注

    1

    文章

    37

    浏览量

    12265
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

    解析STM32的时钟

    对于广大初次接触STM32的读者朋友(甚至是初次接触ARM器件的读者朋友)来说,在熟悉了开发环境的使用之后,往往“栽倒”在同一个问题上。这问题有个关键字叫:时钟。众所周知,微控制器(处理器)的运行
    发表于 10-21 14:36

    数字IC后端设计介绍,写给哪些想转IC后端的人!

    后端设计流程、版图布局布线、版图编辑、版图物理验证、联络代工厂并提交生产数据。  数字后端设计流程如下图:   数字IC设计后端流程如上图所示,主要是以下步骤:  1.逻辑综合是将RT
    发表于 12-29 11:53

    STM32的时钟介绍

    ,但不是所有外设都使用同一时钟频率工作,比如内部看门狗和 RTC,它只需 30 几 KHz 的时钟频率即可工作,所以内部时钟源就有多种选择。在前面章节的介绍,我们知道 STM32系统
    发表于 01-14 17:30

    系统框图和时钟

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

    和SYSCLK相关的时钟

    系统时钟SYSCLK在STM32F407,除了一些特定的时钟(例如,USB OTG FS时钟,I2S时钟)外,系统所有外设的
    发表于 08-04 08:43

    介绍时钟的构成

    RCC是reset clock control的简称(即复位和时钟控制器),本文将详细介绍时钟的构成,通过理解时钟我们可以更加的理解ST
    发表于 08-12 07:48

    为什么要了解时钟

    layout: posttags: [STM32]comments: true文章目录layout: posttags: [STM32]comments: true为什么要了解时钟的根标准库
    发表于 08-12 06:13

    时钟分析

    首先,上图,大名鼎鼎的时钟图,该图位于STM32参考手册RCC章节7.2时钟(第80页)接下来,分析这棵/*************************************
    发表于 08-12 06:43

    时钟我们可以得知哪些

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

    STM32时钟学习记录

    STM32 时钟学习记录时钟介绍在STM32 时钟系统,有5 个重要的
    发表于 08-13 07:38

    STM32时钟案例详解

    STM32时钟案例详解时钟直接使用HSI作为时钟源使用配置相应的结构体,最后调用HAL_RCC_OscConfig(), 和HAL_RC
    发表于 08-20 06:11