在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的情況報告出來。
