ptpx功耗分析介绍

简单介绍一下PrimeTime-PX的功耗分析。

功耗的种类

ptpx 把功耗分成下面三种:

1. Leakage Power

Leakage Power 实际上也是静态功耗, 是指cell在没有翻转时的功耗。包含下面两种:

  • Intrinsic Leakage Power
    这个一般指的是,阈值电压降低,管子不能完全关断造成的漏电和扩散层与衬底之间的漏电。这类功耗和电压、电路的状态无关。

  • Gate Leakage Power
    这个指的是source到gate或者是,gate到drain的漏电。 这类功耗和栅氧厚度和电压有关系。

2. Dynamic power

Dynamic power是电路在toggle状态下的功耗, 包含下面两种:

  • internal power

内部功耗指的是cell的内部, 包含两部分。 第一部分是cell在toggle状态下对内部节点电容充放电造成的功耗;第二部分是电路翻转时, PMOS和NMOS有短时间的同时导通造成的功耗。

如图所示:

对应翻转较快的电路来说, 这种短路功耗比较小; 但是如果电路的翻转比较慢,短路功耗就比较大了。

  • switchjing power
    switchjing power指的是对cell外部节点充放电造成的功耗, 很显然, 电路翻转的越快, 这个功耗就越大。

功耗分析的flow

PTPX的功耗分析需要的输入文件有:

  • 标准单元库, 像综合一样,需要读入db文件;
  • 门级网表, 可以是pre-layout, 也可以是post-layout
  • 设计约束: 如果是scan-ready的网表, 那么分析scan power时, 需要的是scan mode的SDC;
  • 波形文件: 可以用function仿真产生的fsdb
  • SPEF 文件, 包含了net的寄生参数。

如下图所示:

PTPX tcl 示例

以分析peak power为例,ptpx的命令如下:

  1. 首先是power分析的一下设定:

    1
    2
    3
    4
    5
    6
    7
    8
    set power_enable_analysis true
    ## perform peak power analysis
    set power_analysis_mode time_based
    set power_enable_multi_rail_analysis true
    set power_domains_compatibility true
    set timing_save_pin_arrival_and_slak true
    set report_default_significant_digits 3
    set timing_use_zero_slew_for_annotated_arcs never
  2. 然后读入需要的文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ## set the stadard cell db path and netlist
    source set_env.tcl
    ## read nelist and link
    read_verilog $NET_LIST
    current_design my_design
    link
    ## read the SDC file
    source my_design_func.sdc
    ## update and check timing again
    update_timing
    check_timing
  3. 读入fsdb文件, 设定time window

    1
    2
    3
    4
    5
    6
    read_fsdb xxxx.fsdb -strip_path  test_top/dut -time {2300 3300}
    report_switching_activity -list_not_annotated
    set power_x_transition_derate_factor 1
    set power_match_state_for_logic_x 0
    ## check power
    check_power
  4. 设置power waveform并且输出报告

    1
    2
    3
    set_power_analysis_options -waveform_format fsdb -waveform_output peak
    update_power
    report_power