Files
OpenSTA/include/sta/PowerClass.hh
James Cherry e7eebc98a3 read_vcd, report_activity_annotation resolves #162 resolves $158
commit 02be8357f8ba158292faab0e8d8b8d220e69c842
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 15 15:59:20 2025 -0700

    sort regressions

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit b0e1d863d34853b70d342c6bb0baa400a08db207
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 15 15:44:07 2025 -0700

    PowerResult::incf*

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 23ed0ed05d8bbf83cc5b6fa7598f1253cbe2b222
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sun Jan 12 17:49:24 2025 -0700

    gzip vcd/saif

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit a5a1a7b80e00b2deb51505b2e60312e3c29284fe
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sun Jan 12 17:12:09 2025 -0700

    report_activity_annotation sort pins

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 6c149cc6d66addda4eee5f56dbe4731876f1efa9
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sun Jan 12 16:47:02 2025 -0700

    vcd/saif do not annotate internal pins

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit fe8c7c7fc7b2878cb16c7d2a57e1161555f9a36f
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sat Jan 11 17:09:22 2025 -0700

    report_activity_annotation

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 8a8f87ba05c6c6f31017288d573c23e92cac4f9e
Author: James Cherry <cherry@parallaxsw.com>
Date:   Fri Jan 10 11:57:22 2025 -0700

    ReadVcdActivies factor VcdCountReader

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit aa70ae987c4a749e53ae2f93c8ff04a3c28b0b08
Author: James Cherry <cherry@parallaxsw.com>
Date:   Fri Jan 10 09:06:09 2025 -0700

    vcd high time

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 242493e992949ee72493f4f15a0fe92630ad2f03
Author: James Cherry <cherry@parallaxsw.com>
Date:   Thu Jan 9 17:14:02 2025 -0700

    comment

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 8621a83d7abf5efcf54c24a1a16bba0c8eb5e441
Author: James Cherry <cherry@parallaxsw.com>
Date:   Thu Jan 9 17:11:22 2025 -0700

    ReadVcdActivities rm sta_

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit fc0327c39c5aef6d09580795f6a13abf9b9f8266
Author: James Cherry <cherry@parallaxsw.com>
Date:   Thu Jan 9 09:36:30 2025 -0700

    var name

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit a5b6e2ac66cef9355a9a87edcc185b483f5781ce
Author: James Cherry <cherry@parallaxsw.com>
Date:   Thu Jan 9 08:23:50 2025 -0700

    vcd passes

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit c0f6d268542b3dd431882cfa4e3d131d6d2fb933
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 20:19:27 2025 -0700

    vcd

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 8181e206ee39e4c3fdd69ef1d3463092763c3d2b
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 19:41:59 2025 -0700

    vcd debug

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 652736654b853d1f7fb64545c6a48500e1e3b83f
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 19:17:06 2025 -0700

    vcd bus support

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 03c877512d92b0148fd62cbc636da58ef6fb25ff
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 19:11:21 2025 -0700

    vcd

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 53bbd97a28d619ca87a546f34a3643c227b9df78
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 16:02:47 2025 -0700

    rm Vcd structs, ReadVcdActivities -> VcdReader

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 745efff41221c3b06ba19931e4f8a58e5b0758ae
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 15:46:49 2025 -0700

    vcd skip hpins

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit a9a6177e8b671f0619809611984ed16f2d1a5b7a
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 15:39:41 2025 -0700

    ReadVcdActivies rm vcd_

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 8b51b13b02c257d10385312d246e0da1f11b72f2
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 15:28:31 2025 -0700

    power_vcd1 passes

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 744669797d1a4189c417d9d2f359cbd1f5bc7113
Author: James Cherry <cherry@parallaxsw.com>
Date:   Wed Jan 8 10:16:35 2025 -0700

    vcd

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 0f0aeac1cd8349302b758ce4b79fd753063565f2
Author: James Cherry <cherry@parallaxsw.com>
Date:   Mon Jan 6 16:20:13 2025 -0800

    vcd reader

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 01d296ce9b3ad8ac7e6dddf28a41a718b4138869
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sun Jan 5 16:08:41 2025 -0800

    vcd rm max_var_width

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 9ffdb19074e5c38464b88ead0ec751ae7d3c506c
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sun Jan 5 16:03:06 2025 -0800

    vcd rm max_var_name_length_

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 5c577143d4a166bd133a9d97d1761b52b8e122dd
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sun Jan 5 15:58:29 2025 -0800

    ReadVcdActivities isa VcdReader

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 6914405d0799b967a92634fe1aa251aaea4cdfbc
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sat Jan 4 17:24:57 2025 -0800

    vcd parse rm StaState dependence

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit a0bd7aa5eee2e87c883776bf4840d117335e4a8b
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sat Jan 4 16:41:55 2025 -0800

    vcd headers

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

commit 4842d19d7a5c47d6ee46f297cb9404ab77fe2662
Author: James Cherry <cherry@parallaxsw.com>
Date:   Sat Jan 4 15:59:46 2025 -0800

    refactor vcd parser

    Signed-off-by: James Cherry <cherry@parallaxsw.com>

Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-01-15 16:20:21 -07:00

88 lines
2.0 KiB
C++

// OpenSTA, Static Timing Analyzer
// Copyright (c) 2024, Parallax Software, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
#pragma once
namespace sta {
class Power;
enum class PwrActivityOrigin
{
global,
input,
user,
vcd,
saif,
propagated,
clock,
constant,
defaulted,
unknown
};
class PwrActivity
{
public:
PwrActivity();
PwrActivity(float activity,
float duty,
PwrActivityOrigin origin);
float activity() const { return activity_; }
void setActivity(float activity);
float duty() const { return duty_; }
void setDuty(float duty);
PwrActivityOrigin origin() const { return origin_; }
void setOrigin(PwrActivityOrigin origin);
const char *originName() const;
void set(float activity,
float duty,
PwrActivityOrigin origin);
bool isSet() const;
private:
void check();
// In general activity is per clock cycle, NOT per second.
float activity_;
float duty_;
PwrActivityOrigin origin_;
static constexpr float min_activity = 1E-10;
};
class PowerResult
{
public:
PowerResult();
void clear();
float internal() const { return internal_; }
float switching() const { return switching_; }
float leakage() const { return leakage_; }
float total() const;
void incr(PowerResult &result);
void incrInternal(float pwr);
void incrSwitching(float pwr);
void incrLeakage(float pwr);
private:
float internal_;
float switching_;
float leakage_;
};
} // namespace