目录

proc_qor

Sourcing the attached proc_qor.tcl gives access to the following two procedures to generate and compare more readable QoR files than those produced by the report_qor command:

proc_qor

Reformats the output of the report_qor command.

proc_compare_qor

Compares up to six report_qor or proc_qor output files.

These procedures can be used in IC Compiler, Design Compiler, and PrimeTime with or without multicorner-multimode (MCMM) and generate CSV files for importing to Microsoft Excel.

Usage of proc_qor

proc_qor
   [-existing_qor_file report_qor file]
   [-csv_file output_csv_file_name]
   [-units ps or ns]
   [-skew]

-existing_qor_file report_qor file

Specifies the name of an existing report_qor report file to reformat.

If you do not specify this option, proc_qor runs the report_qor command on the currently opened design to generate a QoR report file.

-csv_file output_csv_file_name

Specifies the name for the output CSV file.

If you do not specify this option, proc_qor creates a file named qor.csv.

-skew

Adds skew columns for the worst negative slack and total negative slack paths accounting for clock reconvergence pessimism removal. Examples of proc_qor

The following example runs the report_qor command and reformats the generated report. The reformatted report is also shown. Note that the path group names in the generated report have been changed deliberately.

icc_shell> proc_qor

Running report_qor

NVP    - No. of Violating Paths
FREQ   - Estimated Frequency, not accurate in some cases, multi/half-cycle, etc
WNS(H) - Hold WNS
TNS(H) - Hold TNS
NVP(H) - Hold NVP

Path Group                        WNS        TNS     NVP      FREQ      WNS(H)     TNS(H)  NVP(H)
-------------------------------------------------------------------------------------------------
OutputPaths                    -0.081       -2.4     139     951MHz      0.000        0.0       0
**clock_gating_default**       -0.075       -2.0     222     957MHz     -0.336    -2569.0    7663
sys_clkt                       -0.044       -2.3      78     986MHz     -0.133       -0.9      83
PathGroup1                     -0.031      -19.7    1744     999MHz     -0.149     -269.7   15061
PathGroup2                     -0.025       -8.4     834    1005MHz     -0.050      -44.1    4276
PathGroup3                     -0.013       -7.9    1279    1017MHz     -0.052      -91.2    8800
InputPaths                     -0.013       -0.1      26    1017MHz     -1.063   -66548.8  157560
PathGroup4                     -0.004       -0.2     129    1027MHz     -0.100     -144.7   12736
PathGroup5                      0.000        0.0       0    1031MHz     -0.050      -32.1    2829
PathGroup6                      0.000       -0.0      11    1031MHz     -0.038      -14.1    1819
PathGroup7                      0.000        0.0       0    1031MHz     -0.027       -0.1      12
PathGroup8                      0.000       -0.0       2    1031MHz     -0.027       -2.3     222
PathGroup9                      0.000       -0.0       1    1031MHz     -0.051       -4.5     319
PathGroup0                      0.000        0.0       0    1031MHz     -0.022       -0.8      69
PathGroup10                     0.000       -0.0       2    1031MHz     -0.169     -156.3   10409
PathGroup11                     0.000        0.0       0    1031MHz     -0.031       -1.6     218
PathGroup12                     0.000       -0.0       7    1031MHz     -0.036      -15.5    2017
PathGroup13                     0.001        0.0       0    1032MHz     -0.026       -0.8      65
PathGroup14                     0.001        0.0       0    1032MHz     -0.017       -0.2      28
PathGroup15                     0.002        0.0       0    1033MHz     -0.029       -1.5     145
PathGroup16                     0.002        0.0       0    1033MHz     -0.006       -0.0       2
PathGroup17                     0.004        0.0       0    1035MHz     -0.020       -0.2      25
PathGroup18                     0.012        0.0       0    1044MHz     -0.021       -0.2      24
PathGroup19                     0.208        0.0       0    1312MHz     -0.034       -0.6      64
-------------------------------------------------------------------------------------------------
Summary                        -0.081      -43.1    4474     951MHz     -1.063   -69899.3  224446
-------------------------------------------------------------------------------------------------
    CAP  FANOUT    TRAN          TDRC      CELLA    BUFS     LEAFS       TNETS      CTBUF    REGS
-------------------------------------------------------------------------------------------------
      0       0     896          1059    2025162    181K     1137K       1161K          0  163852
-------------------------------------------------------------------------------------------------

The following example reformats the QoR report in the file named qor.rpt and pipes the output to a file named newreport.qor.

icc_shell> proc_qor -existing_qor_file qor.rpt > newreport.qor

The following example runs the report_qor command, reformats the generated report, and adds skew columns for worst negative slack and total negative slack paths accounting for clock reconvergence pessimism removal.

icc_shell> proc_qor -skew

Running report_qor
Getting setup timing paths for skew analysis
Getting hold timing paths for skew analysis

Skews numbers reported include any ocv derates, crpr value is close, but may not match report_timing UITE-468

SKEW - Skew on WNS Path
AVGSKW - Average Skew on TNS Paths

Path Group        WNS       SKEW        TNS     AVGSKW     NVP      FREQ      WNS(H)    SKEW(H)  TNS(H)  AVGSKW(H)  NVP(H)
--------------------------------------------------------------------------------------------------------------------------
InputPaths     -0.213     -0.072      -33.3     -0.065     536     845MHz      0.000      0.000     0.0      0.000       0
PathGroup0     -0.165     -0.079     -210.4     -0.090    4194     881MHz     -0.010      0.043    -0.0      0.022      13
CGEnable       -0.164     -0.217      -55.5     -0.121    1849     882MHz      0.000      0.000     0.0      0.000       0
PathGroup1     -0.153     -0.166     -444.8     -0.065   11409     890MHz     -0.020      0.010    -0.8      0.011     224
PathGroup2     -0.143     -0.102      -20.4     -0.070     500     898MHz     -0.014     -0.000    -0.1      0.008      34
PathGroup3     -0.137     -0.079     -125.0     -0.042    4649     903MHz     -0.027      0.019    -1.8      0.015     317
PathGroup4     -0.134     -0.111      -23.1     -0.054    1111     906MHz     -0.036      0.029    -2.0      0.025     266
OutputPaths    -0.132     -0.102      -22.7     -0.050     522     907MHz      0.000      0.000     0.0      0.000       0
PathGroup6     -0.127     -0.073       -7.3     -0.052     229     912MHz      0.000      0.000     0.0      0.000       0
PathGroup7     -0.126     -0.032     -122.2     -0.046    2906     912MHz     -0.018      0.031    -0.1      0.028       5
PathGroup8     -0.120     -0.048      -12.5     -0.050     391     917MHz     -0.003      0.019    -0.0      0.010       4
PathGroup9     -0.101     -0.040      -63.0     -0.082    2708     934MHz     -0.037     -0.009    -1.5      0.003      92
PathGroup10    -0.096     -0.008      -44.4     -0.031    3045     938MHz     -0.025      0.022    -1.0      0.013     221
PathGroup11    -0.091     -0.027     -146.8     -0.042    7574     943MHz     -0.021      0.023    -0.4      0.009      99
PathGroup12    -0.086     -0.065      -49.4     -0.067    1540     947MHz      0.000      0.000     0.0      0.000       0
PathGroup13    -0.078     -0.033      -86.3     -0.046    4265     954MHz     -0.005      0.009    -0.1      0.004      50
PathGroup14    -0.077     -0.053       -4.4     -0.037     136     955MHz     -0.004      0.008    -0.0      0.011       8
PathGroup15    -0.061      0.021      -11.1     -0.026     507     970MHz      0.000      0.000     0.0      0.000       0
sys_clk        -0.060     -0.175       -1.3     -0.074      64     971MHz     -0.020      0.025    -0.1      0.015      27
PathGroup16    -0.045     -0.028       -1.0     -0.041      95     985MHz      0.000      0.000     0.0      0.000       0
PathGroup17    -0.041     -0.051       -0.1     -0.052       3     989MHz     -0.014      0.027    -0.0      0.019       2
PathGroup18    -0.034     -0.017       -1.6     -0.023     178     996MHz     -0.014      0.033    -0.1      0.021      31
PathGroup19    -0.028     -0.091       -1.1     -0.066      68    1002MHz     -0.001      0.003    -0.0      0.002       2
PathGroup20     0.000      0.000        0.0      0.000       0    1031MHz     -0.002      0.004    -0.0      0.001       9
--------------------------------------------------------------------------------------------------------------------------
Summary        -0.213     -0.217    -1487.7     -0.121   48479     845MHz     -0.037      0.043    -8.0      0.028    1404
--------------------------------------------------------------------------------------------------------------------------
    CAP  FANOUT    TRAN     TDRC      CELLA       BUFS      LEAFS   TNETS      CTBUF       REGS
-----------------------------------------------------------------------------------------------
      1       0   26730    26731    2610611       377K      1399K   1402K       1965     163892
-----------------------------------------------------------------------------------------------

Usage of proc_compare_qor

proc_compare_qor
   [-csv_file output_csv_file_name]
   [-tag_list "column_headings"]
   -qor_file_list "report_files"

-csv_file output_csv_file_name

Specifies the name for for the output CSV file.

If you do not specify this option, proc_compare_qor creates a file named compare_qor.csv.

-tag_list “column_headings”

Specifies the column headings used for the report files. The number of strings specified must equal the number of report files specified.

If you do not specify this option, proc_compare_qor uses qor_i for the column headings, where i is 0 for the first report file and is incremented by one for each report file.

-qor_file_list “report_files”

Specifies the names of the QoR report files to compare. You can specify up to six report files. The report files can be

Examples of proc_compare_qor

The following command compares the rp1.qor and rp2.qor reports. The generated report uses the default column headings of “qor_0” and “qor_1”.

icc_shell> proc_compare_qor -qor_file_list “rp1.qor rp2.qor”

                      qor_0    qor_1    qor_0    qor_1   qor_0   qor_1    qor_0    qor_1    qor_0    qor_1   qor_0   qor_1               
Path Group              WNS      WNS      TNS      TNS     NVP     NVP     WNSH     WNSH     TNSH     TNSH    NVPH    NVPH               
--------------------------------------------------------------------------------------------------------------------------
OutputPaths          -0.124   -0.045     -1.7     -0.5     116     122    0.000    0.000      0.0      0.0       0       0               
InputPaths           -0.090   -0.091     -4.4     -2.0     120     155   -1.063   -0.704 -69117.7   -561.7  165231    5856 
PathGroup0           -0.067    0.000     -5.7     -0.0     279       2   -0.026   -0.022     -2.2     -0.1     213      13 
PathGroup0           -0.041   -0.040    -29.5     -6.9    2618     536   -0.156   -0.144   -253.0   -191.2   14926   13390   
PathGroup0           -0.033   -0.022     -5.2     -0.8     494      81   -0.114   -0.123   -125.4   -100.3   11058   10140      
PathGroup0           -0.026   -0.006    -14.3     -0.0    1401      23   -0.055   -0.060    -91.8    -85.1    8658    8631      
PathGroup0           -0.010    0.000     -0.4     -0.0      83       1   -0.039   -0.041    -12.3     -8.5    1680    1366       
PathGroup0           -0.004   -0.002     -0.0     -0.0      22       2   -0.055   -0.027     -3.6     -2.5     273     200        
PathGroup0           -0.001   -0.019     -0.0     -1.9      83     401   -0.046   -0.082    -15.8    -18.2    1999    2101      
PathGroup0            0.000   -0.012     -0.0     -0.5      24     113   -0.050   -0.072    -40.8    -42.2    3941    4056     
PathGroup0            0.000    0.000     -0.0     -0.0       1       4   -0.030   -0.078     -0.8     -2.7     117     139  
PathGroup0            0.000   -0.076      0.0    -13.1       0     412   -0.022   -0.018     -0.2     -0.2      23      15      
PathGroup0            0.000    0.000      0.0      0.0       0       0   -0.055   -0.050    -32.3    -20.0    2674    2026       
PathGroup0            0.000    0.000      0.0      0.0       0       0   -0.022   -0.025     -0.3     -0.2      22      34    
PathGroup0            0.000    0.000     -0.0     -0.0       1       2   -0.023   -0.020     -0.8     -0.8      67      69     
PathGroup0            0.000    0.000      0.0      0.0       0       0   -0.009   -0.019     -0.0     -0.3       1      34          
PathGroup0            0.000    0.000     -0.0      0.0       1       0   -0.019   -0.012     -0.2     -0.0      24       3      
PathGroup0            0.000   -0.001     -0.0     -0.0       5      10   -0.166   -0.102   -156.7   -115.0   10294    9350        
sys_clk               0.000    0.000     -0.0      0.0       1       0   -0.033   -0.074     -3.1     -2.0     342     203   
PathGroup0            0.001   -0.001      0.0     -0.0       0       2   -0.022   -0.023     -0.5     -0.6      57      43     
PathGroup0            0.001    0.000      0.0      0.0       0       0   -0.018   -0.019     -0.6     -0.8      67      75     
PathGroup0            0.003    0.001      0.0      0.0       0       0   -0.084   -0.126     -2.5    -14.8      37     205       
NPathGroup            0.202       NA      0.0       NA       0      NA   -0.028       NA     -0.6       NA      63      NA 
MPathGroup               NA    0.181       NA      0.0      NA       0       NA   -0.039       NA     -1.9      NA     112                     
--------------------------------------------------------------------------------------------------------------------------
Summary              -0.124   -0.091    -61.3    -25.7    5249    1866   -1.063   -0.704 -69861.3  -1169.2  221767   58061 
------------------------------------------------------------------------------------------------------------------------------------------
                      qor_0    qor_1    qor_0    qor_1   qor_0   qor_1    qor_0    qor_1    qor_0    qor_1   qor_0   qor_1   qor_0   qor_1  
                        DRC      DRC    CELLA    CELLA     BUF     BUF     LEAF     LEAF    CBUFS    CBUFS    REGS    REGS    NETS    NETS   
