update STA to Parallaxsw version on 4/7 with fix for issue 416 and some unrelated stuff

Signed-off-by: dsengupta0628 <[email protected]>
This commit is contained in:
dsengupta0628
2026-04-07 12:59:25 +00:00
38 changed files with 806 additions and 939 deletions
+2 -2
View File
@@ -56,8 +56,8 @@ using ConcretePortMemberIterator = VectorIterator<ConcretePortSeq, ConcretePort*
class ConcreteLibrary
{
public:
ConcreteLibrary(std::string name,
std::string filename,
ConcreteLibrary(std::string_view name,
std::string_view filename,
bool is_liberty);
virtual ~ConcreteLibrary();
const std::string &name() const { return name_; }
+6 -5
View File
@@ -24,14 +24,15 @@
#pragma once
#include <algorithm>
#include <functional>
#include <map>
#include <ranges>
#include <set>
#include <string_view>
#include <type_traits>
#include <utility> // for std::declval
#include <map>
#include <set>
#include <vector>
#include <algorithm>
#include <ranges>
#include <functional>
namespace sta {
-11
View File
@@ -40,67 +40,56 @@ class Report;
PortSeq
filterPorts(std::string_view filter_expression,
PortSeq *objects,
bool bool_props_as_int,
Sta *sta);
InstanceSeq
filterInstances(std::string_view filter_expression,
InstanceSeq *objects,
bool bool_props_as_int,
Sta *sta);
PinSeq
filterPins(std::string_view filter_expression,
PinSeq *objects,
bool bool_props_as_int,
Sta *sta);
NetSeq
filterNets(std::string_view filter_expression,
NetSeq *objects,
bool bool_props_as_int,
Sta *sta);
ClockSeq
filterClocks(std::string_view filter_expression,
ClockSeq *objects,
bool bool_props_as_int,
Sta *sta);
LibertyCellSeq
filterLibCells(std::string_view filter_expression,
LibertyCellSeq *objects,
bool bool_props_as_int,
Sta *sta);
LibertyPortSeq
filterLibPins(std::string_view filter_expression,
LibertyPortSeq *objects,
bool bool_props_as_int,
Sta *sta);
LibertyLibrarySeq
filterLibertyLibraries(std::string_view filter_expression,
LibertyLibrarySeq *objects,
bool bool_props_as_int,
Sta *sta);
EdgeSeq
filterTimingArcs(std::string_view filter_expression,
EdgeSeq *objects,
bool bool_props_as_int,
Sta *sta);
PathEndSeq
filterPathEnds(std::string_view filter_expression,
PathEndSeq *objects,
bool bool_props_as_int,
Sta *sta);
// For FilterExpr unit tests.
StringSeq
filterExprToPostfix(std::string_view expr,
bool bool_props_as_int,
Report *report);
} // namespace
+35 -35
View File
@@ -69,7 +69,7 @@ class DriverWaveform;
class ModeValueDef
{
public:
ModeValueDef(std::string value);
ModeValueDef(std::string_view value);
ModeValueDef(ModeValueDef &&other) noexcept;
~ModeValueDef();
const std::string &value() const { return value_; }
@@ -204,8 +204,8 @@ timingSenseOpposite(TimingSense sense);
class LibertyLibrary : public ConcreteLibrary
{
public:
LibertyLibrary(std::string name,
std::string filename);
LibertyLibrary(std::string_view name,
std::string_view filename);
virtual ~LibertyLibrary();
LibertyCell *findLibertyCell(std::string_view name) const;
LibertyCellSeq findLibertyCellsMatching(PatternMatch *pattern);
@@ -215,12 +215,12 @@ public:
DelayModelType delayModelType() const { return delay_model_type_; }
void setDelayModelType(DelayModelType type);
BusDcl *makeBusDcl(std::string name,
BusDcl *makeBusDcl(std::string_view name,
int from,
int to);
BusDcl *findBusDcl(std::string_view name);
BusDclSeq busDcls() const;
TableTemplate *makeTableTemplate(std::string name,
TableTemplate *makeTableTemplate(std::string_view name,
TableTemplateType type);
TableTemplate *findTableTemplate(std::string_view name,
TableTemplateType type);
@@ -235,7 +235,7 @@ public:
void setScaleFactors(ScaleFactors *scales);
// Make named scale factor group. Returns pointer to the inserted element.
ScaleFactors *makeScaleFactors(std::string name);
ScaleFactors *makeScaleFactors(std::string_view name);
ScaleFactors *findScaleFactors(std::string_view name);
ScaleFactors *scaleFactors() const { return scale_factors_; }
float scaleFactor(ScaleFactorType type,
@@ -336,18 +336,18 @@ public:
Units *units() { return units_; }
const Units *units() const { return units_; }
Wireload *makeWireload(std::string name);
Wireload *makeWireload(std::string_view name);
const Wireload *findWireload(std::string_view name);
void setDefaultWireload(const Wireload *wireload);
const Wireload *defaultWireload() const;
WireloadSelection *makeWireloadSelection(std::string name);
WireloadSelection *makeWireloadSelection(std::string_view name);
const WireloadSelection *findWireloadSelection(std::string_view name) const;
const WireloadSelection *defaultWireloadSelection() const;
WireloadMode defaultWireloadMode() const;
void setDefaultWireloadMode(WireloadMode mode);
void setDefaultWireloadSelection(const WireloadSelection *selection);
OperatingConditions *makeOperatingConditions(std::string name);
OperatingConditions *makeOperatingConditions(std::string_view name);
OperatingConditions *findOperatingConditions(std::string_view name);
OperatingConditions *defaultOperatingConditions() const;
void setDefaultOperatingConditions(OperatingConditions *op_cond);
@@ -358,9 +358,9 @@ public:
void setOcvArcDepth(float depth);
OcvDerate *defaultOcvDerate() const;
void setDefaultOcvDerate(OcvDerate *derate);
OcvDerate *makeOcvDerate(std::string name);
OcvDerate *makeOcvDerate(std::string_view name);
OcvDerate *findOcvDerate(std::string_view derate_name);
void addSupplyVoltage(std::string suppy_name,
void addSupplyVoltage(std::string_view suppy_name,
float voltage);
bool supplyExists(std::string_view supply_name) const;
void supplyVoltage(std::string_view supply_name,
@@ -369,8 +369,8 @@ public:
bool &exists) const;
// Make scaled cell. Call LibertyCell::addScaledCell after it is complete.
LibertyCell *makeScaledCell(std::string name,
std::string filename);
LibertyCell *makeScaledCell(std::string_view name,
std::string_view filename);
static void
makeSceneMap(LibertyLibrary *lib,
@@ -395,7 +395,7 @@ public:
DriverWaveform *findDriverWaveform(std::string_view name);
DriverWaveform *driverWaveformDefault() { return findDriverWaveform(""); }
DriverWaveform *makeDriverWaveform(std::string name,
DriverWaveform *makeDriverWaveform(std::string_view name,
TablePtr waveforms);
protected:
@@ -474,8 +474,8 @@ class LibertyCell : public ConcreteCell
{
public:
LibertyCell(LibertyLibrary *library,
std::string name,
std::string filename);
std::string_view name,
std::string_view filename);
virtual ~LibertyCell();
LibertyLibrary *libertyLibrary() const { return liberty_library_; }
LibertyLibrary *libertyLibrary() { return liberty_library_; }
@@ -484,7 +484,7 @@ public:
bool hasInternalPorts() const { return has_internal_ports_; }
ScaleFactors *scaleFactors() const { return scale_factors_; }
void setScaleFactors(ScaleFactors *scale_factors);
ModeDef *makeModeDef(std::string name);
ModeDef *makeModeDef(std::string_view name);
const ModeDef *findModeDef(std::string_view name) const;
float area() const { return area_; }
@@ -544,7 +544,7 @@ public:
const Statetable *statetable() const { return statetable_; }
// Find bus declaration local to this cell.
BusDcl *makeBusDcl(std::string name,
BusDcl *makeBusDcl(std::string_view name,
int from,
int to);
BusDcl *findBusDcl(std::string_view name);
@@ -565,7 +565,7 @@ public:
// AOCV
float ocvArcDepth() const;
OcvDerate *ocvDerate() const;
OcvDerate *makeOcvDerate(std::string name);
OcvDerate *makeOcvDerate(std::string_view name);
OcvDerate *findOcvDerate(std::string_view derate_name);
// Build helpers.
@@ -620,9 +620,9 @@ public:
static void checkLibertyScenes();
void ensureVoltageWaveforms(const SceneSeq &scenes);
const std::string &footprint() const { return footprint_; }
void setFootprint(std::string footprint);
void setFootprint(std::string_view footprint);
const std::string &userFunctionClass() const { return user_function_class_; }
void setUserFunctionClass(std::string user_function_class);
void setUserFunctionClass(std::string_view user_function_class);
protected:
void addPort(ConcretePort *port);
@@ -758,7 +758,7 @@ public:
PwrGndType pwrGndType() const { return pwr_gnd_type_; }
void setPwrGndType(PwrGndType type);
const std::string &voltageName() const { return voltage_name_; }
void setVoltageName(std::string voltage_name);
void setVoltageName(std::string_view voltage_name);
////////////////////////////////////////////////////////////////
ScanSignalType scanSignalType() const { return scan_signal_type_; }
@@ -906,7 +906,7 @@ public:
protected:
// Constructor is internal to LibertyBuilder.
LibertyPort(LibertyCell *cell,
std::string name,
std::string_view name,
bool is_bus,
BusDcl *bus_dcl,
int from_index,
@@ -1016,7 +1016,7 @@ protected:
class OperatingConditions : public Pvt
{
public:
OperatingConditions(std::string name);
OperatingConditions(std::string_view name);
const std::string &name() const { return name_; }
WireloadTree wireloadTree() const { return wire_load_tree_; }
void setWireloadTree(WireloadTree tree);
@@ -1029,7 +1029,7 @@ protected:
class ScaleFactors
{
public:
ScaleFactors(std::string name);
ScaleFactors(std::string_view name);
const std::string &name() const { return name_; }
float scale(ScaleFactorType type,
ScaleFactorPvt pvt,
@@ -1056,7 +1056,7 @@ protected:
class BusDcl
{
public:
BusDcl(std::string name,
BusDcl(std::string_view name,
int from,
int to);
const std::string &name() const { return name_; }
@@ -1073,9 +1073,9 @@ protected:
class ModeDef
{
public:
ModeDef(std::string name);
ModeDef(std::string_view name);
const std::string &name() const { return name_; }
ModeValueDef *defineValue(std::string value);
ModeValueDef *defineValue(std::string_view value);
const ModeValueDef *findValueDef(std::string_view value) const;
const ModeValueMap &values() const { return values_; }
@@ -1090,15 +1090,15 @@ private:
class TableTemplate
{
public:
TableTemplate(std::string name);
TableTemplate(std::string name,
TableTemplate(std::string_view name);
TableTemplate(std::string_view name,
TableTemplateType type);
TableTemplate(std::string name,
TableTemplate(std::string_view name,
TableAxisPtr axis1,
TableAxisPtr axis2,
TableAxisPtr axis3);
const std::string &name() const { return name_; }
void setName(std::string name);
void setName(std::string_view name);
TableTemplateType type() const { return type_; }
const TableAxis *axis1() const { return axis1_.get(); }
TableAxisPtr axis1ptr() const { return axis1_; }
@@ -1122,8 +1122,8 @@ class TestCell : public LibertyCell
{
public:
TestCell(LibertyLibrary *library,
std::string name,
std::string filename);
std::string_view name,
std::string_view filename);
protected:
};
@@ -1131,7 +1131,7 @@ protected:
class OcvDerate
{
public:
OcvDerate(std::string name);
OcvDerate(std::string_view name);
~OcvDerate();
const std::string &name() const { return name_; }
const Table *derateTable(const RiseFall *rf,
+9 -9
View File
@@ -307,18 +307,18 @@ public:
[[nodiscard]] bool isHierarchical(const Pin *pin) const;
[[nodiscard]] bool isTopLevelPort(const Pin *pin) const;
// Is pin inside the instance hier_pin is attached to?
bool isInside(const Pin *pin,
const Pin *hier_pin) const;
[[nodiscard]] bool isInside(const Pin *pin,
const Pin *hier_pin) const;
// Is pin inside of hier_inst?
bool isInside(const Pin *pin,
const Instance *hier_inst) const;
bool isDriver(const Pin *pin) const;
bool isLoad(const Pin *pin) const;
[[nodiscard]] bool isInside(const Pin *pin,
const Instance *hier_inst) const;
[[nodiscard]] bool isDriver(const Pin *pin) const;
[[nodiscard]] bool isLoad(const Pin *pin) const;
// Has register/latch rise/fall edges from pin.
bool isRegClkPin(const Pin *pin) const;
[[nodiscard]] bool isRegClkPin(const Pin *pin) const;
// Pin clocks a timing check.
bool isCheckClk(const Pin *pin) const;
bool isLatchData(const Pin *pin) const;
[[nodiscard]] bool isCheckClk(const Pin *pin) const;
[[nodiscard]] bool isLatchData(const Pin *pin) const;
// Iterate over all of the pins connected to a pin and the parent
// and child nets it is hierarchically connected to (port, leaf and