这里会显示出您选择的修订版和当前版本之间的差别。
— |
vlsi:icc:qor-re-format [2012/03/07 13:07] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== 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 ===== | ||
+ | |||
+ | <code> | ||
+ | proc_qor | ||
+ | [-existing_qor_file report_qor file] | ||
+ | [-csv_file output_csv_file_name] | ||
+ | [-units ps or ns] | ||
+ | [-skew] | ||
+ | </code> | ||
+ | |||
+ | -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 | ||
+ | <code> | ||
+ | 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 | ||
+ | ------------------------------------------------------------------------------------------------- | ||
+ | </code> | ||
+ | |||
+ | 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 | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | ----------------------------------------------------------------------------------------------- | ||
+ | </code> | ||
+ | |||
+ | ===== Usage of proc_compare_qor ===== | ||
+ | |||
+ | <code> | ||
+ | proc_compare_qor | ||
+ | [-csv_file output_csv_file_name] | ||
+ | [-tag_list "column_headings"] | ||
+ | -qor_file_list "report_files" | ||
+ | </code> | ||
+ | |||
+ | -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 | ||
+ | * Report files generated by the report_qor command | ||
+ | * Report files generated by proc_qor with or without the -skew option | ||
+ | * A combination of these report files | ||
+ | |||
+ | ==== 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" | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | ------------------------------------------------------------------------------------------------------------------------------------------ | ||
+ | </code> | ||
+ | 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. | ||
+ | |||
+ | <code> | ||
+ | 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" | ||
+ | </code> | ||
+ | |||
+ | ===== 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 | ||
+ | |||
+ | ===== 参考 ===== | ||
+ | * https://solvnet.synopsys.com/retrieve/032515.html |