Liberty is_level_shifter

This commit is contained in:
James Cherry 2021-01-22 20:32:47 -07:00
parent d37a8f5233
commit 00bc28a1c9
4 changed files with 23 additions and 0 deletions

View File

@ -413,6 +413,8 @@ public:
void setIsMemory(bool is_memory);
bool isPad() const { return is_pad_; }
void setIsPad(bool is_pad);
bool isLevelShifter() const { return is_level_shifter_; }
void setIsLevelShifter(bool is_level_shifter);
bool interfaceTiming() const { return interface_timing_; }
void setInterfaceTiming(bool value);
bool isClockGateLatchPosedge() const;
@ -536,6 +538,7 @@ protected:
bool is_macro_;
bool is_memory_;
bool is_pad_;
bool is_level_shifter_;
bool has_internal_ports_;
bool interface_timing_;
ClockGateType clock_gate_type_;

View File

@ -852,6 +852,7 @@ LibertyCell::LibertyCell(LibertyLibrary *library,
is_macro_(false),
is_memory_(false),
is_pad_(false),
is_level_shifter_(false),
has_internal_ports_(false),
interface_timing_(false),
clock_gate_type_(ClockGateType::none),
@ -1008,6 +1009,12 @@ LibertyCell::LibertyCell::setIsPad(bool is_pad)
is_pad_ = is_pad;
}
void
LibertyCell::LibertyCell::setIsLevelShifter(bool is_level_shifter)
{
is_level_shifter_ = is_level_shifter;
}
void
LibertyCell::setInterfaceTiming(bool value)
{

View File

@ -289,6 +289,7 @@ LibertyReader::defineVisitors()
defineAttrVisitor("is_macro", &LibertyReader::visitIsMacro);
defineAttrVisitor("is_memory", &LibertyReader::visitIsMemory);
defineAttrVisitor("is_pad", &LibertyReader::visitIsPad);
defineAttrVisitor("is_level_shifter", &LibertyReader::visitIsLevelShifter);
defineAttrVisitor("interface_timing", &LibertyReader::visitInterfaceTiming);
defineAttrVisitor("scaling_factors", &LibertyReader::visitScalingFactors);
@ -2456,6 +2457,17 @@ LibertyReader::visitIsPad(LibertyAttr *attr)
}
}
void
LibertyReader::visitIsLevelShifter(LibertyAttr *attr)
{
if (cell_) {
bool is_level_shifter, exists;
getAttrBool(attr, is_level_shifter, exists);
if (exists)
cell_->setIsLevelShifter(is_level_shifter);
}
}
void
LibertyReader::visitInterfaceTiming(LibertyAttr *attr)
{

View File

@ -184,6 +184,7 @@ public:
virtual void visitIsMacro(LibertyAttr *attr);
virtual void visitIsMemory(LibertyAttr *attr);
virtual void visitIsPad(LibertyAttr *attr);
void visitIsLevelShifter(LibertyAttr *attr);
virtual void visitInterfaceTiming(LibertyAttr *attr);
virtual void visitScalingFactors(LibertyAttr *attr);
virtual void visitCellLeakagePower(LibertyAttr *attr);