zoukankan      html  css  js  c++  java
  • IR-drop问题的分析与修复(五):Padding Clock Cells: ICC2 & Innovus

    本文转自:自己的微信公众号《集成电路设计及EDA教程》

     

    时钟网络有其特殊性:1、频率最高;2、翻转最频繁;3、扇出最大。时钟单元:Buffer、Inverter、ICG;由于时钟网络的扇出很大,因此时钟树上的Buffer或者Inverter的驱动强度必须足够大。另外,由于时钟频率非常高,翻转非常频繁,因此如果有普通的Cell离时钟单元非常近的话很有可能会产生动态IR-drop问题。 解决方案:在时钟单元(Buffer、Inverter、ICG)周围添加Keepout Margin(在Innovus中称为Padding),防止其他Cell摆的离时钟单元太近,防止产生动态IR-drop,如下图所示。

     

     命令:ICC2:我们可以针对一些Instance添加Keepout margin来解IR-Drop,思路在推文:IR-drop问题的分析与修复(含脚本分享)(一):Partition boundary cells clustering

    已经介绍过,相关命令如下:create_keepout_margin -outer {3.6 0.576 3.6 0.576} $cells但是对于CTS的Cell,我们更希望对一些库里面的Cell来设置Keepout Margin,这样在CTS例化这些Cell来创建时钟树的时候就直接加上Keepout Margin了。命令如下:create_keepout_margin  -type hard -outer "3.6 0.576 3.6 0.576" [get_lib_cells "*/*CLK* "] "3.6 0.576 3.6 0.576"分别是左、下、右、上四条边的keepout margin值。关于Keepout margin的更多呢内容可以查看推文: 后端概念分享--Keepout margin

    Innovus:Innovus有两个加Padding的命令,一个是针对Instance来添加,命令为:specifyInstPad相关用法已经在详细介绍过了,这里就不讲了。这里我们更希望的是对某一类Cell的Reference来设置Padding,命令如下:specifyCellPad CLK* -top 1 -bottom 1 -left 2 -right 2

     

    如何显示Cell Padding:

     

     

    如果想看设计里面CLK Cell的位置其它们周边的Padding,可以用下面的命令:selectInst [dbGet top.insts.cell.name CLK* -p2]

     

     最后,讲一下ICC2与Innovus两个命令之间的区别:

    ICC2:create_keepout_margin  -type hard -outer "3.6 0.576 3.6 0.576" [get_lib_cells "*/*CLK* "]  Innovus:specifyCellPad CLK* -top 1 -bottom 1 -left 2 -right 2 ICC2无论是给Instance还是给Cell加Padding,用的都是create_keepout_margin命令,而Innovus有两个命令,分别是specifyInstPadspecifyCellPad。ICC2的Keepout margin单位是um,而Innovus的cell padding单位是Cell site或者Row site的个数。

  • 相关阅读:
    chrome远程调试真机上的app
    高性能Cordova App开发学习笔记
    eclipse导入cordova项目
    跨域后模拟器上还是不能显示数据
    跨域请求数据
    eclipse导入cordova创建的项目
    cordova添加platform
    sdk更新代理设置
    NPM安装之后CMD中不能使用
    android开发环境搭建
  • 原文地址:https://www.cnblogs.com/ASIC-Horizon/p/12316861.html
Copyright © 2011-2022 走看看