pickup changes from upstream, latest on 4/27

Signed-off-by: dsengupta0628 <[email protected]>
This commit is contained in:
dsengupta0628
2026-04-27 18:45:35 +00:00
28 changed files with 188 additions and 137 deletions
+2 -2
View File
@@ -90,7 +90,7 @@ public:
// Return values.
float &slew,
bool &exists) const;
ClockUncertainties *uncertainties() const { return uncertainties_; }
const ClockUncertainties &uncertainties() const { return uncertainties_; }
void uncertainty(const SetupHold *setup_hold,
// Return values.
float &uncertainty,
@@ -180,7 +180,7 @@ protected:
bool is_propagated_{false};
RiseFallMinMax slews_;
RiseFallMinMax slew_limits_[path_clk_or_data_count];
ClockUncertainties *uncertainties_{nullptr};
ClockUncertainties uncertainties_;
bool is_generated_{false};
// Generated clock variables.
Pin *src_pin_{nullptr};
+5
View File
@@ -169,6 +169,11 @@ public:
static int cmp(const MinMaxValues *values1,
const MinMaxValues *values2)
{
if (!values1->exists_[MinMax::minIndex()]
&& !values2->exists_[MinMax::minIndex()]
&& !values1->exists_[MinMax::maxIndex()]
&& !values2->exists_[MinMax::maxIndex()])
return 0;
if (!values1->exists_[MinMax::minIndex()]
&& values2->exists_[MinMax::minIndex()])
return -1;
+10 -10
View File
@@ -99,25 +99,25 @@ public:
// return PropertyValue("bar");
// });
void defineProperty(std::string_view property,
PropertyRegistry<const Library *>::PropertyHandler &handler);
const PropertyRegistry<const Library *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const LibertyLibrary *>::PropertyHandler &handler);
const PropertyRegistry<const LibertyLibrary *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const Cell *>::PropertyHandler &handler);
const PropertyRegistry<const Cell *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const LibertyCell *>::PropertyHandler &handler);
const PropertyRegistry<const LibertyCell *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const Port *>::PropertyHandler &handler);
const PropertyRegistry<const Port *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const LibertyPort *>::PropertyHandler &handler);
const PropertyRegistry<const LibertyPort *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const Instance *>::PropertyHandler &handler);
const PropertyRegistry<const Instance *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const Pin *>::PropertyHandler &handler);
const PropertyRegistry<const Pin *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const Net *>::PropertyHandler &handler);
const PropertyRegistry<const Net *>::PropertyHandler &handler);
void defineProperty(std::string_view property,
PropertyRegistry<const Clock *>::PropertyHandler &handler);
const PropertyRegistry<const Clock *>::PropertyHandler &handler);
protected:
PropertyValue portSlew(const Port *port,
+1 -1
View File
@@ -89,7 +89,7 @@ protected:
std::string name_;
size_t index_;
Mode *mode_;
LibertySeq liberty_[MinMax::index_count];
std::array<LibertySeq, MinMax::index_count> liberty_;
std::array<Parasitics*, MinMax::index_count> parasitics_;
friend class Scenes;
+5
View File
@@ -409,6 +409,11 @@ public:
void saveEnumPath(Path *path);
bool isSrchRoot(Vertex *vertex,
const Mode *mode) const;
DelaysWrtClks arrivalsWrtClks(Vertex *vertex,
const Scene *scene);
DelaysWrtClks delaysWrtClks(Vertex *vertex,
const Scene *scene,
const PathDelayFunc &get_path_delay);
protected:
void initVars();
+7
View File
@@ -24,14 +24,18 @@
#pragma once
#include <functional>
#include <limits>
#include <map>
#include <vector>
#include "Delay.hh"
#include "GraphClass.hh"
#include "LibertyClass.hh"
#include "MinMaxValues.hh"
#include "NetworkClass.hh"
#include "RiseFallMinMaxDelay.hh"
#include "SdcClass.hh"
#include "VectorMap.hh"
namespace sta {
@@ -111,6 +115,9 @@ using SlackSeq = std::vector<Slack>;
using Crpr = Delay;
using PathSeq = std::vector<Path*>;
using ConstPathSeq = std::vector<const Path*>;
// Path::slack/arrival/required function.
using PathDelayFunc = std::function<Delay (const Path *path)>;
using DelaysWrtClks = std::map<const ClockEdge*, RiseFallMinMaxDelay>;
enum class ReportPathFormat { full,
full_clock,
+4 -11
View File
@@ -24,7 +24,7 @@
#pragma once
#include <functional>
#include <map>
#include <string>
#include <string_view>
#include <vector>
@@ -82,8 +82,6 @@ using CheckError = StringSeq;
using CheckErrorSeq = std::vector<CheckError*>;
enum class CmdNamespace { sta, sdc };
using ParasiticsNameMap = std::map<std::string, Parasitics*, std::less<>>;
// Path::slack/arrival/required function.
using PathDelayFunc = std::function<Delay (const Path *path)>;
using GraphLoopSeq = std::vector<GraphLoop*>;
// Initialize sta functions that are not part of the Sta class.
@@ -1531,16 +1529,10 @@ protected:
int digits,
bool find_required,
const PathDelayFunc &get_path_delay);
void reportDelaysWrtClks(Vertex *vertex,
const ClockEdge *clk_edge,
const Scene *scene,
void reportDelaysWrtClks(const ClockEdge *clk_edge,
bool report_variance,
int digits,
const PathDelayFunc &get_path_delay);
RiseFallMinMaxDelay findDelaysWrtClks(Vertex *vertex,
const ClockEdge *clk_edge,
const Scene *scene,
const PathDelayFunc &get_path_delay);
DelaysWrtClks &clk_delays);
std::string formatDelay(const RiseFall *rf,
const MinMax *min_max,
const RiseFallMinMaxDelay &delays,
@@ -1616,6 +1608,7 @@ protected:
Mode *mode,
Parasitics *parasitics);
void deleteScenes();
void checkLibrarayPocv();
Scene *cmd_scene_{nullptr};
CmdNamespace cmd_namespace_{CmdNamespace::sdc};