PT: DMSA辅助调tree报告前后级余量脚本

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

拾陆楼知识星球入口

bash 复制代码
使用方法:选择launch或者capture上的pin,需要做长就用-late,需要做短就用-early
示例:GetThroughPinSlack -launch -early -pin xx/Y
proc GetThroughPinSlack args {
if {[regexp"\-pin"  $args]}{
remote_execute "set clock_through_pin_name [lindex $args [expr [lsearch $args "-pin"]+1]]">tmp
remote_execute {set ck_list [get_object_name [all_fanout -flat -end -from $clock_through_pin_name]]
set da_list [get_object_name [get_pins-of_objects [get_cells -of_objects [all_fanout -flat -end -from $clock_through_pin_namel] -filter "direction == in && is_data_pin"]]}>tmp
if{[regexp"\-launch" $args] && [regexp "\-late" $args]} {
remote_execute {
echo "${mode} ${corner}: $clock_ through_pin_name launch_setup [get_attr -quiet [get_timing_ paths -pba_mode path -from $ck_list] slack]; capture_hold [get_attr -quiet [get_timing_paths -pba_mode path -delay min -to $da_list] slack]" > GetThroughPinSlack.rpt} > tmp
}
if {[regexp"\-capture"$args]&& [regexp"\-late"$args]} {
remote_execute {
echo "${mode} ${corner}:$clock_through_pin_name capture_hold [get_attr-quiet [get timing_paths -pba_mode path -delay min -to $da_list] slack]; launch_setup [get_attr -quiet [get_timing_paths -pba_mode path -from $ck_list] slack]" > GetThroughPinSlack.rpt} > tmp
)
if {[regexp"\-launch"$args]&& [regexp"\-early" $args]} {
remote_execute {
echo "${mode} ${corner}: $clock through pin_name launch_hold [get_attr -quiet [get_timing_paths -pba_mode path -delay min -from $ck_list] slack]; capture_setup [get_attr -quiet [get_timing_paths -pba_mode path -to $da_list] slack]" > GetThroughPinSlack.rpt}>tmp
]
if {[regexp"\-capture" $args] && [regexp"\-early" $args]} {
remote_execute {
echo "${mode} ${corner}: $clock_through_pin_name capture_setup [get attr -quiet [get_timing_paths -pba_mode path -to $da_list] slack] ; launch_hold [get_attr -quiet [get_timing_paths -pba_mode path -delay min -from $ck_list] slack]" > GetThroughPinSlack.rpt} > tmp

sh cat work/*/GetThroughPinSlack.rpt > GetThroughPinSlack.rpt
set in [open GetThroughPinSlack.rpt r+]
set value1 "" ; set value2 ""
while {[gets $in line] >= 0} {
if {[llength $line]="7"} {
lappend value1 [lindex $line 3];lappend value2 [lindex $line 6]
set attr1 [lindex $line 2]; set attr2 [lindex $line 5]}}
close $in
puts "[lindex $args [expr [lsearch $args "-pin"]+1]] $attr1 [lindex [lsort -real $valuel] 0]; $attr2 [lindex [lsort-real $value2] 0]"}
define_proc_attributes GetThroughPinSlack \
-info {
GetThroughPinSlack -launch/-capture (specifyed whether the through
pin is from launch or capture) \
-early/-late (specigy whether the through pin nead to be made shorter -pin clock_through_pin_name
or longer) \
-pin clock_through_pin_name
}\
-define_args {
{-launch "specifyed whether the through pin is from launch" "" boolean required
 {-capture "specifyed whether the through pin is from capture" "" boolean required 
{-early "specigy whether the through pin nead to be made shorter" "" boolean required
{-late "specigy whether the through pin nead to be made longer" "" boolean required
{-pin "clock through pin name" clock_ through_pin_name string required 
{-help "usage" "" boolean optional}
}\
-define_arg_groups {
{exclusive {-launch -capture}}
{exclusive {-early -late}}
}
相关推荐
想做小南娘,发现自己是女生喵5 分钟前
第三周学习文档 Linux C 多进程与多线程
linux·c语言·学习
云和数据.ChenGuang27 分钟前
用 Claude Code 重构遗留系统:从评估到落地的完整指南
java·人工智能·spring boot·后端·重构·springai
奕鼎竜瑆38 分钟前
无监督学习:聚类与降维
学习·数据挖掘·聚类
豆角焖肉1 小时前
SpringBoot 集成腾讯 AI 人脸识别
人工智能·spring boot·后端·人脸识别·腾讯 ai·base64 图片
付威20231 小时前
如果你想拥有自己的 Agent,为什么值得从 rpi 开始
后端
可乐ea1 小时前
2000 个智能体把 Agent 重写成 Rust:编排流水线拆解
开发语言·后端·rust·多智能体协作·ai编程助手·智能体编排·rust重写
用户72757483196502 小时前
02-变量、常量和字符串:len("Hello, 世界") 为什么不是 9?
后端
SamDeepThinking2 小时前
CyclicBarrier的底层实现
java·后端·面试
god_cvz2 小时前
第二章:6、对话记忆与引用标注
后端·ai编程
拖孩2 小时前
全程 AI 写的小程序,刚接上会员虚拟支付,上线第二天就有人真金白银买单了|双签名、定价、iOS 的坑我全踩了一遍
前端·后端·微信小程序