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;
|
||||
in_bus_ = false;
|
||||
in_bundle_ = false;
|
||||
in_ccsn_ = false;
|
||||
sequential_ = nullptr;
|
||||
statetable_ = nullptr;
|
||||
timing_ = nullptr;
|
||||
|
|
@ -543,6 +544,24 @@ LibertyReader::defineVisitors()
|
|||
defineAttrVisitor("driver_waveform_name", &LibertyReader::visitDriverWaveformName);
|
||||
defineAttrVisitor("driver_waveform_rise", &LibertyReader::visitDriverWaveformRise);
|
||||
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
|
||||
|
|
@ -2709,7 +2728,7 @@ LibertyReader::endOutputCurrentRiseFall(LibertyGroup *group)
|
|||
void
|
||||
LibertyReader::beginVector(LibertyGroup *group)
|
||||
{
|
||||
if (timing_) {
|
||||
if (timing_ && !in_ccsn_) {
|
||||
beginTable(group, TableTemplateType::output_current, current_scale_);
|
||||
scale_factor_type_ = ScaleFactorType::unknown;
|
||||
reference_time_exists_ = false;
|
||||
|
|
|
|||
|
|
@ -482,6 +482,10 @@ public:
|
|||
void visitDriverWaveformRiseFall(LibertyAttr *attr,
|
||||
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.
|
||||
virtual void beginGroup1(LibertyGroup *) {}
|
||||
virtual void beginGroup2(LibertyGroup *) {}
|
||||
|
|
@ -627,6 +631,7 @@ protected:
|
|||
StringSeq bus_names_;
|
||||
bool in_bus_;
|
||||
bool in_bundle_;
|
||||
bool in_ccsn_;
|
||||
TableAxisVariable axis_var_[3];
|
||||
FloatSeq *axis_values_[3];
|
||||
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_json2
|
||||
liberty_latch3
|
||||
liberty_ccsn
|
||||
}
|
||||
|
||||
define_test_group fast [group_tests all]
|
||||
|
|
|
|||
Loading…
Reference in New Issue