mervin_li的个人空间 https://blog.eetop.cn/1582944 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

<script>Innovus工具中如何报不同VT cell的比例

已有 7358 次阅读| 2016-10-19 14:31 |个人分类:脚本|系统分类:芯片设计

背景:数字后端设计是一个知识点多,操作复杂,容易上手的工作。脚本常常会帮助我们减少工作量,提高工作效率。在Multi VT的设计中,常常会有HVT,SVT,LVT,ULVT等多种电压阈值的cell被使用,对于功耗分析,常常需要了解不同VT所占的比例,方便进行下一步调整。这里就介绍下在后段项目中如何抓出不同VT的cell所占的比例。

方法一,直接使用Innovus工具report出VT的比例
ReportVtInstCount -leakage -outfile vtratio.rpt
就可以得到不同vt的lib的使用信息,大多数情况都可以这样得到。但是这里有个不足之处就是mmmc文件里定义了复杂的lib的名称的话,常常会出现统计的混淆,需要人工区分确认。

方法二,借助summaryReport的结果进行文本处理,得到指定类型的cell的比例

summaryReport -outfile summary.rpt

proc report_celltype_ratio {TYPE} {

set path summary.rpt

set total 0set num1 0set flag1 0set lth 15

set row "= = = = = = = = = = = = = = ="

if {[string length $TYPE] > $lth} {

   set lth [string length $TYPE]

   set i 1

   set gap [expr $lth -15]

   while {$i < $gap} {

   lappend row =

   set i [expr $i + 2]

   }

}

dbForEachFileLine $path line {

   if {[regexp "# Std Cells:" $line]} {

        set total [lindex $line 3]

        set flag1 1

      }

   if {[regexp "$TYPE" $line] && $flag1 == 1} {

        set num1 [expr $num1 + [lindex $line 1]]

      }

   if {[regexp "# Pads:" $line]} {

        set flag1 0

      }

}

puts "+$row +"

puts [format "| %-${lth}s | %-10d |" Total_inst $total]

puts [format "| %-${lth}s | %-10d |" $TYPE $num1]

puts [format "| %-${lth}s | %-10.4f |" Ratio [expr [expr $num1 * 1.0000] / [expr $total * 1.0000] ]]  

puts "+$row +"

}



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 137

    粉丝
  • 58

    好友
  • 152

    获赞
  • 54

    评论
  • 3166

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-1 15:20 , Processed in 0.015280 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部