Hi!
Thank you for your valuable replies!
@erikl: Yes, I double checked that I look at the dynamic power only. Here is the report_power output for 100kHz:
Code:
Global Operating Voltage = 3.3
Power-specific unit information :
Voltage Units = 1V
Capacitance Units = 1.000000pf
Time Units = 1ns
Dynamic Power Units = 1mW (derived from V,C,T units)
Leakage Power Units = 1pW
Cell Internal Power = 226.3002 uW (47%)
Net Switching Power = 253.0959 uW (53%)
---------
Total Dynamic Power = 479.3961 uW (100%)
Cell Leakage Power = 93.7467 uW
whereas the output for 10MHz is
Code:
Cell Internal Power = 11.1608 mW (62%)
Net Switching Power = 6.8402 mW (38%)
---------
Total Dynamic Power = 18.0010 mW (100%)
Cell Leakage Power = 93.7467 uW
with a factor of 18mW/479uW = 37.6 instead of 100.
Interestingly, the ratio between cell internal and net switching power changes a lot.
@hoanglongroyal:
The simulation resolution is 1ps, IMHO small enough.
In synthesis I use 10MHz as clock frequency, so 100kHz is
lower than the target frequency. This means that I don't overclock the circuit at 10MHz, but underclock it at 100kHz.
Code:
create_clock -waveform {0.0 50.0} $port_clk -period 100.0 -name "CLK"
For the power analysis, I read in the post-P&R SDC file, which also defines the clock with 10MHz.
@jbeniston: Due to the create_clock with 10MHz and the SAIF file with only 100kHz, Design Compiler complains (when propagating the switching activity, either with propagate_switching_activity or with report_power) with the following warning:
Code:
Warning: The derived toggle rate value (0.020000) for the clock net 'Clk_i' conflicts with the annotated value (0.000200). Using the annotated value. (PWR-12)
@all: Thank you for sorting out errors, but I'm still confused why 100x frequency only results in 37x power.
I still have to do measurements (next week), but earlier measurements with simple microcontrollers and with an older testchip with a different process showed a nice linear relationship between frequency and power. Therefore currently I suspect that Design Compiler is doing something smart here, which I don't yet know how to control. Do you have any ideas?
Thanks
Hansi