From 892324dfd96dd57993c815d0a8ac6183770a2ee2 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Thu, 21 Mar 2019 16:19:16 -0700 Subject: [PATCH] DelayNormal1 --- CMakeLists.txt | 2 + doc/OpenSTA.odt | Bin 75753 -> 75114 bytes doc/OpenSTA.pdf | Bin 152296 -> 152393 bytes graph/Delay.hh | 5 +- graph/DelayNormal1.cc | 419 ++++++++++++++++++++++++++++++++++++++++++ graph/DelayNormal1.hh | 157 ++++++++++++++++ graph/DelayNormal2.cc | 2 +- 7 files changed, 583 insertions(+), 2 deletions(-) create mode 100644 graph/DelayNormal1.cc create mode 100644 graph/DelayNormal1.hh diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fe44d6e..981c73d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,7 @@ set(STA_SOURCE dcalc/UnitDelayCalc.cc graph/DelayFloat.cc + graph/DelayNormal1.cc graph/DelayNormal2.cc graph/Graph.cc graph/GraphCmp.cc @@ -227,6 +228,7 @@ set(STA_HEADERS graph/Delay.hh graph/DelayFloat.hh + graph/DelayNormal1.hh graph/DelayNormal2.hh graph/Graph.hh graph/GraphClass.hh diff --git a/doc/OpenSTA.odt b/doc/OpenSTA.odt index a72ceb436413d78ac0316007c7ba2d6538f094d4..1208310014739ad35dd8e91c4a72712b7e0d9e2a 100644 GIT binary patch delta 41684 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%0A@YuyxP6a#6BMDD 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 diff --git a/doc/OpenSTA.pdf b/doc/OpenSTA.pdf index 8b617e5196083a5fd93181577a949bb3a6ebb202..8e7a3b33a207efc3da5cb9b3f9d085d8da858a03 100644 GIT binary patch delta 12463 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. + +#include "StaConfig.hh" +#include // sqrt +#include "Machine.hh" +#include "Error.hh" +#include "StringUtil.hh" +#include "Fuzzy.hh" +#include "Units.hh" +#include "StaState.hh" +#include "Delay.hh" + +// SSTA compilation. +#if (SSTA == 1) + +namespace sta { + +inline float +square(float x) +{ + return x * x; +} + +static Delay delay_init_values[MinMax::index_count]; + +void +initDelayConstants() +{ + delay_init_values[MinMax::minIndex()] = MinMax::min()->initValue(); + delay_init_values[MinMax::maxIndex()] = MinMax::max()->initValue(); +} + +const Delay & +delayInitValue(const MinMax *min_max) +{ + return delay_init_values[min_max->index()]; +} + +Delay::Delay() : + mean_(0.0), + sigma2_{0.0} +{ +} + +Delay::Delay(float mean) : + mean_(mean), + sigma2_{0.0} +{ +} + +Delay::Delay(float mean, + float sigma2) : + mean_(mean), + sigma2_{sigma2} +{ +} + +float +Delay::sigma() const +{ + if (sigma2_ < 0.0) + // Sigma is negative for crpr to offset sigmas in the common + // clock path. + return -sqrt(-sigma2_); + else + return sqrt(sigma2_); +} + +float +Delay::sigma2() const +{ + return sigma2_; +} + +void +Delay::operator=(const Delay &delay) +{ + mean_ = delay.mean_; + sigma2_ = delay.sigma2_; +} + +void +Delay::operator=(float delay) +{ + mean_ = delay; + sigma2_ = 0.0; +} + +void +Delay::operator+=(const Delay &delay) +{ + mean_ += delay.mean_; + sigma2_ += delay.sigma2_; +} + +void +Delay::operator+=(float delay) +{ + mean_ += delay; +} + +Delay +Delay::operator+(const Delay &delay) const +{ + return Delay(mean_ + delay.mean_, + sigma2_ + delay.sigma2_); +} + +Delay +Delay::operator+(float delay) const +{ + return Delay(mean_ + delay, sigma2_); +} + +Delay +Delay::operator-(const Delay &delay) const +{ + return Delay(mean_ - delay.mean_, + sigma2_ + delay.sigma2_); +} + +Delay +Delay::operator-(float delay) const +{ + return Delay(mean_ - delay, sigma2_); +} + +Delay +Delay::operator-() const +{ + return Delay(-mean_, sigma2_); +} + +void +Delay::operator-=(float delay) +{ + mean_ -= delay; +} + +void +Delay::operator-=(const Delay &delay) +{ + mean_ -= delay.mean_; + sigma2_ -= delay.sigma2_; +} + +bool +Delay::operator==(const Delay &delay) const +{ + return mean_ == delay.mean_ + && sigma2_ == delay.sigma2_; +} + +bool +Delay::operator>(const Delay &delay) const +{ + return mean_ > delay.mean_; +} + +bool +Delay::operator>=(const Delay &delay) const +{ + return mean_ >= delay.mean_; +} + +bool +Delay::operator<(const Delay &delay) const +{ + return mean_ < delay.mean_; +} + +bool +Delay::operator<=(const Delay &delay) const +{ + return mean_ <= delay.mean_; +} + +//////////////////////////////////////////////////////////////// + +Delay +makeDelay(float delay, + float sigma, + float) +{ + return Delay(delay, square(sigma)); +} + +Delay +makeDelay2(float delay, + float sigma2, + float ) +{ + return Delay(delay, sigma2); +} + +bool +delayIsInitValue(const Delay &delay, + const MinMax *min_max) +{ + return fuzzyEqual(delay.mean(), min_max->initValue()) + && delay.sigma2() == 0.0; +} + +bool +fuzzyZero(const Delay &delay) +{ + return fuzzyZero(delay.mean()) + && fuzzyZero(delay.sigma2()); +} + +bool +fuzzyEqual(const Delay &delay1, + const Delay &delay2) +{ + return fuzzyEqual(delay1.mean(), delay2.mean()) + && fuzzyEqual(delay1.sigma2(), delay2.sigma2()); +} + +bool +fuzzyLess(const Delay &delay1, + const Delay &delay2) +{ + return fuzzyLess(delay1.mean(), delay2.mean()); +} + +bool +fuzzyLess(const Delay &delay1, + float delay2) +{ + return fuzzyLess(delay1.mean(), delay2); +} + +bool +fuzzyLessEqual(const Delay &delay1, + const Delay &delay2) +{ + return fuzzyLessEqual(delay1.mean(), delay2.mean()); +} + +bool +fuzzyLessEqual(const Delay &delay1, + float delay2) +{ + return fuzzyLessEqual(delay1.mean(), delay2); +} + +bool +fuzzyLessEqual(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max) +{ + if (min_max == MinMax::max()) + return fuzzyLessEqual(delay1.mean(), delay2.mean()); + else + return fuzzyGreaterEqual(delay1.mean(), delay2.mean()); +} + +bool +fuzzyGreater(const Delay &delay1, + const Delay &delay2) +{ + return fuzzyGreater(delay1.mean(), delay2.mean()); +} + +bool +fuzzyGreater(const Delay &delay1, + float delay2) +{ + return fuzzyGreater(delay1.mean(), delay2); +} + +bool +fuzzyGreaterEqual(const Delay &delay1, + const Delay &delay2) +{ + return fuzzyGreaterEqual(delay1.mean(), delay2.mean()); +} + +bool +fuzzyGreaterEqual(const Delay &delay1, + float delay2) +{ + return fuzzyGreaterEqual(delay1.mean(), delay2); +} + +bool +fuzzyGreater(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max) +{ + if (min_max == MinMax::max()) + return fuzzyGreater(delay1.mean(), delay2.mean()); + else + return fuzzyLess(delay1.mean(), delay2.mean()); +} + +bool +fuzzyGreaterEqual(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max) +{ + if (min_max == MinMax::max()) + return fuzzyGreaterEqual(delay1.mean(), delay2.mean()); + else + return fuzzyLessEqual(delay1.mean(), delay2.mean()); +} + +bool +fuzzyLess(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max) +{ + if (min_max == MinMax::max()) + return fuzzyLess(delay1.mean(), delay2.mean()); + else + return fuzzyGreater(delay1.mean(), delay2.mean()); +} + +Delay +operator+(float delay1, + const Delay &delay2) +{ + return Delay(delay1 + delay2.mean(), + delay2.sigma2()); +} + +Delay +operator/(float delay1, + const Delay &delay2) +{ + return Delay(delay1 / delay2.mean(), + delay2.sigma2()); +} + +Delay +operator*(const Delay &delay1, + float scale) +{ + float scale2 = square(scale); + return Delay(delay1.mean() * scale, + delay1.sigma2() * scale2); +} + +float +delayRatio(const Delay &delay1, + const Delay &delay2) +{ + return delay1.mean() / delay2.mean(); +} + +float +delayAsFloat(const Delay &delay, + const EarlyLate *early_late, + float sigma_factor) +{ + if (early_late == EarlyLate::early()) + return delay.mean() - delay.sigma() * sigma_factor; + else if (early_late == EarlyLate::late()) + return delay.mean() + delay.sigma() * sigma_factor; + else + internalError("unknown early/late value."); +} + +float +delaySigma2(const Delay &delay, + const EarlyLate *) +{ + return delay.sigma2(); +} + +const char * +delayAsString(const Delay &delay, + const StaState *sta) +{ + return delayAsString(delay, sta, sta->units()->timeUnit()->digits()); +} + +const char * +delayAsString(const Delay &delay, + const StaState *sta, + int digits) +{ + const Unit *unit = sta->units()->timeUnit(); + if (sta->pocvEnabled()) { + float sigma = delay.sigma(); + return stringPrintTmp("%s|%s", + unit->asString(delay.mean(), digits), + unit->asString(sigma, digits)); + } + else + return unit->asString(delay.mean(), digits); +} + +const char * +delayAsString(const Delay &delay, + const EarlyLate *early_late, + const StaState *sta, + int digits) +{ + float mean_sigma = delayAsFloat(delay, early_late, sta->sigmaFactor()); + return sta->units()->timeUnit()->asString(mean_sigma, digits); +} + +} // namespace +#endif diff --git a/graph/DelayNormal1.hh b/graph/DelayNormal1.hh new file mode 100644 index 00000000..a286c934 --- /dev/null +++ b/graph/DelayNormal1.hh @@ -0,0 +1,157 @@ +// OpenSTA, Static Timing Analyzer +// Copyright (c) 2019, 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 . + +#ifndef STA_DELAY_NORMAL1_H +#define STA_DELAY_NORMAL1_H + +#include "MinMax.hh" + +namespace sta { + +class Delay; +class StaState; + +// Normal distribution with std deviation. +class Delay +{ +public: + Delay(); + Delay(float mean); + Delay(float mean, + float sigma2); + float mean() const { return mean_; } + float sigma() const; + // sigma^2 + float sigma2() const; + void operator=(const Delay &delay); + void operator=(float delay); + void operator+=(const Delay &delay); + void operator+=(float delay); + Delay operator+(const Delay &delay) const; + Delay operator+(float delay) const; + Delay operator-(const Delay &delay) const; + Delay operator-(float delay) const; + Delay operator-() const; + void operator-=(float delay); + void operator-=(const Delay &delay); + bool operator==(const Delay &delay) const; + bool operator>(const Delay &delay) const; + bool operator>=(const Delay &delay) const; + bool operator<(const Delay &delay) const; + bool operator<=(const Delay &delay) const; + +private: + float mean_; + // Sigma^2 + float sigma2_; +}; + +const Delay delay_zero(0.0); + +void +initDelayConstants(); + +Delay +makeDelay(float delay, + float sigma_early, + float sigma_late); + +Delay +makeDelay2(float delay, + // sigma^2 + float sigma_early, + float sigma_late); + +inline float +delayAsFloat(const Delay &delay) { return delay.mean(); } + +// Most non-operator functions on Delay are not defined as member +// functions so they can be defined on floats, where there is no class +// to define them. + +Delay operator+(float delay1, + const Delay &delay2); +// Used for parallel gate delay calc. +Delay operator/(float delay1, + const Delay &delay2); +// Used for parallel gate delay calc. +Delay operator*(const Delay &delay1, + float delay2); + +// mean late+/early- sigma +float +delayAsFloat(const Delay &delay, + const EarlyLate *early_late, + float sigma_factor); +float +delaySigma2(const Delay &delay, + const EarlyLate *early_late); +const char * +delayAsString(const Delay &delay, + const StaState *sta); +const char * +delayAsString(const Delay &delay, + const StaState *sta, + int digits); +const char * +delayAsString(const Delay &delay, + const EarlyLate *early_late, + const StaState *sta, + int digits); +const Delay & +delayInitValue(const MinMax *min_max); +bool +delayIsInitValue(const Delay &delay, + const MinMax *min_max); +bool +fuzzyZero(const Delay &delay); +bool +fuzzyEqual(const Delay &delay1, + const Delay &delay2); +bool +fuzzyLess(const Delay &delay1, + const Delay &delay2); +bool +fuzzyLess(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max); +bool +fuzzyLessEqual(const Delay &delay1, + const Delay &delay2); +bool +fuzzyLessEqual(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max); +bool +fuzzyGreater(const Delay &delay1, + const Delay &delay2); +bool +fuzzyGreaterEqual(const Delay &delay1, + const Delay &delay2); +bool +fuzzyGreaterEqual(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max); +bool +fuzzyGreater(const Delay &delay1, + const Delay &delay2, + const MinMax *min_max); +float +delayRatio(const Delay &delay1, + const Delay &delay2); + +} // namespace +#endif diff --git a/graph/DelayNormal2.cc b/graph/DelayNormal2.cc index ff092c87..b18c470f 100644 --- a/graph/DelayNormal2.cc +++ b/graph/DelayNormal2.cc @@ -25,7 +25,7 @@ #include "Delay.hh" // SSTA compilation. -#if SSTA +#if (SSTA == 2) namespace sta {