Liberty is_level_shifter
This commit is contained in:
parent
d37a8f5233
commit
00bc28a1c9
|
|
@ -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_;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue