Ignore CCSN groups (#176)
This commit is contained in:
parent
7c2da8ab3d
commit
9c24e1a757
|
|
@ -101,6 +101,7 @@ LibertyReader::init(const char *filename,
|
||||||
saved_port_group_ = nullptr;
|
saved_port_group_ = nullptr;
|
||||||
in_bus_ = false;
|
in_bus_ = false;
|
||||||
in_bundle_ = false;
|
in_bundle_ = false;
|
||||||
|
in_ccsn_ = false;
|
||||||
sequential_ = nullptr;
|
sequential_ = nullptr;
|
||||||
statetable_ = nullptr;
|
statetable_ = nullptr;
|
||||||
timing_ = nullptr;
|
timing_ = nullptr;
|
||||||
|
|
@ -543,6 +544,24 @@ LibertyReader::defineVisitors()
|
||||||
defineAttrVisitor("driver_waveform_name", &LibertyReader::visitDriverWaveformName);
|
defineAttrVisitor("driver_waveform_name", &LibertyReader::visitDriverWaveformName);
|
||||||
defineAttrVisitor("driver_waveform_rise", &LibertyReader::visitDriverWaveformRise);
|
defineAttrVisitor("driver_waveform_rise", &LibertyReader::visitDriverWaveformRise);
|
||||||
defineAttrVisitor("driver_waveform_fall", &LibertyReader::visitDriverWaveformFall);
|
defineAttrVisitor("driver_waveform_fall", &LibertyReader::visitDriverWaveformFall);
|
||||||
|
|
||||||
|
// ccsn (not implemented, this is needed to properly ignore ccsn groups)
|
||||||
|
defineGroupVisitor("ccsn_first_stage", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
|
defineGroupVisitor("ccsn_last_stage", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
|
defineGroupVisitor("output_voltage_rise", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
|
defineGroupVisitor("output_voltage_fall", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
|
defineGroupVisitor("propagated_noise_low", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
|
defineGroupVisitor("propagated_noise_high", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
|
defineGroupVisitor("input_ccb", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
|
defineGroupVisitor("output_ccb", &LibertyReader::beginCcsn,
|
||||||
|
&LibertyReader::endCcsn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -2709,7 +2728,7 @@ LibertyReader::endOutputCurrentRiseFall(LibertyGroup *group)
|
||||||
void
|
void
|
||||||
LibertyReader::beginVector(LibertyGroup *group)
|
LibertyReader::beginVector(LibertyGroup *group)
|
||||||
{
|
{
|
||||||
if (timing_) {
|
if (timing_ && !in_ccsn_) {
|
||||||
beginTable(group, TableTemplateType::output_current, current_scale_);
|
beginTable(group, TableTemplateType::output_current, current_scale_);
|
||||||
scale_factor_type_ = ScaleFactorType::unknown;
|
scale_factor_type_ = ScaleFactorType::unknown;
|
||||||
reference_time_exists_ = false;
|
reference_time_exists_ = false;
|
||||||
|
|
|
||||||
|
|
@ -482,6 +482,10 @@ public:
|
||||||
void visitDriverWaveformRiseFall(LibertyAttr *attr,
|
void visitDriverWaveformRiseFall(LibertyAttr *attr,
|
||||||
const RiseFall *rf);
|
const RiseFall *rf);
|
||||||
|
|
||||||
|
// ccsn (not implemented, this is needed to properly ignore ccsn groups)
|
||||||
|
void beginCcsn(LibertyGroup *) { in_ccsn_ = true; }
|
||||||
|
void endCcsn(LibertyGroup *) { in_ccsn_ = false; }
|
||||||
|
|
||||||
// Visitors for derived classes to overload.
|
// Visitors for derived classes to overload.
|
||||||
virtual void beginGroup1(LibertyGroup *) {}
|
virtual void beginGroup1(LibertyGroup *) {}
|
||||||
virtual void beginGroup2(LibertyGroup *) {}
|
virtual void beginGroup2(LibertyGroup *) {}
|
||||||
|
|
@ -627,6 +631,7 @@ protected:
|
||||||
StringSeq bus_names_;
|
StringSeq bus_names_;
|
||||||
bool in_bus_;
|
bool in_bus_;
|
||||||
bool in_bundle_;
|
bool in_bundle_;
|
||||||
|
bool in_ccsn_;
|
||||||
TableAxisVariable axis_var_[3];
|
TableAxisVariable axis_var_[3];
|
||||||
FloatSeq *axis_values_[3];
|
FloatSeq *axis_values_[3];
|
||||||
int type_bit_from_;
|
int type_bit_from_;
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
||||||
|
read_liberty asap7_ccsn.lib.gz
|
||||||
|
|
@ -135,6 +135,7 @@ record_sta_tests {
|
||||||
report_json1
|
report_json1
|
||||||
report_json2
|
report_json2
|
||||||
liberty_latch3
|
liberty_latch3
|
||||||
|
liberty_ccsn
|
||||||
}
|
}
|
||||||
|
|
||||||
define_test_group fast [group_tests all]
|
define_test_group fast [group_tests all]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue