在average power analysis中,switching activity被分解为toggle rate和static probabilities两部分。
annotation的source:
Switching Activity Annotation:(优先级从高到低)
1) 来自VCD和SAIF这样的波形;
2) 命令set_switching_activity annotation某个individual design;
3) Annotation constant value on set/reset pins,infer_switching_activity –apply命令;
4) Annotation constant value,用命令set_case_analysis命令;
5) Clock net annotation,用命令create_clock命令;
set_switching_activity命令:
可以加入option,-toggle_rate和-static_probability。-period和-base_clock来指定time unit。
Infer_switching_activity命令:
在没有提供VCD和SAIF文件时,工具通过primary input和black boxes的output来进行power分析,
并根据default switching activity来评估nonannotated pin。
通过infer_switching_activity命令来防止reg的reset和set引脚,进行default处理。
Estimating Nonannotated Switching activity
1) 对于不能通过propagation进行annotated的信号,进行default activity处理。
2) 通过buffer和inverter的信号,以及FF的Q/QN端,进行implied处理。
Imply的方向包括forward和backward,为避免冲突,forward方向的imply优先级较高。
3) Propagating机制,PTPX通过一个zero_delay的simulation来annotate一些net的
toggle rate和static probability。
SAIF文件的annotation:
merge_saif命令,工具默认各个SAIF文件分别读入并处理switching activity,然后乘以各自的weight。
加入-simple_merge命令,首先weight各自的activity文件,后再propagating activity,并输出到一个SAIF文件中。
write_saif命令,将包含user-annotated和propagated的switching activity,输出到一个saif
文件。
report_switching_activity命令,将各个group的annotation的情况报告出来。