Matrix
Klarke's C/C++ Home
posts - 61,comments - 0,trackbacks - 0

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 阅读(332) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理