首页 > 其他 > 详细

Eco Auto

时间:2020-01-08 02:13:46      阅读:64      评论:0      收藏:0      [点我收藏+]

proc is_hvt {ref} {
  if {[string match "*_HVT" $ref]} {
    return 1
  } else {return 0}
}
proc is_lvt {ref} {
  if {[string match "*_LVT" $ref]} {
    return 1
  } else {return 0}
}
proc is_svt {ref} {
  if {![is_hvt $ref] && ![is_lvt $ref]} {
    return 1
  } else {return 0}
}

proc get_lvt {ref} {
  if {[is_hvt $ref]} {
    return [string map {"HVT" "LVT"} $ref]
  } elseif {[is_svt $ref]} {
    return "${ref}_LVT"
  } else {
    return $ref
  }
}


#set endp oc8051_dptr1_data_hi_reg_7_/D

proc eco_auto_fix_setup_on_one_path {path} {
  set points [get_attri $path points]
  foreach_in_coll point $points {
    set obj [get_attri $point object]
    set dir [get_attri $obj direction]
    if {$dir=="in"} {continue}
    set objn [get_attri $obj full_name]
    set inst [file dir $objn]
    set cell [get_cells $inst]
    set isseq [get_attri $cell is_sequential]
    if {$isseq=="true"} {continue}
    set ref [get_attri $cell ref_name]
    echo "$ref \t $inst"
    if {[is_lvt $ref]} {continue}
    set lvt [get_lvt $ref]
    size_cell $inst $lvt
    set ::SIZE_FLAG 1
  }
}
proc eco_auto_fix_setup_to_endp {endp} {
  set path [get_timing_paths -to $endp -group reg2reg]
  set slk [get_attri $path slack]
  set ::SIZE_FLAG 1
  while {$slk<0 && $::SIZE_FLAG==1} {
    set ::SIZE_FLAG 0
    eco_auto_fix_setup_on_one_path $path
    set path [get_timing_paths -to $endp -group reg2reg]
    set slk [get_attri $path slack]
  }
  echo "#break loop."
  echo "#slk = $slk, SIZE_FLAG = \ $::SIZE_FLAG"
}

 

Eco Auto

原文:https://www.cnblogs.com/CloudX/p/8648207.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!