------------------------------------------------------------------------------------------------------------------------------------------
                        682       38  2100771  2481199    203K    261K    1164K    1282K        0        0  163892  163892   1189K   1263K  
------------------------------------------------------------------------------------------------------------------------------------------

The following command compares the rp1.qor and rp2.qor reports and pipes the result to a file named compare.qor. The column headings are “place” and “clock” instead of “qor_0” and “qor_1”.

icc_shell> proc_compare_qor -qor_file_list “rp1.qor rp2.qor” [-tag_list “place clock”] > compare.qor

The following example compares five report files and uses column headings of “dc”, “place”, “clock”, “route”, and “pt” in the generated report.

icc_shell> proc_compare_qor \
  -qor_file_list "dc.qor place.qor clock.qor route.qor pt.qor" \
  -tag_list "dc place clock route pt"

LIMITATIONS

The clock reconvergence pessimism removal (CRPR) value used when you specify the -skew option with proc_qor might not match the report_timing output, but it is close. See the UITE-468 message. The calculated frequency (FREQ) is based on the worst negative slack (WNS) and clock period reported in the report_qor output and is not accurate in some cases, such as pure combinational paths, half paths, or multicycle paths. In PrimeTime, due to runtime and complexity, only 25 thousand paths per path group and simple methods are used to calculate total negative slack (TNS) and number of violating paths (NVP). proc_qor.tcl - contains both proc_qor and proc_compare_qor procedures

参考