Skip to content

Commit c93f040

Browse files
authored
WIP
1 parent 27728fa commit c93f040

1 file changed

Lines changed: 25 additions & 11 deletions

File tree

src/CSMDriver.cpp

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,6 @@ isVectorEqual(const std::vector<double>& a,
6262
return true;
6363
}
6464

65-
void
66-
CSMDriver::updateTimeStepsAndEffCaps(const SimResult& simResult, ) const
67-
{
68-
69-
}
70-
7165
void
7266
CSMDriver::updateDriverData(const SimResult& simResult)
7367
{
@@ -118,14 +112,34 @@ CSMDriver::calcEffectiveCap(const SimResult& simResult, double timeStart, double
118112
}
119113
}
120114

115+
Waveform
116+
assembleDriverWaveform(const CCSDriverData& driverData, const std::vector<double>& timeSteps)
117+
{
118+
const std::vector<double>& voltageRegions = driverData.voltageRegions();
119+
assert(voltageRegions.size() == timeSteps.size());
120+
Waveform waveform;
121+
for (size_t i=0l i<timeSteps.size(); ++i) {
122+
waveform.addPoint(timeSteps[i], voltageRegions[i]);
123+
}
124+
return waveform;
125+
}
126+
121127
void
122128
CSMDriver::updateCircuit(const SimResult& simResult) const
123129
{
124-
updateDriverData
125-
/// First check current simTime, and choose the correct effCap from _effCaps, update circuit
126-
double effCap = calcEffectiveCap(simResult, timeStart, timeEnd);
127-
/// append voltage waveform from timeStart to timeEnd, to _driverArc->driverSource
128-
130+
updateDriverData(simResult);
131+
const Waveform& drvierWaveform = assembleDriverWaveform(_driverData, _timeSteps);
132+
/// update driver data
133+
const Device& driverSource = _ckt->device(_driverArc->driverSourceId());
134+
PWLValue& driverData = _ckt->PWLData(driverSource);
135+
double vdd = _driverArc->nldmData()->owner()->voltage();
136+
//populatePWLData(_tZero, _tDelta, vdd, _isRiseOnDriverPin, driverData);
137+
driverData._time.clear();
138+
driverData._value.clear();
139+
for (const auto& p : driverWaveform.data()) {
140+
driverData._time.push_back(p._time);
141+
driverData._value.push_back(p._value);
142+
}
129143
}
130144

131145

0 commit comments

Comments
 (0)