set path [ report_timing -collection -from $name -max_points 1 ] set st_flag 1 set end_flag 0 foreach_in_collection path_x $path {
set timing_points [ get_property $path_x timing_points ]
set end_flag [ sizeof_collection $timing_points ]
foreach_in_collection timing_points_x $timing_points {
if {$st_flag == $end_flag} {
set arrival_end [ get_property $timing_points_x arrival ]
}
if {$st_flag == 1 } {
set arrival_start [ get_property $timing_points_x arrival ]
}
incr st_flag ;
}
set data_delay [ expr $arrival_end - $arrival_start ] puts $data_delay }
Perhaps -tcl_list can also be used. Traverse the data in tcl list.
set tarpt [report_timing -net -max_paths 100000 -tcl_list]
set banner [lindex $tarpt 0]
set paths [lrange $tarpt 1 end]
foreach path $paths {
foreach {path_num path_all} $path {
foreach attrVal $path_all {
foreach {attr val} $attrVal {
if {$attr=="slack_calc"} {
set WNS [lindex [lindex $val end] end]
}
if {$attr=="Endpoint"} {
set endPoint [lindex $val 0]
}
if {$attr=="Beginpoint"} {
set startPoint [lindex $val 0]
}
}
}
}
Puts "$endPoint $startPoint $WNS"
}
posted on 2012-04-22 22:02
Klarke 阅读(364)
评论(0) 编辑 收藏 引用