• 修timing中的SI-noise问题


    1. source pinlist.tcl
    2. set file [open attribute.log w]
    3. foreach pin $pinList {\
    4. set vicArray [get_property [gt_pins $pin] noise_victim]
    5. foreach_in_collection vic $vicArray {\
    6. set input_peak [get_property $vic input_peak]
    7. if {$input_peak > 250} {}
    8. set vic_name
    9. set x [get_property [get_net -of_objects $vic_name] name]
    10. set level [get_property $vic level]
    11. set ccap [get_property $vic level]
    12. set vdd [get_property [get_pins $vic_name] power_rail_voltage_max]
    13. set libs [get_libs -of_objects [get_lib_cells -of_objects [get_cells -of_objects [get_pins $vic_name]]]]
    14. foreach_in_collection libName $libs {set library [get_property $libName hierachy_name]}
    15. set prop_glitch [get_property $vic prop_glitch]
    16. set_cap [format %.2f ccap]
    17. set_annocated_glitch [get_property $vic annocated_glitch]
    18. set reciever_peak [get_property $vic reciever_peak]
    19. set input_peak_threshold [get_property $vic input_failure_threshold]
    20. set reciever_peak_threshold [get_property $vic reciever_peak_threshold]
    21. puts $file "Peak(mV) Level Total(fF) Vdd(V) Library VictimNet"
    22. puts $file "$input_peak $level $cap $vdd $library $vic_name {$x}"
    23. if {$reciever_peak > 0} {\
    24. puts $file "receiver output peak :
    25. puts $file "value recieverNet "
    26. puts $file "receiver_peak (receiver_peak_threshold) $vic_name(CELL)"
    27. }
    28. if {$input_peak > 0} {\
    29. puts $file "reciever input peak"
    30. puts $file "value receiverNet"
    31. puts $file "$input_peak ($input_peak_threshold) $vic_name (CELL)"
    32. }
    33. puts $file "\nConstraints:"
    34. puts $file "Source Peak(mV) Offset(ps) Slew(ps) Xcap(fF) Vdd(V) Edge Status Net"
    35. set aggs [get_property $vic attackers]
    36. foreach_in_collection current_aggs $aggs {\
    37. set hierarchy_name [get_property $current_agg hierarchy_name]
    38. set noise_peak [get_property $current_agg noise_peak]
    39. set state [get_property $current_agg state]
    40. set slew [get_property $current_agg slew]
    41. set edge [get_property $current_agg transition]
    42. if {string match ~* $hierarchy_name } {\
    43. set vdd [get_property [get_pins $vic_name] power_rail_voltage_name]
    44. } else {\
    45. set vdd [get_property [get_pins -of_objects [get_nets $hierarchical_name]] power_rail_voltage_max]
    46. }
    47. set coupling_capacitance [get_property $current_agg coupling_capacitance]
    48. puts $file "Cpl: $noise_peak $slew $edge $vdd $coupling_capacitance $state $hierarchy_name"
    49. if {$prop_glitch > 0} {\
    50. puts $file "Prop: $prop_glitch"
    51. }
    52. }
    53. }
    54. }
    55. close $file

  • 相关阅读:
    python之Scrapy爬虫案例:豆瓣
    第3章 docker容器管理
    116.(前端)商品管理删除实现——前端使用messagebox弹窗确认发送请求
    [java刷算法]牛客—剑指offer二叉树
    华为云计算之物理节点CNA安装教程
    CMAK学习
    Learn Prompt-人工智能基础
    如何从一个美术变成程序员?
    mac下配置环境-node以及nvm
    Elasticsearch搜索引擎:ES的segment段合并原理
  • 原文地址:https://blog.csdn.net/qq_44347276/article/details/133994778