ICC 图文学习——LAB4:CTS 时钟树综合

  时钟树综合的定义:时钟网络从根节点逐渐插入驱动器(buffer、inverter)从而达到其叶节点,按照芯片时钟网络的约束要求产生时钟树的过程。
  主要内容:
·完成时钟树的综合CTS(负载平衡,解决DRC问题)和时钟树的平衡优化CTO(减少skewlatency)
·完成non_colck path的时序优化等
·完成时钟树的routing。



相关文件的准备:
orca_lib.mw/CEL
place_opt    放置和扫描插入的设计以Milkway格式保存
scripts/
cts_setup.tcl    设置CTS选项的脚本
ndr.tcl    指定非默认时钟布线规则命令的脚本
opt_ctrl.tcl    时序和优化控制

1. 打开设计,并检查时钟树

  1. 在lab4_cts目录下启动ICC GUI,并打开设计库,如下:
open_mw_lib orca_lib.mw
  1. 复制CEL place_opt,并将其命名为clock_opt,命令如下:
copy_mw_cel -from place_opt -to clock_opt
  1. 打开 clock_opt 设计
open_mw_cel clock_opt

在这里插入图片描述

  1. 检查时钟树的skew、总体情况和timing 违反
    a. 检查时钟树的skew属性:
report_clock -skew -attributes

在这里插入图片描述
   b. 查看时钟树的总体情况

report_clock_tree -summary

在这里插入图片描述该命令可以查看时钟树所驱动的sinks,不同时钟的skew、时钟树的最长路径(最大延迟)。
   c. 检查是否存在setup 违反

view report_constraint -all

在这里插入图片描述
从图中可以看出,该设计存在hold违反,因为hold违反在CTS后才进行修复。

  1. 通过GUI查看是否有时序例外的端口
    exception pin知识补充:
      默认情况下,CTS只会平衡时钟树延迟(最小skew)到 " 停止引脚 " ,停止引脚是顺序单元的时钟引脚。如果有例外的引脚需要平衡,那就需要在CTS前指定好这些例外的引脚,主要讲解如下:
    在这里插入图片描述
      若同一个引脚多次发出set_clock_tree_exception命令,引脚会保持最高优先级的异常,引脚优先顺序如下:
    不间断引脚 > 排除引脚 > 浮动引脚 > 停止引脚。现在对它们进行详细介绍,如下:
     a. Non_stop pins(不间断引脚)
      不间断引脚通常被认为是时钟树端点的引脚,但ICC会穿过它们跟踪寻找真正的端点。驱动生成时钟的时序单元的时钟引脚是隐式不间断引脚。下面关于隐式不间断引脚的介绍:
      若时序单元的扇出驱动的是生成时钟(即该时序单元用于分频之用,产生生成时钟),则ICC会将该时序单元的时钟引脚视为隐式不间断引脚,并穿过该时序单元以追踪到真正的时钟树端点,如下图①所示。此外,ICC认为集成门控(ICG)单元的时钟输入引脚是隐式不间断引脚,不用手动对其进行重复设置,如图②。
    在这里插入图片描述
    指定不间断引脚的命令如下:
set_clock_tree_exception -non_stop_pins

 b. exclude pins(排除引脚)
  排除引脚是从时钟树时序计算和优化中排除的时钟树端点。ICC仅在计算和优化设计规则约束时(DRC)使用排除引脚。
  在CTS期间,ICC通过在排除引脚(隐式和显示排除引脚)之前插入 guide buffer 来从时钟树中隔离这些引脚。对于这些引脚,ICC只会执行设计规则(DRC)修复,不会执行skew和latency优化。
  指定排除引脚的命令如下:

set_clock_tree_exception -exclude_pins

 c. float pins(浮动引脚)
  具有特殊插入延迟要求的时钟引脚。于停止引脚类似,但在构建时钟树时会考虑该引脚的内部时钟延迟。工具在计算到该float pins的插入延时时,将把float pin延迟(正或负)添加到计算插入延迟中

  • 17
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值