I want to create a macro with OpenLane and then us...
# openlane
l
I want to create a macro with OpenLane and then use this macro in a top module, but it seems that the .lib file generated by OpenLane doesn't contain any information about power. Is it possible to also generate the power information? #openlane
v
report_power
generate power report for each corner. Check logs/signoff/*rcx_mcsta.nom.log
l
Hi @Vijayan Krishnan, I don't understand very well, do I have to put report_power in the config.json ?
v
share me
logs/signoff/*rcx_mcsta.nom.log
l
31-rcx_mcsta.min.log,33-rcx_mcsta.max.log,35-rcx_mcsta.nom.log
v
check 35-rcx_mcsta.nom.log
Copy code
===========================================================================
 report_power
============================================================================
======================= Fastest Corner ===================================

Group                  Internal  Switching    Leakage      Total
                          Power      Power      Power      Power (Watts)
----------------------------------------------------------------
Sequential             2.01e-06   5.32e-08   1.89e-09   2.06e-06   4.8%
Combinational          4.46e-06   3.97e-06   1.03e-09   8.43e-06  19.7%
Clock                  2.35e-05   8.79e-06   2.52e-09   3.23e-05  75.5%
Macro                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Pad                    0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
----------------------------------------------------------------
Total                  3.00e-05   1.28e-05   5.44e-09   4.28e-05 100.0%
                          70.0%      29.9%       0.0%

======================= Slowest Corner ===================================

Group                  Internal  Switching    Leakage      Total
                          Power      Power      Power      Power (Watts)
----------------------------------------------------------------
Sequential             1.31e-06   3.42e-08   1.87e-08   1.36e-06   4.5%
Combinational          3.27e-06   2.67e-06   5.23e-07   6.46e-06  21.2%
Clock                  1.67e-05   5.89e-06   5.94e-08   2.26e-05  74.3%
Macro                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Pad                    0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
----------------------------------------------------------------
Total                  2.12e-05   8.59e-06   6.02e-07   3.04e-05 100.0%
                          69.8%      28.2%       2.0%

======================= Typical Corner ===================================

Group                  Internal  Switching    Leakage      Total
                          Power      Power      Power      Power (Watts)
----------------------------------------------------------------
Sequential             1.71e-06   4.42e-08   1.89e-09   1.75e-06   4.8%
Combinational          3.96e-06   3.38e-06   3.96e-10   7.35e-06  19.9%
Clock                  2.03e-05   7.46e-06   2.37e-09   2.78e-05  75.3%
Macro                  0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
Pad                    0.00e+00   0.00e+00   0.00e+00   0.00e+00   0.0%
----------------------------------------------------------------
Total                  2.60e-05   1.09e-05   4.65e-09   3.69e-05 100.0%
                          70.5%      29.5%       0.0%

power_report_end
Is the report you're looking for?
l
Thank you, but I didn't understand how to use this information in the top module. Shouldn't this information be contained in the .lib file generated in this macro? Otherwise, how can I estimate the power dissipated by the macro within the system?
v
If I'm right
example_EF_SRAM
is your macro hardened now. respective power report seen above. Integrate the macro into top level and check the log again for top level power report.
l
Yes, that's correct. example_EF_SRAM is the macro module I want to integrate into the top module. But how is it possible for the top module to calculate the power dissipated by the macro if there is no information about it in the .lib file?
v
check
config.json
for
RUN_IRDROP_REPORT
is true or false?
l
false
v
@Kareem Farid please check this
k
@Luca Martis To my understanding, OpenSTA (tool used to generate .lib) can't generate a .lib with power information
Yes, that's correct. example_EF_SRAM is the macro module I want to integrate into the top module. But how is it possible for the top module to calculate the power dissipated by the macro if there is no information about it in the .lib file?
The tool should estimate power using GL + SPEF as an alternative to the lib. However, from our observation the results are not reliable.
l
Ok, perfect, thank you. Why the result are not reliable ?
k
we compared the results against commercial tools and they weren't accurate