mirror of
https://github.com/The-OpenROAD-Project/OpenSTA.git
synced 2026-05-30 00:24:12 +08:00
@@ -24,16 +24,18 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Vector.hh"
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "LibertyClass.hh"
|
||||
|
||||
namespace sta {
|
||||
|
||||
class WireloadForArea;
|
||||
|
||||
typedef std::pair<float,float> FanoutLength;
|
||||
typedef Vector<FanoutLength*> FanoutLengthSeq;
|
||||
typedef Vector<WireloadForArea*> WireloadForAreaSeq;
|
||||
using FanoutLength = std::pair<float,float>;
|
||||
using FanoutLengthSeq = std::vector<FanoutLength*>;
|
||||
using WireloadForAreaSeq = std::vector<WireloadForArea*>;
|
||||
|
||||
const char *
|
||||
wireloadTreeString(WireloadTree tree);
|
||||
@@ -49,13 +51,13 @@ class Wireload
|
||||
{
|
||||
public:
|
||||
Wireload(const char *name,
|
||||
LibertyLibrary *library);
|
||||
LibertyLibrary *library);
|
||||
Wireload(const char *name,
|
||||
LibertyLibrary *library,
|
||||
float area,
|
||||
float resistance,
|
||||
float capacitance,
|
||||
float slope);
|
||||
LibertyLibrary *library,
|
||||
float area,
|
||||
float resistance,
|
||||
float capacitance,
|
||||
float slope);
|
||||
virtual ~Wireload();
|
||||
const char *name() const { return name_; }
|
||||
void setArea(float area);
|
||||
@@ -63,12 +65,12 @@ public:
|
||||
void setCapacitance(float cap);
|
||||
void setSlope(float slope);
|
||||
void addFanoutLength(float fanout,
|
||||
float length);
|
||||
float length);
|
||||
// Find wireload resistance/capacitance for fanout.
|
||||
virtual void findWireload(float fanout,
|
||||
const OperatingConditions *op_cond,
|
||||
float &cap,
|
||||
float &res) const;
|
||||
const OperatingConditions *op_cond,
|
||||
float &cap,
|
||||
float &res) const;
|
||||
|
||||
protected:
|
||||
const char *name_;
|
||||
@@ -84,12 +86,12 @@ protected:
|
||||
class WireloadSelection
|
||||
{
|
||||
public:
|
||||
explicit WireloadSelection(const char *name);
|
||||
WireloadSelection(const char *name);
|
||||
~WireloadSelection();
|
||||
const char *name() const { return name_; }
|
||||
void addWireloadFromArea(float min_area,
|
||||
float max_area,
|
||||
const Wireload *wireload);
|
||||
float max_area,
|
||||
const Wireload *wireload);
|
||||
const Wireload *findWireload(float area) const;
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user