Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2024-01-21 16:02:24 -07:00
parent 7399126d5a
commit 84586335f7
1 changed files with 79 additions and 79 deletions

View File

@ -695,37 +695,37 @@ class DmpCap : public DmpAlg
{ {
public: public:
DmpCap(StaState *sta); DmpCap(StaState *sta);
virtual const char *name() { return "cap"; } const char *name() override { return "cap"; }
virtual void init(const LibertyLibrary *library, void init(const LibertyLibrary *library,
const LibertyCell *drvr_cell, const LibertyCell *drvr_cell,
const Pvt *pvt, const Pvt *pvt,
const GateTableModel *gate_model, const GateTableModel *gate_model,
const RiseFall *rf, const RiseFall *rf,
double rd, double rd,
double in_slew, double in_slew,
double c2, double c2,
double rpi, double rpi,
double c1); double c1) override;
virtual void gateDelaySlew(// Return values. void gateDelaySlew(// Return values.
double &delay, double &delay,
double &slew); double &slew) override;
virtual void loadDelaySlew(const Pin *, void loadDelaySlew(const Pin *,
double elmore, double elmore,
// Return values. // Return values.
ArcDelay &delay, ArcDelay &delay,
Slew &slew); Slew &slew) override;
virtual void evalDmpEqns(); void evalDmpEqns() override;
virtual double voCrossingUpperBound(); double voCrossingUpperBound() override;
private: private:
virtual void V0(double t, void V0(double t,
// Return values. // Return values.
double &vo, double &vo,
double &dvo_dt); double &dvo_dt) override;
virtual void Vl0(double t, void Vl0(double t,
// Return values. // Return values.
double &vl, double &vl,
double &dvl_dt); double &dvl_dt) override;
}; };
DmpCap::DmpCap(StaState *sta): DmpCap::DmpCap(StaState *sta):
@ -810,22 +810,22 @@ class DmpPi : public DmpAlg
{ {
public: public:
DmpPi(StaState *sta); DmpPi(StaState *sta);
virtual const char *name() { return "Pi"; } const char *name() override { return "Pi"; }
virtual void init(const LibertyLibrary *library, void init(const LibertyLibrary *library,
const LibertyCell *drvr_cell, const LibertyCell *drvr_cell,
const Pvt *pvt, const Pvt *pvt,
const GateTableModel *gate_model, const GateTableModel *gate_model,
const RiseFall *rf, const RiseFall *rf,
double rd, double rd,
double in_slew, double in_slew,
double c2, double c2,
double rpi, double rpi,
double c1); double c1) override;
virtual void gateDelaySlew(// Return values. void gateDelaySlew(// Return values.
double &delay, double &delay,
double &slew); double &slew) override;
virtual void evalDmpEqns(); void evalDmpEqns() override;
virtual double voCrossingUpperBound(); double voCrossingUpperBound() override;
private: private:
void findDriverParamsPi(); void findDriverParamsPi();
@ -833,14 +833,14 @@ private:
double dt, double dt,
double ceff_time, double ceff_time,
double ceff); double ceff);
virtual void V0(double t, void V0(double t,
// Return values. // Return values.
double &vo, double &vo,
double &dvo_dt); double &dvo_dt) override;
virtual void Vl0(double t, void Vl0(double t,
// Return values. // Return values.
double &vl, double &vl,
double &dvl_dt); double &dvl_dt) override;
// Poles/zero. // Poles/zero.
double p1_; double p1_;
@ -1087,8 +1087,8 @@ class DmpOnePole : public DmpAlg
{ {
public: public:
DmpOnePole(StaState *sta); DmpOnePole(StaState *sta);
virtual void evalDmpEqns(); void evalDmpEqns() override;
virtual double voCrossingUpperBound(); double voCrossingUpperBound() override;
}; };
DmpOnePole::DmpOnePole(StaState *sta) : DmpOnePole::DmpOnePole(StaState *sta) :
@ -1145,31 +1145,31 @@ class DmpZeroC2 : public DmpOnePole
{ {
public: public:
DmpZeroC2(StaState *sta); DmpZeroC2(StaState *sta);
virtual const char *name() { return "c2=0"; } const char *name() override { return "c2=0"; }
virtual void init(const LibertyLibrary *drvr_library, void init(const LibertyLibrary *drvr_library,
const LibertyCell *drvr_cell, const LibertyCell *drvr_cell,
const Pvt *pvt, const Pvt *pvt,
const GateTableModel *gate_model, const GateTableModel *gate_model,
const RiseFall *rf, const RiseFall *rf,
double rd, double rd,
double in_slew, double in_slew,
double c2, double c2,
double rpi, double rpi,
double c1); double c1) override;
virtual void gateDelaySlew(// Return values. void gateDelaySlew(// Return values.
double &delay, double &delay,
double &slew); double &slew) override;
private: private:
virtual void V0(double t, void V0(double t,
// Return values. // Return values.
double &vo, double &vo,
double &dvo_dt); double &dvo_dt) override;
virtual void Vl0(double t, void Vl0(double t,
// Return values. // Return values.
double &vl, double &vl,
double &dvl_dt); double &dvl_dt) override;
virtual double voCrossingUpperBound(); double voCrossingUpperBound() override;
// Pole/zero. // Pole/zero.
double p1_; double p1_;
@ -1353,7 +1353,7 @@ luDecomp(double **a,
a[i][j] = sum; a[i][j] = sum;
} }
// Run down jth subdiag to form the residuals after the elimination // Run down jth subdiag to form the residuals after the elimination
// of the first j-1 subdiags. These residuals divided by the // of the first j-1 subdiags. These residuals diviyded by the
// appropriate diagonal term will become the multipliers in the // appropriate diagonal term will become the multipliers in the
// elimination of the jth. subdiag. Find index of largest scaled // elimination of the jth. subdiag. Find index of largest scaled
// term in imax. // term in imax.